cpu/x86/smm: Don't do partial linking
For LTO we want to link everything in one go. Change-Id: If2c186eb87072e0b80c7e8998b2a0d9bdfddf740 Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/84037 Reviewed-by: Nico Huber <nico.h@gmx.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
f48bf2e5e6
commit
af0da957f5
2 changed files with 7 additions and 5 deletions
|
|
@ -17,8 +17,10 @@ smmstub-generic-ccopts += -D__SMM__
|
|||
smm-generic-ccopts += -D__SMM__
|
||||
smm-c-deps+=$$(OPTION_TABLE_H)
|
||||
|
||||
$(obj)/smm/smm.o: $$(smm-objs) $(COMPILER_RT_smm)
|
||||
$(LD_smm) -nostdlib -r -o $@ $(COMPILER_RT_FLAGS_smm) --whole-archive --start-group $(filter-out %.ld, $(smm-objs)) --no-whole-archive $(COMPILER_RT_smm) --end-group
|
||||
$(obj)/smm/smm.a: $$(smm-objs)
|
||||
$(AR_smm) rcsT $@.tmp $(filter-out %.ld, $(smm-objs))
|
||||
mv $@.tmp $@
|
||||
|
||||
|
||||
# change to the target path because objcopy will use the path name in its
|
||||
# ELF symbol names.
|
||||
|
|
@ -65,9 +67,9 @@ $(call src-to-obj,ramstage,$(obj)/cpu/x86/smm/smmstub.manual): $(obj)/smmstub/sm
|
|||
# C-based SMM handler.
|
||||
|
||||
ifeq ($(CONFIG_ARCH_RAMSTAGE_X86_32),y)
|
||||
$(eval $(call rmodule_link,$(obj)/smm/smm.elf, $(obj)/smm/smm.o,x86_32))
|
||||
$(eval $(call rmodule_link,$(obj)/smm/smm.elf, $(obj)/smm/smm.a,x86_32))
|
||||
else
|
||||
$(eval $(call rmodule_link,$(obj)/smm/smm.elf, $(obj)/smm/smm.o,x86_64))
|
||||
$(eval $(call rmodule_link,$(obj)/smm/smm.elf, $(obj)/smm/smm.a,x86_64))
|
||||
endif
|
||||
|
||||
$(obj)/smm/smm: $(obj)/smm/smm.elf.rmod
|
||||
|
|
|
|||
|
|
@ -314,7 +314,7 @@ RMODULE_LDFLAGS := -z defs -Bsymbolic
|
|||
# rmdoule is named $(1).rmod
|
||||
define rmodule_link
|
||||
$(strip $(1)): $(strip $(2)) $$(COMPILER_RT_rmodules_$(3)) $(call src-to-obj,rmodules_$(3),src/lib/rmodule.ld) | $$(RMODTOOL)
|
||||
$$(LD_rmodules_$(3)) $$(LDFLAGS_rmodules_$(3)) $(RMODULE_LDFLAGS) $($(1)-ldflags) -T $(call src-to-obj,rmodules_$(3),src/lib/rmodule.ld) -o $$@ --whole-archive --start-group $(filter-out %.ld,$(2)) --end-group
|
||||
$$(LD_rmodules_$(3)) $$(LDFLAGS_rmodules_$(3)) $(RMODULE_LDFLAGS) $($(1)-ldflags) -T $(call src-to-obj,rmodules_$(3),src/lib/rmodule.ld) -o $$@ --whole-archive --start-group $(filter-out %.ld,$(2)) --no-whole-archive $$(COMPILER_RT_rmodules_$(3)) --end-group
|
||||
$$(NM_rmodules_$(3)) -n $$@ > $$(basename $$@).map
|
||||
endef
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue