Cygwin에서 ezboot 컴파일 따라하기 -2-

문제 수정에 앞서 유영창 이사님과 장형기 팀장님께 도움을 받아서 진행하였습니다.

 

1. ezboot 수정 : makefile_config

지난 문서에 의한 에러 메시지는 FAIDE의 구성 요소인 이클립스의 문제는 아니고 cygwin의 문제도 아닙니다.
toolchain 이 업데이트 되면서 arm-linux-gcc 버전이 4.1.1 이 되면서 생기는 문제라고 합니다.

cc1: error: unrecognized command line option "-mapcs-32"
cc1: error: unrecognized command line option "-malignment-traps"

-mapcs-32, -malignment-traps 두가지 옵션은 gcc에서는 내부적인 디폴트 옵션으로 바뀌었습니다.

이 옵션을 사용할 수 없으므로 제거해 줍니다.

 

ezboot/arch_s3c2440/ 폴더로 갑니다.
makefile_config 파일을 열어서 다음과 같이 편집을 합니다.
(Cygwin 에서의 vim 사용에 있어서 약간의 문제가 있어서 윈도우 편집기를 사용해서 수정을 하였습니다.)

19,20번 줄에 위에서 문제되는 옵션을 지워주면 됩니다.

 

※ 수정 전 arch_s3c2440/makefile_config
-------------------------------------------------------------------------------------------------
CFLAGS   += -fno-strict-aliasing -fno-common -pipe -mapcs-32 -fno-zero-initialized-in-bss
CFLAGS   += -march=armv4 -mtune=arm9tdmi -malignment-traps -msoft-float -fno-builtin
-------------------------------------------------------------------------------------------------

 

※ 수정 후 arch_s3c2440/makefile_config
-------------------------------------------------------------------------------------------------
CFLAGS   += -fno-strict-aliasing -fno-common -pipe -fno-zero-initialized-in-bss
CFLAGS   += -march=armv4 -mtune=arm9tdmi -msoft-float -fno-builtin
-------------------------------------------------------------------------------------------------

저장을 한 다음 Cygwin 화면으로 넘어갑니다.

/ezboot 로 가서 ez-s3c2440_make.sh 파일을 실행합니다.

 

▼ ez-s3c2440_make.sh 파일을 실행

 

▼ ez-s3c2440_make.sh 파일 에러

 

다음과 같은 에러가 발생한다.

/ezboot/arch_s3c2440/console.c: In function 'console_init':
/ezboot/arch_s3c2440/console.c:52: error: invalid lvalue in assignment
/ezboot/arch_s3c2440/console.c:53: error: invalid lvalue in assignment
/ezboot/arch_s3c2440/console.c:58: error: invalid lvalue in assignment
/ezboot/arch_s3c2440/console.c:62: error: invalid lvalue in assignment
/ezboot/arch_s3c2440/console.c:64: error: invalid lvalue in assignment
/ezboot/arch_s3c2440/console.c:66: error: invalid lvalue in assignment
/ezboot/arch_s3c2440/console.c: In function 'console_putc':
/ezboot/arch_s3c2440/console.c:77: error: invalid lvalue in assignment
make[1]: *** [/ezboot/arch_s3c2440/console.o] Error 1

 

gcc 의 버전이 4.x 가 되면서 애매모한 문법적인 문제는 이제 에러로 처리하기로 한것으로 보입니다.
컴파일 에러가 걸린 부분은 주로 주소 지정과 관련된 에러 인데 S3C2440 일 경우에는 수정이 필요합니다.

다음 강좌에서 수정하도록 하겠습니다.