[완료] gcc2.95.3으로 컴파일하기...?
글쓴이: bus710 / 작성시간: 월, 2009/02/09 - 3:34오후
Quote:
make -f scripts/Makefile.build obj=.
mkdir -p arch/arm/kernel/
/usr/local/arm/oe/bin/arm-linux-gcc -Wp,-MD,arch/arm/kernel/.asm-offsets.s.d -nostdinc -isystem /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Os -fno-omit-frame-pointer -g -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mapcs-32 -mno-thumb-interwork -D__LINUX_ARM_ARCH__=4 -march=armv4 -mtune=arm9tdmi -mshort-load-bytes -msoft-float -Uarm -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(asm_offsets)" -D"KBUILD_MODNAME=KBUILD_STR(asm_offsets)" -fverbose-asm -S -o arch/arm/kernel/asm-offsets.s arch/arm/kernel/asm-offsets.c
In file included from include/linux/stddef.h:4,
from include/linux/posix_types.h:4,
from include/linux/types.h:15,
from include/linux/capability.h:16,
from include/linux/sched.h:7,
from arch/arm/kernel/asm-offsets.c:13:
include/linux/compiler.h:46: #error Sorry, your compiler is too old/not recognized.
make[1]: *** [arch/arm/kernel/asm-offsets.s] 오류 1
make: *** [prepare0] 오류 2
MDS에서 판매했던 rebis 보드에 올릴 이미지를 만들기 위해서
- gcc의 이미지를 제작사에서 제시한 디렉토리에 복사해 넣고
- 제작사에서 제공하는 커널 소스의 최상단에서 make zImage를 했을 때 위와 같은 메시지가 나옵니다.
겉으로 보면 compiler.h에서 명시된 전처리문 떄문에 발생한 에러 같기도 하지만 그 부분은 그냥 넘어가도 될 것 같습니다.
아마도 arm-linux-gcc로 asm-offsets.c를 컴파일 하다가 발생한 는 에러인 것 같습니다만, 정확히 왜 발생하는 지는 모르겠습니다.
혹시 아시는 분 계십니까??
* 본문은 kldp.org 와 arm.co.kr에 동시 게재 됩니다.
Forums:
굳이 오래된 2.95.* 버전의 gcc 를 쓰시는 이유는...?
ARM 플랫폼에 대한 크로스 컴파일 환경은 GCC 3 이상에서부터 지원합니다.
[pre]#error Sorry, your compiler is too old/not recognized.[/pre]
에러메시지에서도 나왔듯이, 너무 오래된 버전의 컴파일러를 사용하시고 계시는데요?
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.
...
MDS에서 제공하는 버전이 2.95.3인 듯 합니다.
당장은 컴파일러를 빌드할 깜냥이 안되어서 제공되는 바이너리를 쓰려고 합니다^^
전처리문을 보니까 3 미만은 완전히 고려되지 않은 것 같더군요.
제가 뭔가 설정을 잘못한 것 같아서 다시 살펴보고 있습니다.
+
http://niteo.me/16
구글링 해보니 설정 잘못한게 확실히 나오네요.
문서가 오래된 것이어서 그랬나 봅니다^^
감사합니다.
life is only one time
꼭 그렇지만은 않습니다.
2.95.x 버전은 이전부터 arm에서도 cross toolchain으로 많이 쓰여왔습니다.
아직도 오래된 소스의 경우에는 2.95.x로만 컴파일 되는 것이 있을 정도이니까요.
...
결과적으로,
컴파일러의 바이너리가 2.6 커널에 맞는 버전이 따로 있었습니다.
oe.tar.gz 으로 제공하고 있습니다.
커널 컴파일 시에도 sumversion.c 에 #include를 추가해 주는 정도로 잘 진행이 됩니다...^^
life is only one time
댓글 달기