forked from mirrors/linux
		
	kbuild: enable 'make CPPFLAGS=...' to add additional options to CPP
The variable CPPFLAGS is a wellknown variable and the usage by kbuild may result in unexpected behaviour. This patch replace use of CPPFLAGS with KBUILD_CPPFLAGS all over the tree and enabling one to use: make CPPFLAGS=... to specify additional CPP commandline options. Patch was tested on following architectures: alpha, arm, i386, x86_64, mips, sparc, sparc64, ia64, m68k, s390 Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
This commit is contained in:
		
							parent
							
								
									52bcc3308a
								
							
						
					
					
						commit
						06c5040cdb
					
				
					 9 changed files with 18 additions and 17 deletions
				
			
		|  | @ -1099,7 +1099,7 @@ When kbuild executes, the following steps are followed (roughly): | |||
| 	specified options when building the target vmlinux.lds. | ||||
| 
 | ||||
| 	When building the *.lds target, kbuild uses the variables: | ||||
| 	CPPFLAGS	: Set in top-level Makefile | ||||
| 	KBUILD_CPPFLAGS	: Set in top-level Makefile | ||||
| 	EXTRA_CPPFLAGS	: May be set in the kbuild makefile | ||||
| 	CPPFLAGS_$(@F)  : Target specific flags. | ||||
| 	                  Note that the full filename is used in this | ||||
|  |  | |||
							
								
								
									
										9
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								Makefile
									
									
									
									
									
								
							|  | @ -318,7 +318,7 @@ LINUXINCLUDE    := -Iinclude \ | |||
|                    $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include) \
 | ||||
| 		   -include include/linux/autoconf.h | ||||
| 
 | ||||
| CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE) | ||||
| KBUILD_CPPFLAGS := -D__KERNEL__ $(LINUXINCLUDE) | ||||
| 
 | ||||
| KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
 | ||||
| 		   -fno-strict-aliasing -fno-common \
 | ||||
|  | @ -334,7 +334,7 @@ export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC | |||
| export CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE | ||||
| export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS | ||||
| 
 | ||||
| export CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS | ||||
| export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS | ||||
| export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE | ||||
| export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE | ||||
| 
 | ||||
|  | @ -523,7 +523,8 @@ KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,) | |||
| # disable pointer signed / unsigned warnings in gcc 4.0
 | ||||
| KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,) | ||||
| 
 | ||||
| # Add user supplied AFLAGS and CFLAGS as the last assignments
 | ||||
| # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments
 | ||||
| KBUILD_CPPFLAGS += $(CPPFLAGS) | ||||
| KBUILD_AFLAGS   += $(AFLAGS) | ||||
| KBUILD_CFLAGS   += $(CFLAGS) | ||||
| 
 | ||||
|  | @ -1507,7 +1508,7 @@ quiet_cmd_rmfiles = $(if $(wildcard $(rm-files)),CLEAN   $(wildcard $(rm-files)) | |||
| 
 | ||||
| 
 | ||||
| a_flags = -Wp,-MD,$(depfile) $(KBUILD_AFLAGS) $(AFLAGS_KERNEL) \
 | ||||
| 	  $(NOSTDINC_FLAGS) $(CPPFLAGS) \
 | ||||
| 	  $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) \
 | ||||
| 	  $(modkern_aflags) $(EXTRA_AFLAGS) $(AFLAGS_$(basetarget).o) | ||||
| 
 | ||||
| quiet_cmd_as_o_S = AS      $@ | ||||
|  |  | |||
|  | @ -32,11 +32,11 @@ KBUILD_CFLAGS	+=-fno-omit-frame-pointer -mapcs -mno-sched-prolog | |||
| endif | ||||
| 
 | ||||
| ifeq ($(CONFIG_CPU_BIG_ENDIAN),y) | ||||
| CPPFLAGS	+= -mbig-endian | ||||
| KBUILD_CPPFLAGS	+= -mbig-endian | ||||
| AS		+= -EB | ||||
| LD		+= -EB | ||||
| else | ||||
| CPPFLAGS	+= -mlittle-endian | ||||
| KBUILD_CPPFLAGS	+= -mlittle-endian | ||||
| AS		+= -EL | ||||
| LD		+= -EL | ||||
| endif | ||||
|  |  | |||
|  | @ -29,7 +29,7 @@ cflags-y	:= -pipe $(EXTRA) -ffixed-r13 -mfixed-range=f12-f15,f32-f127 \ | |||
| CFLAGS_KERNEL	:= -mconstant-gp | ||||
| 
 | ||||
| GAS_STATUS	= $(shell $(srctree)/arch/ia64/scripts/check-gas "$(CC)" "$(OBJDUMP)") | ||||
| CPPFLAGS += $(shell $(srctree)/arch/ia64/scripts/toolchain-flags "$(CC)" "$(OBJDUMP)" "$(READELF)") | ||||
| KBUILD_CPPFLAGS += $(shell $(srctree)/arch/ia64/scripts/toolchain-flags "$(CC)" "$(OBJDUMP)" "$(READELF)") | ||||
| 
 | ||||
