forked from mirrors/linux
		
	 4074532758
			
		
	
	
		4074532758
		
	
	
	
	
		
			
			Modify modpost to use binary search for converting addresses back into symbol references. Previously it used linear search. This change saves a few seconds of wall time for defconfig builds, but can save several minutes on allyesconfigs. Before: $ make LLVM=1 -j128 allyesconfig vmlinux -s KCFLAGS="-Wno-error" $ time scripts/mod/modpost -M -m -a -N -o vmlinux.symvers vmlinux.o 198.38user 1.27system 3:19.71elapsed After: $ make LLVM=1 -j128 allyesconfig vmlinux -s KCFLAGS="-Wno-error" $ time scripts/mod/modpost -M -m -a -N -o vmlinux.symvers vmlinux.o 11.91user 0.85system 0:12.78elapsed Signed-off-by: Jack Brennen <jbrennen@google.com> Tested-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
		
			
				
	
	
		
			28 lines
		
	
	
	
		
			892 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			892 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # SPDX-License-Identifier: GPL-2.0
 | |
| OBJECT_FILES_NON_STANDARD := y
 | |
| CFLAGS_REMOVE_empty.o += $(CC_FLAGS_LTO)
 | |
| 
 | |
| hostprogs-always-y	+= modpost mk_elfconfig
 | |
| always-y		+= empty.o
 | |
| 
 | |
| modpost-objs	:= modpost.o file2alias.o sumversion.o symsearch.o
 | |
| 
 | |
| devicetable-offsets-file := devicetable-offsets.h
 | |
| 
 | |
| $(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s FORCE
 | |
| 	$(call filechk,offsets,__DEVICETABLE_OFFSETS_H__)
 | |
| 
 | |
| targets += $(devicetable-offsets-file) devicetable-offsets.s
 | |
| 
 | |
| # dependencies on generated files need to be listed explicitly
 | |
| 
 | |
| $(obj)/modpost.o $(obj)/file2alias.o $(obj)/sumversion.o $(obj)/symsearch.o: $(obj)/elfconfig.h
 | |
| $(obj)/file2alias.o: $(obj)/$(devicetable-offsets-file)
 | |
| 
 | |
| quiet_cmd_elfconfig = MKELF   $@
 | |
|       cmd_elfconfig = $(obj)/mk_elfconfig < $< > $@
 | |
| 
 | |
| $(obj)/elfconfig.h: $(obj)/empty.o $(obj)/mk_elfconfig FORCE
 | |
| 	$(call if_changed,elfconfig)
 | |
| 
 | |
| targets += elfconfig.h
 |