Skip to content
Snippets Groups Projects
Commit a0f97e06 authored by Sam Ravnborg's avatar Sam Ravnborg
Browse files

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: default avatarSam Ravnborg <sam@ravnborg.org>
parent 9a39e273
No related merge requests found
Showing with 72 additions and 69 deletions
...@@ -294,7 +294,7 @@ more details, with real examples. ...@@ -294,7 +294,7 @@ more details, with real examples.
This variable is necessary because the top Makefile owns the 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. entire tree.
$(EXTRA_AFLAGS) is a similar string for per-directory options $(EXTRA_AFLAGS) is a similar string for per-directory options
...@@ -437,6 +437,7 @@ more details, with real examples. ...@@ -437,6 +437,7 @@ more details, with real examples.
-march=pentium-mmx if supported by $(CC), otherwise -march=i586. -march=pentium-mmx if supported by $(CC), otherwise -march=i586.
The second argument to cc-option is optional, and if omitted, The second argument to cc-option is optional, and if omitted,
cflags-y will be assigned no value if first option is not supported. 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
cc-option-yn is used to check if gcc supports a given option cc-option-yn is used to check if gcc supports a given option
...@@ -452,6 +453,7 @@ more details, with real examples. ...@@ -452,6 +453,7 @@ more details, with real examples.
option. When $(biarch) equals 'y', the expanded variables $(aflags-y) option. When $(biarch) equals 'y', the expanded variables $(aflags-y)
and $(cflags-y) will be assigned the values -a32 and -m32, and $(cflags-y) will be assigned the values -a32 and -m32,
respectively. respectively.
Note: cc-option-yn uses KBUILD_CFLAGS for $(CC) options
cc-option-align cc-option-align
gcc versions >= 3.0 changed the type of options used to specify gcc versions >= 3.0 changed the type of options used to specify
...@@ -463,10 +465,11 @@ more details, with real examples. ...@@ -463,10 +465,11 @@ more details, with real examples.
cc-option-align = -falign cc-option-align = -falign
Example: 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 In the above example, the option -falign-functions=4 is used for
gcc >= 3.00. For gcc < 3.00, -malign-functions=4 is used. 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
cc-version returns a numerical version of the $(CC) compiler 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): ...@@ -825,17 +828,17 @@ When kbuild executes, the following steps are followed (roughly):
#arch/sparc64/Makefile #arch/sparc64/Makefile
AFLAGS += -m64 -mcpu=ultrasparc AFLAGS += -m64 -mcpu=ultrasparc
CFLAGS $(CC) compiler flags KBUILD_CFLAGS $(CC) compiler flags
Default value - see top level Makefile Default value - see top level Makefile
Append or modify as required per architecture. 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: Example:
#arch/i386/Makefile #arch/i386/Makefile
cflags-$(CONFIG_M386) += -march=i386 cflags-$(CONFIG_M386) += -march=i386
CFLAGS += $(cflags-y) KBUILD_CFLAGS += $(cflags-y)
Many arch Makefiles dynamically run the target C compiler to Many arch Makefiles dynamically run the target C compiler to
probe supported options: probe supported options:
...@@ -847,7 +850,7 @@ When kbuild executes, the following steps are followed (roughly): ...@@ -847,7 +850,7 @@ When kbuild executes, the following steps are followed (roughly):
-march=pentium2,-march=i686) -march=pentium2,-march=i686)
... ...
# Disable unit-at-a-time mode ... # 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)
... ...
......
...@@ -320,7 +320,7 @@ LINUXINCLUDE := -Iinclude \ ...@@ -320,7 +320,7 @@ LINUXINCLUDE := -Iinclude \
CPPFLAGS := -D__KERNEL__ $(LINUXINCLUDE) CPPFLAGS := -D__KERNEL__ $(LINUXINCLUDE)
CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common \ -fno-strict-aliasing -fno-common \
-Werror-implicit-function-declaration -Werror-implicit-function-declaration
AFLAGS := -D__ASSEMBLY__ AFLAGS := -D__ASSEMBLY__
...@@ -335,7 +335,7 @@ export CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE ...@@ -335,7 +335,7 @@ export CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE
export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
export CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS export CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
export AFLAGS AFLAGS_KERNEL AFLAGS_MODULE export AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
# When compiling out-of-tree modules, put MODVERDIR in the module # When compiling out-of-tree modules, put MODVERDIR in the module
...@@ -492,36 +492,36 @@ endif # $(dot-config) ...@@ -492,36 +492,36 @@ endif # $(dot-config)
all: vmlinux all: vmlinux
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
CFLAGS += -Os KBUILD_CFLAGS += -Os
else else
CFLAGS += -O2 KBUILD_CFLAGS += -O2
endif endif
include $(srctree)/arch/$(ARCH)/Makefile include $(srctree)/arch/$(ARCH)/Makefile
ifdef CONFIG_FRAME_POINTER ifdef CONFIG_FRAME_POINTER
CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
else else
CFLAGS += -fomit-frame-pointer KBUILD_CFLAGS += -fomit-frame-pointer
endif endif
ifdef CONFIG_DEBUG_INFO ifdef CONFIG_DEBUG_INFO
CFLAGS += -g KBUILD_CFLAGS += -g
AFLAGS += -gdwarf-2 AFLAGS += -gdwarf-2
endif endif
# Force gcc to behave correct even for buggy distributions # Force gcc to behave correct even for buggy distributions
CFLAGS += $(call cc-option, -fno-stack-protector) KBUILD_CFLAGS += $(call cc-option, -fno-stack-protector)
# arch Makefile may override CC so keep this after arch Makefile is included # arch Makefile may override CC so keep this after arch Makefile is included
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
CHECKFLAGS += $(NOSTDINC_FLAGS) CHECKFLAGS += $(NOSTDINC_FLAGS)
# warn about C99 declaration after statement # warn about C99 declaration after statement
CFLAGS += $(call cc-option,-Wdeclaration-after-statement,) KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,)
# disable pointer signed / unsigned warnings in gcc 4.0 # disable pointer signed / unsigned warnings in gcc 4.0
CFLAGS += $(call cc-option,-Wno-pointer-sign,) KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,)
# Use --build-id when available. # Use --build-id when available.
LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\ LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\
......
...@@ -84,7 +84,7 @@ endif ...@@ -84,7 +84,7 @@ endif
# For TSUNAMI, we must have the assembler not emulate our instructions. # For TSUNAMI, we must have the assembler not emulate our instructions.
# The same is true for IRONGATE, POLARIS, PYXIS. # The same is true for IRONGATE, POLARIS, PYXIS.
# BWX is most important, but we don't really want any emulation ever. # BWX is most important, but we don't really want any emulation ever.
CFLAGS += $(cflags-y) -Wa,-mev6 KBUILD_CFLAGS += $(cflags-y) -Wa,-mev6
head-y := arch/alpha/kernel/head.o head-y := arch/alpha/kernel/head.o
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# #
extra-y := head.o vmlinux.lds extra-y := head.o vmlinux.lds
EXTRA_AFLAGS := $(CFLAGS) EXTRA_AFLAGS := $(KBUILD_CFLAGS)
EXTRA_CFLAGS := -Werror -Wno-sign-compare EXTRA_CFLAGS := -Werror -Wno-sign-compare
obj-y := entry.o traps.o process.o init_task.o osf_sys.o irq.o \ obj-y := entry.o traps.o process.o init_task.o osf_sys.o irq.o \
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# Makefile for alpha-specific library files.. # Makefile for alpha-specific library files..
# #
EXTRA_AFLAGS := $(CFLAGS) EXTRA_AFLAGS := $(KBUILD_CFLAGS)
EXTRA_CFLAGS := -Werror EXTRA_CFLAGS := -Werror
# Many of these routines have implementations tuned for ev6. # Many of these routines have implementations tuned for ev6.
......
...@@ -14,9 +14,9 @@ LDFLAGS_vmlinux :=-p --no-undefined -X ...@@ -14,9 +14,9 @@ LDFLAGS_vmlinux :=-p --no-undefined -X
CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET) CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET)
OBJCOPYFLAGS :=-O binary -R .note -R .comment -S OBJCOPYFLAGS :=-O binary -R .note -R .comment -S
GZFLAGS :=-9 GZFLAGS :=-9
#CFLAGS +=-pipe #KBUILD_CFLAGS +=-pipe
# Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb: # Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb:
CFLAGS +=$(call cc-option,-marm,) KBUILD_CFLAGS +=$(call cc-option,-marm,)
# Do not use arch/arm/defconfig - it's always outdated. # Do not use arch/arm/defconfig - it's always outdated.
# Select a platform tht is kept up-to-date # Select a platform tht is kept up-to-date
...@@ -28,7 +28,7 @@ MMUEXT := -nommu ...@@ -28,7 +28,7 @@ MMUEXT := -nommu
endif endif
ifeq ($(CONFIG_FRAME_POINTER),y) ifeq ($(CONFIG_FRAME_POINTER),y)
CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog KBUILD_CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
endif endif
ifeq ($(CONFIG_CPU_BIG_ENDIAN),y) ifeq ($(CONFIG_CPU_BIG_ENDIAN),y)
...@@ -85,7 +85,7 @@ CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-th ...@@ -85,7 +85,7 @@ CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-th
endif endif
# Need -Uarm for gcc < 3.x # Need -Uarm for gcc < 3.x
CFLAGS +=$(CFLAGS_ABI) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm KBUILD_CFLAGS +=$(CFLAGS_ABI) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm
AFLAGS +=$(CFLAGS_ABI) $(arch-y) $(tune-y) -msoft-float AFLAGS +=$(CFLAGS_ABI) $(arch-y) $(tune-y) -msoft-float
CHECKFLAGS += -D__arm__ CHECKFLAGS += -D__arm__
......
...@@ -87,7 +87,7 @@ ifneq ($(PARAMS_PHYS),) ...@@ -87,7 +87,7 @@ ifneq ($(PARAMS_PHYS),)
LDFLAGS_vmlinux += --defsym params_phys=$(PARAMS_PHYS) LDFLAGS_vmlinux += --defsym params_phys=$(PARAMS_PHYS)
endif endif
LDFLAGS_vmlinux += -p --no-undefined -X \ LDFLAGS_vmlinux += -p --no-undefined -X \
$(shell $(CC) $(CFLAGS) --print-libgcc-file-name) -T $(shell $(CC) $(KBUILD_CFLAGS) --print-libgcc-file-name) -T
# Don't allow any static data in misc.o, which # Don't allow any static data in misc.o, which
# would otherwise mess up our GOT table # would otherwise mess up our GOT table
......
...@@ -11,14 +11,14 @@ all: uImage vmlinux.elf ...@@ -11,14 +11,14 @@ all: uImage vmlinux.elf
KBUILD_DEFCONFIG := atstk1002_defconfig KBUILD_DEFCONFIG := atstk1002_defconfig
CFLAGS += -pipe -fno-builtin -mno-pic KBUILD_CFLAGS += -pipe -fno-builtin -mno-pic
AFLAGS += -mrelax -mno-pic AFLAGS += -mrelax -mno-pic
CFLAGS_MODULE += -mno-relax CFLAGS_MODULE += -mno-relax
LDFLAGS_vmlinux += --relax LDFLAGS_vmlinux += --relax
cpuflags-$(CONFIG_CPU_AT32AP7000) += -mcpu=ap7000 cpuflags-$(CONFIG_CPU_AT32AP7000) += -mcpu=ap7000
CFLAGS += $(cpuflags-y) KBUILD_CFLAGS += $(cpuflags-y)
AFLAGS += $(cpuflags-y) AFLAGS += $(cpuflags-y)
CHECKFLAGS += -D__avr32__ -D__BIG_ENDIAN CHECKFLAGS += -D__avr32__ -D__BIG_ENDIAN
......
...@@ -53,7 +53,7 @@ rev-$(CONFIG_BF_REV_0_5) := 0.5 ...@@ -53,7 +53,7 @@ rev-$(CONFIG_BF_REV_0_5) := 0.5
rev-$(CONFIG_BF_REV_NONE) := none rev-$(CONFIG_BF_REV_NONE) := none
rev-$(CONFIG_BF_REV_ANY) := any rev-$(CONFIG_BF_REV_ANY) := any
CFLAGS += -mcpu=$(cpu-y)-$(rev-y) KBUILD_CFLAGS += -mcpu=$(cpu-y)-$(rev-y)
AFLAGS += -mcpu=$(cpu-y)-$(rev-y) AFLAGS += -mcpu=$(cpu-y)-$(rev-y)
head-y := arch/$(ARCH)/mach-$(MACHINE)/head.o arch/$(ARCH)/kernel/init_task.o head-y := arch/$(ARCH)/mach-$(MACHINE)/head.o arch/$(ARCH)/kernel/init_task.o
......
...@@ -31,16 +31,16 @@ OBJCOPYFLAGS := -O binary -R .note -R .comment -S ...@@ -31,16 +31,16 @@ OBJCOPYFLAGS := -O binary -R .note -R .comment -S
CPPFLAGS_vmlinux.lds = -DDRAM_VIRTUAL_BASE=0x$(CONFIG_ETRAX_DRAM_VIRTUAL_BASE) CPPFLAGS_vmlinux.lds = -DDRAM_VIRTUAL_BASE=0x$(CONFIG_ETRAX_DRAM_VIRTUAL_BASE)
AFLAGS += -mlinux AFLAGS += -mlinux
CFLAGS := $(CFLAGS) -mlinux -march=$(arch-y) -pipe KBUILD_CFLAGS += -mlinux -march=$(arch-y) -pipe
ifdef CONFIG_FRAME_POINTER ifdef CONFIG_FRAME_POINTER
CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS)) -g KBUILD_CFLAGS := $(subst -fomit-frame-pointer,,$(KBUILD_CFLAGS)) -g
CFLAGS += -fno-omit-frame-pointer KBUILD_CFLAGS += -fno-omit-frame-pointer
endif endif
head-y := arch/$(ARCH)/$(SARCH)/kernel/head.o head-y := arch/$(ARCH)/$(SARCH)/kernel/head.o
LIBGCC = $(shell $(CC) $(CFLAGS) -print-file-name=libgcc.a) LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-file-name=libgcc.a)
core-y += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/ core-y += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/
core-y += arch/$(ARCH)/$(SARCH)/kernel/ arch/$(ARCH)/$(SARCH)/mm/ core-y += arch/$(ARCH)/$(SARCH)/kernel/ arch/$(ARCH)/$(SARCH)/mm/
......
...@@ -39,13 +39,13 @@ endif ...@@ -39,13 +39,13 @@ endif
ARCHMODFLAGS += -G0 -mlong-calls ARCHMODFLAGS += -G0 -mlong-calls
ifdef CONFIG_GPREL_DATA_8 ifdef CONFIG_GPREL_DATA_8
CFLAGS += -G8 KBUILD_CFLAGS += -G8
else else
ifdef CONFIG_GPREL_DATA_4 ifdef CONFIG_GPREL_DATA_4
CFLAGS += -G4 KBUILD_CFLAGS += -G4
else else
ifdef CONFIG_GPREL_DATA_NONE ifdef CONFIG_GPREL_DATA_NONE
CFLAGS += -G0 KBUILD_CFLAGS += -G0
endif endif
endif endif
endif endif
...@@ -53,25 +53,25 @@ endif ...@@ -53,25 +53,25 @@ endif
#LDFLAGS_vmlinux := -Map linkmap.txt #LDFLAGS_vmlinux := -Map linkmap.txt
ifdef CONFIG_GC_SECTIONS ifdef CONFIG_GC_SECTIONS
CFLAGS += -ffunction-sections -fdata-sections KBUILD_CFLAGS += -ffunction-sections -fdata-sections
LINKFLAGS += --gc-sections LINKFLAGS += --gc-sections
endif endif
ifndef CONFIG_FRAME_POINTER ifndef CONFIG_FRAME_POINTER
CFLAGS += -mno-linked-fp KBUILD_CFLAGS += -mno-linked-fp
endif endif
ifdef CONFIG_CPU_FR451_COMPILE ifdef CONFIG_CPU_FR451_COMPILE
CFLAGS += -mcpu=fr450 KBUILD_CFLAGS += -mcpu=fr450
AFLAGS += -mcpu=fr450 AFLAGS += -mcpu=fr450
ASFLAGS += -mcpu=fr450 ASFLAGS += -mcpu=fr450
else else
ifdef CONFIG_CPU_FR551_COMPILE ifdef CONFIG_CPU_FR551_COMPILE
CFLAGS += -mcpu=fr550 KBUILD_CFLAGS += -mcpu=fr550
AFLAGS += -mcpu=fr550 AFLAGS += -mcpu=fr550
ASFLAGS += -mcpu=fr550 ASFLAGS += -mcpu=fr550
else else
CFLAGS += -mcpu=fr400 KBUILD_CFLAGS += -mcpu=fr400
AFLAGS += -mcpu=fr400 AFLAGS += -mcpu=fr400
ASFLAGS += -mcpu=fr400 ASFLAGS += -mcpu=fr400
endif endif
...@@ -80,15 +80,15 @@ endif ...@@ -80,15 +80,15 @@ endif
# pretend the kernel is going to run on an FR400 with no media-fp unit # pretend the kernel is going to run on an FR400 with no media-fp unit
# - reserve CC3 for use with atomic ops # - reserve CC3 for use with atomic ops
# - all the extra registers are dealt with only at context switch time # - all the extra registers are dealt with only at context switch time
CFLAGS += -mno-fdpic -mgpr-32 -msoft-float -mno-media KBUILD_CFLAGS += -mno-fdpic -mgpr-32 -msoft-float -mno-media
CFLAGS += -ffixed-fcc3 -ffixed-cc3 -ffixed-gr15 -ffixed-icc2 KBUILD_CFLAGS += -ffixed-fcc3 -ffixed-cc3 -ffixed-gr15 -ffixed-icc2
AFLAGS += -mno-fdpic AFLAGS += -mno-fdpic
ASFLAGS += -mno-fdpic ASFLAGS += -mno-fdpic
# make sure the .S files get compiled with debug info # make sure the .S files get compiled with debug info
# and disable optimisations that are unhelpful whilst debugging # and disable optimisations that are unhelpful whilst debugging
ifdef CONFIG_DEBUG_INFO ifdef CONFIG_DEBUG_INFO
#CFLAGS += -O1 #KBUILD_CFLAGS += -O1
AFLAGS += -Wa,--gdwarf2 AFLAGS += -Wa,--gdwarf2
ASFLAGS += -Wa,--gdwarf2 ASFLAGS += -Wa,--gdwarf2
endif endif
......
...@@ -30,16 +30,16 @@ ldflags-$(CONFIG_CPU_H8300H) := -mh8300helf ...@@ -30,16 +30,16 @@ ldflags-$(CONFIG_CPU_H8300H) := -mh8300helf
cflags-$(CONFIG_CPU_H8S) := -ms cflags-$(CONFIG_CPU_H8S) := -ms
ldflags-$(CONFIG_CPU_H8S) := -mh8300self ldflags-$(CONFIG_CPU_H8S) := -mh8300self
CFLAGS += $(cflags-y) KBUILD_CFLAGS += $(cflags-y)
CFLAGS += -mint32 -fno-builtin KBUILD_CFLAGS += -mint32 -fno-builtin
CFLAGS += -g KBUILD_CFLAGS += -g
CFLAGS += -D__linux__ KBUILD_CFLAGS += -D__linux__
CFLAGS += -DUTS_SYSNAME=\"uClinux\" KBUILD_CFLAGS += -DUTS_SYSNAME=\"uClinux\"
AFLAGS += -DPLATFORM=$(PLATFORM) -DMODEL=$(MODEL) $(cflags-y) AFLAGS += -DPLATFORM=$(PLATFORM) -DMODEL=$(MODEL) $(cflags-y)
LDFLAGS += $(ldflags-y) LDFLAGS += $(ldflags-y)
CROSS_COMPILE = h8300-elf- CROSS_COMPILE = h8300-elf-
LIBGCC := $(shell $(CROSS-COMPILE)$(CC) $(CFLAGS) -print-libgcc-file-name) LIBGCC := $(shell $(CROSS-COMPILE)$(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
head-y := arch/$(ARCH)/platform/$(PLATFORM)/$(BOARD)/crt0_$(MODEL).o head-y := arch/$(ARCH)/platform/$(PLATFORM)/$(BOARD)/crt0_$(MODEL).o
......
...@@ -34,10 +34,10 @@ LDFLAGS_vmlinux := --emit-relocs ...@@ -34,10 +34,10 @@ LDFLAGS_vmlinux := --emit-relocs
endif endif
CHECKFLAGS += -D__i386__ CHECKFLAGS += -D__i386__
CFLAGS += -pipe -msoft-float -mregparm=3 -freg-struct-return KBUILD_CFLAGS += -pipe -msoft-float -mregparm=3 -freg-struct-return
# prevent gcc from keeping the stack 16 byte aligned # prevent gcc from keeping the stack 16 byte aligned
CFLAGS += $(call cc-option,-mpreferred-stack-boundary=2) KBUILD_CFLAGS += $(call cc-option,-mpreferred-stack-boundary=2)
# CPU-specific tuning. Anything which can be shared with UML should go here. # CPU-specific tuning. Anything which can be shared with UML should go here.
include $(srctree)/arch/i386/Makefile.cpu include $(srctree)/arch/i386/Makefile.cpu
...@@ -51,7 +51,7 @@ cflags-y += -maccumulate-outgoing-args ...@@ -51,7 +51,7 @@ cflags-y += -maccumulate-outgoing-args
# Disable unit-at-a-time mode on pre-gcc-4.0 compilers, it makes gcc use # Disable unit-at-a-time mode on pre-gcc-4.0 compilers, it makes gcc use
# a lot more stack due to the lack of sharing of stacklots: # a lot more stack due to the lack of sharing of stacklots:
CFLAGS += $(shell if [ $(call cc-version) -lt 0400 ] ; then echo $(call cc-option,-fno-unit-at-a-time); fi ;) KBUILD_CFLAGS += $(shell if [ $(call cc-version) -lt 0400 ] ; then echo $(call cc-option,-fno-unit-at-a-time); fi ;)
# do binutils support CFI? # do binutils support CFI?
cflags-y += $(call as-instr,.cfi_startproc\n.cfi_rel_offset esp${comma}0\n.cfi_endproc,-DCONFIG_AS_CFI=1,) cflags-y += $(call as-instr,.cfi_startproc\n.cfi_rel_offset esp${comma}0\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
...@@ -61,7 +61,7 @@ AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_rel_offset esp${comma}0\n.cfi_end ...@@ -61,7 +61,7 @@ AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_rel_offset esp${comma}0\n.cfi_end
cflags-y += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,) cflags-y += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,)
AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,) AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,)
CFLAGS += $(cflags-y) KBUILD_CFLAGS += $(cflags-y)
# Default subarch .c files # Default subarch .c files
mcore-y := arch/x86/mach-default mcore-y := arch/x86/mach-default
...@@ -116,7 +116,7 @@ drivers-$(CONFIG_OPROFILE) += arch/x86/oprofile/ ...@@ -116,7 +116,7 @@ drivers-$(CONFIG_OPROFILE) += arch/x86/oprofile/
drivers-$(CONFIG_PM) += arch/x86/power/ drivers-$(CONFIG_PM) += arch/x86/power/
drivers-$(CONFIG_FB) += arch/x86/video/ drivers-$(CONFIG_FB) += arch/x86/video/
CFLAGS += $(mflags-y) KBUILD_CFLAGS += $(mflags-y)
AFLAGS += $(mflags-y) AFLAGS += $(mflags-y)
boot := arch/x86/boot boot := arch/x86/boot
......
...@@ -44,7 +44,7 @@ ifeq ($(call cc-version),0304) ...@@ -44,7 +44,7 @@ ifeq ($(call cc-version),0304)
cflags-$(CONFIG_MCKINLEY) += -mtune=mckinley cflags-$(CONFIG_MCKINLEY) += -mtune=mckinley
endif endif
CFLAGS += $(cflags-y) KBUILD_CFLAGS += $(cflags-y)
head-y := arch/ia64/kernel/head.o arch/ia64/kernel/init_task.o head-y := arch/ia64/kernel/head.o arch/ia64/kernel/init_task.o
libs-y += arch/ia64/lib/ libs-y += arch/ia64/lib/
......
...@@ -9,7 +9,7 @@ LDFLAGS := ...@@ -9,7 +9,7 @@ LDFLAGS :=
OBJCOPYFLAGS := -O binary -R .note -R .comment -S OBJCOPYFLAGS := -O binary -R .note -R .comment -S
LDFLAGS_vmlinux := LDFLAGS_vmlinux :=
CFLAGS += -pipe -fno-schedule-insns KBUILD_CFLAGS += -pipe -fno-schedule-insns
CFLAGS_KERNEL += -mmodel=medium CFLAGS_KERNEL += -mmodel=medium
CFLAGS_MODULE += -mmodel=large CFLAGS_MODULE += -mmodel=large
...@@ -24,14 +24,14 @@ endif ...@@ -24,14 +24,14 @@ endif
cflags-$(CONFIG_ISA_M32R) += -DNO_FPU cflags-$(CONFIG_ISA_M32R) += -DNO_FPU
aflags-$(CONFIG_ISA_M32R) += -DNO_FPU -O2 -Wa,-no-bitinst aflags-$(CONFIG_ISA_M32R) += -DNO_FPU -O2 -Wa,-no-bitinst
CFLAGS += $(cflags-y) KBUILD_CFLAGS += $(cflags-y)
AFLAGS += $(aflags-y) AFLAGS += $(aflags-y)
CHECKFLAGS += -D__m32r__ -D__BIG_ENDIAN__=1 CHECKFLAGS += -D__m32r__ -D__BIG_ENDIAN__=1
head-y := arch/m32r/kernel/head.o arch/m32r/kernel/init_task.o head-y := arch/m32r/kernel/head.o arch/m32r/kernel/init_task.o
LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
libs-y += arch/m32r/lib/ $(LIBGCC) libs-y += arch/m32r/lib/ $(LIBGCC)
core-y += arch/m32r/kernel/ \ core-y += arch/m32r/kernel/ \
......
...@@ -32,18 +32,18 @@ endif ...@@ -32,18 +32,18 @@ endif
CHECKFLAGS += -D__mc68000__ CHECKFLAGS += -D__mc68000__
# without -fno-strength-reduce the 53c7xx.c driver fails ;-( # without -fno-strength-reduce the 53c7xx.c driver fails ;-(
CFLAGS += -pipe -fno-strength-reduce -ffixed-a2 KBUILD_CFLAGS += -pipe -fno-strength-reduce -ffixed-a2
# enable processor switch if compiled only for a single cpu # enable processor switch if compiled only for a single cpu
ifndef CONFIG_M68020 ifndef CONFIG_M68020
ifndef CONFIG_M68030 ifndef CONFIG_M68030
ifndef CONFIG_M68060 ifndef CONFIG_M68060
CFLAGS := $(CFLAGS) -m68040 KBUILD_CFLAGS += -m68040
endif endif
ifndef CONFIG_M68040 ifndef CONFIG_M68040
CFLAGS := $(CFLAGS) -m68060 KBUILD_CFLAGS += -m68060
endif endif
endif endif
...@@ -52,7 +52,7 @@ endif ...@@ -52,7 +52,7 @@ endif
ifdef CONFIG_KGDB ifdef CONFIG_KGDB
# If configured for kgdb support, include debugging infos and keep the # If configured for kgdb support, include debugging infos and keep the
# frame pointer # frame pointer
CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS)) -g KBUILD_CFLAGS := $(subst -fomit-frame-pointer,,$(KBUILD_CFLAGS)) -g
endif endif
ifndef CONFIG_SUN3 ifndef CONFIG_SUN3
......
...@@ -104,9 +104,9 @@ cflags-$(CONFIG_M68360) := -m68332 ...@@ -104,9 +104,9 @@ cflags-$(CONFIG_M68360) := -m68332
AFLAGS += $(cflags-y) AFLAGS += $(cflags-y)
CFLAGS += $(cflags-y) KBUILD_CFLAGS += $(cflags-y)
CFLAGS += -D__linux__ KBUILD_CFLAGS += -D__linux__
CFLAGS += -DUTS_SYSNAME=\"uClinux\" KBUILD_CFLAGS += -DUTS_SYSNAME=\"uClinux\"
head-y := arch/m68knommu/platform/$(cpuclass-y)/head.o head-y := arch/m68knommu/platform/$(cpuclass-y)/head.o
......
...@@ -609,13 +609,13 @@ ifdef CONFIG_64BIT ...@@ -609,13 +609,13 @@ ifdef CONFIG_64BIT
endif endif
AFLAGS += $(cflags-y) AFLAGS += $(cflags-y)
CFLAGS += $(cflags-y) \ KBUILD_CFLAGS += $(cflags-y) \
-D"VMLINUX_LOAD_ADDRESS=$(load-y)" -D"VMLINUX_LOAD_ADDRESS=$(load-y)"
LDFLAGS += -m $(ld-emul) LDFLAGS += -m $(ld-emul)
ifdef CONFIG_MIPS ifdef CONFIG_MIPS
CHECKFLAGS += $(shell $(CC) $(CFLAGS) -dM -E -xc /dev/null | \ CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -xc /dev/null | \
egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \ egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \
sed -e 's/^\#define /-D/' -e "s/ /='/" -e "s/$$/'/") sed -e 's/^\#define /-D/' -e "s/ /='/" -e "s/$$/'/")
ifdef CONFIG_64BIT ifdef CONFIG_64BIT
...@@ -632,7 +632,7 @@ OBJCOPYFLAGS += --remove-section=.reginfo ...@@ -632,7 +632,7 @@ OBJCOPYFLAGS += --remove-section=.reginfo
# #
CPPFLAGS_vmlinux.lds := \ CPPFLAGS_vmlinux.lds := \
$(CFLAGS) \ $(KBUILD_CFLAGS) \
-D"LOADADDR=$(load-y)" \ -D"LOADADDR=$(load-y)" \
-D"JIFFIES=$(JIFFIES)" \ -D"JIFFIES=$(JIFFIES)" \
-D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)" -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)"
......
...@@ -71,7 +71,7 @@ obj-$(CONFIG_PCSPEAKER) += pcspeaker.o ...@@ -71,7 +71,7 @@ obj-$(CONFIG_PCSPEAKER) += pcspeaker.o
obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi) CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(KBUILD_CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi)
obj-$(CONFIG_HAVE_STD_PC_SERIAL_PORT) += 8250-platform.o obj-$(CONFIG_HAVE_STD_PC_SERIAL_PORT) += 8250-platform.o
......
...@@ -63,7 +63,7 @@ cflags-$(CONFIG_PA8X00) += -march=2.0 -mschedule=8000 ...@@ -63,7 +63,7 @@ cflags-$(CONFIG_PA8X00) += -march=2.0 -mschedule=8000
head-y := arch/parisc/kernel/head.o head-y := arch/parisc/kernel/head.o
CFLAGS += $(cflags-y) KBUILD_CFLAGS += $(cflags-y)
kernel-y := mm/ kernel/ math-emu/ kernel/init_task.o kernel-y := mm/ kernel/ math-emu/ kernel/init_task.o
kernel-$(CONFIG_HPUX) += hpux/ kernel-$(CONFIG_HPUX) += hpux/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment