Linux 커널 makefile의 CFLAGS: 언제 어떤 것을 사용해야 합니까?

Linux 커널 makefile의 CFLAGS: 언제 어떤 것을 사용해야 합니까?

저는 Makefile에 익숙하지 않고 이해할 수 있지만 Linux 커널에 문제가 있습니다.

(3.7.1을 사용하여 BFS로 패치했기 때문에 줄번호가 조금 어긋날 수 있습니다.)

248호선

HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer

이것이 모든 Makefile에 전달됩니까?

그런 다음 각각 349행과 352행에서

CFLAGS_MODULE   =
....
CFLAGS_KERNEL   =
....
CFLAGS_GCOV = -fprofile-arcs -ftest-coverage

모듈로 구축된 무언가에 전달된 것 같은데 CFLAGS_MODULE다음은 커널 자체에 특정한 것입니까? CFLAGS_GCOV디버깅 및 분석을 위해 ?

그런 다음 KBUILD_CFLAGS가 많이 있습니다.

KBUILD_CFLAGS += $(call cc-option, -fno-stack-protector)

이전 줄에서는 옵션을 제거하고 다음 줄에서는 옵션을 추가한 것 같은데요?

KBUILD_CFLAGS   += -fno-omit-frame-pointer -fno-optimize-sibling-calls

나도 이것에 대한 좋은 튜토리얼을 찾지 못했습니다.

관련 정보