CFLAGS와 EXTRA_CFLAGS에 대한 질문입니다..

hyper9의 이미지

일단은 두 개가 어떻게 다른가 궁금해서 입니다..

예전 Fedora Core 3,4에서 잘 Compile되던 Driver를
Fedora Core 7 / Linux Kernel 2.6.24를 적용하고 나니...

[my_id@localhost my_driver]$ make
make[1]: Entering directory `/usr/src/kernels/2.6.24'
scripts/Makefile.build:46: *** CFLAGS was changed in "/home/my_id/my_project/prj/serverd/linux-2.6/my_driver/Makefile". Fix it to use EXTRA_CFLAGS. Stop.
make[1]: *** [_module_/home/my_id/my_project/prj/serverd/linux-2.6/my_driver] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.24'
make: *** [modules] Error 2

와 같은 error가 나네요,,

Error message처럼 CFLAGS대신에 EXTRA_CFLAGS로 Makefile을 수정하고 나니까 compile
은 잘 되는데, 다른 문제가 혹시 있지는 않을지도 궁금하고요

또 CFLAGS와 EXTRA_CFLAGS의 차이점도 궁금하고 해서 질문을 드립니다..

bushi의 이미지

2.4 시절부터 EXTRA_CFLAGS 를 써야만 했습니다.
이때까지 잘못 사용하고 계셨던 겁니다.

CFLAGS 는 커널을 빌드하기 위해 자동으로 만들어집니다.
CPU 별 플래그, gcc 버전별 플래그 등이 대표적입니다.

OTL