mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
kbuild: enable 'make CFLAGS=...' to add additional options to CC
The variable CFLAGS is a wellknown variable and the usage by kbuild may result in unexpected behaviour. On top of that several people over time has asked for a way to pass in additional flags to gcc. This patch replace use of CFLAGS with KBUILD_CFLAGS all over the tree and enabling one to use: make CFLAGS=... to specify additional gcc commandline options. One usecase is when trying to find gcc bugs but other use cases has been requested too. Patch was tested on following architectures: alpha, arm, i386, x86_64, mips, sparc, sparc64, ia64, m68k Test was simple to do a defconfig build, apply the patch and check that nothing got rebuild. Signed-off-by: Sam Ravnborg <[email protected]>
This commit is contained in:
parent
9a39e273d4
commit
a0f97e06a4
46 changed files with 137 additions and 136 deletions
|
|
@ -294,7 +294,7 @@ more details, with real examples.
|
|||
|
||||
|
||||
This variable is necessary because the top Makefile owns the
|
||||
variable $(CFLAGS) and uses it for compilation flags for the
|
||||
variable $(KBUILD_CFLAGS) and uses it for compilation flags for the
|
||||
entire tree.
|
||||
|
||||
$(EXTRA_AFLAGS) is a similar string for per-directory options
|
||||
|
|
@ -437,6 +437,7 @@ more details, with real examples.
|
|||
-march=pentium-mmx if supported by $(CC), otherwise -march=i586.
|
||||
The second argument to cc-option is optional, and if omitted,
|
||||
cflags-y will be assigned no value if first option is not supported.
|
||||
Note: cc-option uses KBUILD_CFLAGS for $(CC) options
|
||||
|
||||
cc-option-yn
|
||||
cc-option-yn is used to check if gcc supports a given option
|
||||
|
|
@ -452,6 +453,7 @@ more details, with real examples.
|
|||
option. When $(biarch) equals 'y', the expanded variables $(aflags-y)
|
||||
and $(cflags-y) will be assigned the values -a32 and -m32,
|
||||
respectively.
|
||||
Note: cc-option-yn uses KBUILD_CFLAGS for $(CC) options
|
||||
|
||||
cc-option-align
|
||||
gcc versions >= 3.0 changed the type of options used to specify
|
||||
|
|
@ -463,10 +465,11 @@ more details, with real examples.
|
|||
cc-option-align = -falign
|
||||
|
||||
Example:
|
||||
CFLAGS += $(cc-option-align)-functions=4
|
||||
KBUILD_CFLAGS += $(cc-option-align)-functions=4
|
||||
|
||||
In the above example, the option -falign-functions=4 is used for
|
||||
gcc >= 3.00. For gcc < 3.00, -malign-functions=4 is used.
|
||||
Note: cc-option-align uses KBUILD_CFLAGS for $(CC) options
|
||||
|
||||
cc-version
|
||||
cc-version returns a numerical version of the $(CC) compiler version.
|
||||
|
|
@ -825,17 +828,17 @@ When kbuild executes, the following steps are followed (roughly):
|
|||
#arch/sparc64/Makefile
|
||||
AFLAGS += -m64 -mcpu=ultrasparc
|
||||
|
||||
CFLAGS $(CC) compiler flags
|
||||
KBUILD_CFLAGS $(CC) compiler flags
|
||||
|
||||
Default value - see top level Makefile
|
||||
Append or modify as required per architecture.
|
||||
|
||||
Often, the CFLAGS variable depends on the configuration.
|
||||
Often, the KBUILD_CFLAGS variable depends on the configuration.
|
||||
|
||||
Example:
|
||||
#arch/i386/Makefile
|
||||
cflags-$(CONFIG_M386) += -march=i386
|
||||
CFLAGS += $(cflags-y)
|
||||
KBUILD_CFLAGS += $(cflags-y)
|
||||
|
||||
Many arch Makefiles dynamically run the target C compiler to
|
||||
probe supported options:
|
||||
|
|
@ -847,7 +850,7 @@ When kbuild executes, the following steps are followed (roughly):
|
|||
-march=pentium2,-march=i686)
|
||||
...
|
||||
# Disable unit-at-a-time mode ...
|
||||
CFLAGS += $(call cc-option,-fno-unit-at-a-time)
|
||||
KBUILD_CFLAGS += $(call cc-option,-fno-unit-at-a-time)
|
||||
...
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue