mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	kbuild: no gcc-plugins during cc-option tests
The gcc-plugins arguments should not be included when performing cc-option tests. Steps to reproduce: 1) make mrproper 2) make defconfig 3) enable GCC_PLUGINS, GCC_PLUGIN_CYC_COMPLEXITY 4) enable FUNCTION_TRACER (it will select other options as well) 5) make && make modules Build errors: MODPOST 18 modules ERROR: "__fentry__" [net/netfilter/xt_nat.ko] undefined! ERROR: "__fentry__" [net/netfilter/xt_mark.ko] undefined! ERROR: "__fentry__" [net/netfilter/xt_addrtype.ko] undefined! ERROR: "__fentry__" [net/netfilter/xt_LOG.ko] undefined! ERROR: "__fentry__" [net/netfilter/nf_nat_sip.ko] undefined! ERROR: "__fentry__" [net/netfilter/nf_nat_irc.ko] undefined! ERROR: "__fentry__" [net/netfilter/nf_nat_ftp.ko] undefined! ERROR: "__fentry__" [net/netfilter/nf_nat.ko] undefined! Reported-by: Laura Abbott <labbott@redhat.com> Signed-off-by: Emese Revfy <re.emese@gmail.com> [kees: renamed variable, clarified commit message] Signed-off-by: Kees Cook <keescook@chromium.org>
This commit is contained in:
		
							parent
							
								
									574673c231
								
							
						
					
					
						commit
						d26e941492
					
				
					 1 changed files with 7 additions and 3 deletions
				
			
		| 
						 | 
					@ -108,16 +108,20 @@ as-option = $(call try-run,\
 | 
				
			||||||
as-instr = $(call try-run,\
 | 
					as-instr = $(call try-run,\
 | 
				
			||||||
	printf "%b\n" "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -x assembler -o "$$TMP" -,$(2),$(3))
 | 
						printf "%b\n" "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -x assembler -o "$$TMP" -,$(2),$(3))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Do not attempt to build with gcc plugins during cc-option tests.
 | 
				
			||||||
 | 
					# (And this uses delayed resolution so the flags will be up to date.)
 | 
				
			||||||
 | 
					CC_OPTION_CFLAGS = $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# cc-option
 | 
					# cc-option
 | 
				
			||||||
# Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586)
 | 
					# Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cc-option = $(call try-run,\
 | 
					cc-option = $(call try-run,\
 | 
				
			||||||
	$(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
 | 
						$(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# cc-option-yn
 | 
					# cc-option-yn
 | 
				
			||||||
# Usage: flag := $(call cc-option-yn,-march=winchip-c6)
 | 
					# Usage: flag := $(call cc-option-yn,-march=winchip-c6)
 | 
				
			||||||
cc-option-yn = $(call try-run,\
 | 
					cc-option-yn = $(call try-run,\
 | 
				
			||||||
	$(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
 | 
						$(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# cc-option-align
 | 
					# cc-option-align
 | 
				
			||||||
# Prefix align with either -falign or -malign
 | 
					# Prefix align with either -falign or -malign
 | 
				
			||||||
| 
						 | 
					@ -127,7 +131,7 @@ cc-option-align = $(subst -functions=0,,\
 | 
				
			||||||
# cc-disable-warning
 | 
					# cc-disable-warning
 | 
				
			||||||
# Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable)
 | 
					# Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable)
 | 
				
			||||||
cc-disable-warning = $(call try-run,\
 | 
					cc-disable-warning = $(call try-run,\
 | 
				
			||||||
	$(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
 | 
						$(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# cc-name
 | 
					# cc-name
 | 
				
			||||||
# Expands to either gcc or clang
 | 
					# Expands to either gcc or clang
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue