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

我也没有找到关于此的好的教程。

相关内容