gcc 2.95.3을 가지고 binutils을 새로이 만들려다가 발견한 버그입니다.
별로 큰 버그라 볼 수는 없고, 참고 삼아 이야기 드리고자 합니다.
일단 버그가 발생되는 상황은 다음과 같습니다.
1) gcc 2.95.x
2) path에서 . 이 /usr/bin보다 먼저 선행되는 경우
3) 컴파일하려는 디렉토리 안에 ld라는 화일 또는 디렉토리가 존재할 경우
위의 모든 조건이 만족될 때 발생할 때 에러가 발생합니다.
예를 들어 다음과 같은 경우라 보죠.
# echo $PATH
.:/usr/bin:/usr/X11R6/bin
# ls -l
-rwxr-xr-x 3 root root 4096 11월 19 16:45 test.c
drwxr-xr-x 8 root root 4096 11월 6 21:20 ld
# gcc -o test test.c
./ld: installation problem, cannot exec `./ld': ?? ???
collect2: ld returned 255 exit status
이 경우 반듯이 위와 같은 에러를 발생시킵니다.
이것은 gcc가 ld를 현재 디렉토리에서 찾으려 하기 때문에 발생하는 것입니다.
이러한 에러는 binutils와 같은 패키지를 컴파일할 때 볼 수 있는데 이 경우
해결책은 gcc를 2.96 버전 이상을 쓰던가 path를 /usr/bin이 '.' 보다 먼저
오도록 잡는 것입니다.
한번 재미 삼아 해보셔도 좋을 듯 합니다.
좋은 하루되세요.--내 서명???