| ifeq ($(GAS_STATUS),buggy) | ||||
| $(error Sorry, you need a newer version of the assember, one that is built from	\ | ||||
|  |  | |||
|  | @ -75,7 +75,7 @@ CPPFLAGS-$(CONFIG_PPC32) := -Iarch/$(ARCH) | |||
| AFLAGS-$(CONFIG_PPC32)	:= -Iarch/$(ARCH) | ||||
| CFLAGS-$(CONFIG_PPC64)	:= -mminimal-toc -mtraceback=none  -mcall-aixdesc | ||||
| CFLAGS-$(CONFIG_PPC32)	:= -Iarch/$(ARCH) -ffixed-r2 -mmultiple | ||||
| CPPFLAGS	+= $(CPPFLAGS-y) | ||||
| KBUILD_CPPFLAGS	+= $(CPPFLAGS-y) | ||||
| KBUILD_AFLAGS	+= $(AFLAGS-y) | ||||
| KBUILD_CFLAGS	+= -msoft-float -pipe $(CFLAGS-y) | ||||
| CPP		= $(CC) -E $(KBUILD_CFLAGS) | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ endif | |||
| 
 | ||||
| LDFLAGS_vmlinux	:= -Ttext $(KERNELLOAD) -Bstatic | ||||
| # The -Iarch/$(ARCH)/include is temporary while we are merging
 | ||||
| CPPFLAGS	+= -Iarch/$(ARCH) -Iarch/$(ARCH)/include | ||||
| KBUILD_CPPFLAGS	+= -Iarch/$(ARCH) -Iarch/$(ARCH)/include | ||||
| KBUILD_AFLAGS	+= -Iarch/$(ARCH) | ||||
| KBUILD_CFLAGS	+= -Iarch/$(ARCH) -msoft-float -pipe \
 | ||||
| 		-ffixed-r2 -mmultiple | ||||
|  |  | |||
|  | @ -14,7 +14,7 @@ KBUILD_CFLAGS += $(_extra_flags_) | |||
| CHECKFLAGS  += -m64 | ||||
| KBUILD_AFLAGS += -m64 | ||||
| LDFLAGS += -m elf_x86_64 | ||||
| CPPFLAGS += -m64 | ||||
| KBUILD_CPPFLAGS += -m64 | ||||
| 
 | ||||
| ELF_ARCH := i386:x86-64 | ||||
| ELF_FORMAT := elf64-x86-64 | ||||
|  |  | |||
|  | @ -41,7 +41,7 @@ ifeq ($(CONFIG_ATM_FORE200E_PCA),y) | |||
|   # guess the target endianess to choose the right PCA-200E firmware image | ||||
|   ifeq ($(CONFIG_ATM_FORE200E_PCA_DEFAULT_FW),y) | ||||
|     byteorder.h			:= include$(if $(patsubst $(srctree),,$(objtree)),2)/asm/byteorder.h | ||||
|     CONFIG_ATM_FORE200E_PCA_FW	:= $(obj)/pca200e$(if $(shell $(CC) $(CPPFLAGS) -E -dM $(byteorder.h) | grep ' __LITTLE_ENDIAN '),.bin,_ecd.bin2) | ||||
|     CONFIG_ATM_FORE200E_PCA_FW	:= $(obj)/pca200e$(if $(shell $(CC) $(KBUILD_CPPFLAGS) -E -dM $(byteorder.h) | grep ' __LITTLE_ENDIAN '),.bin,_ecd.bin2) | ||||
|   endif | ||||
| endif | ||||
| 
 | ||||
|  |  | |||
|  | @ -86,7 +86,7 @@ modname_flags  = $(if $(filter 1,$(words $(modname))),\ | |||
| 
 | ||||
| _c_flags       = $(KBUILD_CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$(basetarget).o) | ||||
| _a_flags       = $(KBUILD_AFLAGS) $(EXTRA_AFLAGS) $(AFLAGS_$(basetarget).o) | ||||
| _cpp_flags     = $(CPPFLAGS) $(EXTRA_CPPFLAGS) $(CPPFLAGS_$(@F)) | ||||
| _cpp_flags     = $(KBUILD_CPPFLAGS) $(EXTRA_CPPFLAGS) $(CPPFLAGS_$(@F)) | ||||
| 
 | ||||
| # If building the kernel in a separate objtree expand all occurrences | ||||
| # of -Idir to -I$(srctree)/dir except for absolute paths (starting with '/'). | ||||
|  | @ -106,11 +106,11 @@ __a_flags	=                          $(call flags,_a_flags) | |||
| __cpp_flags     =                          $(call flags,_cpp_flags) | ||||
| endif | ||||
| 
 | ||||
| c_flags        = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(CPPFLAGS) \ | ||||
| c_flags        = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) \ | ||||
| 		 $(__c_flags) $(modkern_cflags) \ | ||||
| 		 -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags) | ||||
| 
 | ||||
| a_flags        = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(CPPFLAGS) \ | ||||
| a_flags        = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) \ | ||||
| 		 $(__a_flags) $(modkern_aflags) | ||||
| 
 | ||||
| cpp_flags      = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(__cpp_flags) | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Sam Ravnborg
						Sam Ravnborg