별 오류같지도 않은 오류로 몇 시간을 소모했습니다.
뭐 타고난 삽질 전문가라 별 신경은 안씁니다만…
크로스 컴파일러로 커널 빌드시 겪을 수 있는 문제입니다.
make menuconfig 명령이든 make zImage 든 아래 메세지를 표시하면서 빌드가 안되는 경우입니다.
HOSTCC scripts/basic/fixdep
scripts/basic/fixdep: 1: Syntax error: word unexpected (expecting “)”)
make[1]: *** [scripts/basic/fixdep] 오류 2
make: *** [scripts_basic] 오류 2
이런 오류메세지가 나타났다면 어떻게 해야 하나 구글신에메 물어보니,
리눅스를 다시 깔아서 해결했다는 사람부터, apt-get 으로 뭘 설치하라는 둥…
심각하게 좌절하고 있다가, 혹시 PATH 가 문제가 아닌가 란 생각에
PATH=/usr/arm-linux/sys-include:/usr/arm-linux/sys-include/linux:/usr/arm-linux/lib:/usr/arm-linux:/usr/arm-linux/bin:$PATH
요렇게 되어있던걸,
PATH=$PATH:/usr/arm-linux/sys-include:/usr/arm-linux/sys-include/linux:/usr/arm-linux/lib:/usr/arm-linux:/usr/arm-linux/bin
요렇게… 즉 크로스 컴파일러의 경로를 후순위로 변경하였고…..
(빌드가 정상적으로 되는걸 보고 실제로 저러고 있었습니다.)
HOSTCC 로 빌드하는데 필요한 요소 들이 시스템의 컴파일러의 것을 사용하지 않고, PATH 우선순위가 높은 크로스 컴파일러의 구성요소들 끌어다 쓰는 바람에 오류가 발생했던 것입니다.
그리고 커널 컴파일 중 PATH_MAX 가 Deifne 되지 않았다는 오류도 PATH 우선순위와 연관이 있습니다.