diff options
author | Patrick Georgi <pgeorgi@chromium.org> | 2015-05-07 22:24:41 +0200 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2015-05-20 08:03:06 +0200 |
commit | eec8dfb5e7eec7d837005ce97eb09d18386fabdd (patch) | |
tree | 2170dde304c59736a58cf3a698e20baef6edd3f8 /src/cpu | |
parent | 18fed3dda68a29abf8bee987bc60a64258d2a83f (diff) | |
download | coreboot-eec8dfb5e7eec7d837005ce97eb09d18386fabdd.tar.xz |
build system: use archives, not linker action to shorten command lines
Intermediate linking may distort linker behavior (in particular related to
weak symbols). The idea is that archives are closer to 'just a list of
object files', and ideally makes the linker more predictable.
Using --whole-archive, the linker doesn't optimize out object files just
because their symbols were already provided by weak versions. However it
shouldn't be used for libgcc, because that one has some unexpected side-effects.
Change-Id: Ie226c198a93bcdca2d82c02431c72108a1c6ea60
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-on: http://review.coreboot.org/10139
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com>
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/x86/smm/Makefile.inc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cpu/x86/smm/Makefile.inc b/src/cpu/x86/smm/Makefile.inc index a02be49ef4..36f83c8876 100644 --- a/src/cpu/x86/smm/Makefile.inc +++ b/src/cpu/x86/smm/Makefile.inc @@ -32,7 +32,7 @@ smm-generic-ccopts += -D__SMM__ smm-c-deps:=$$(OPTION_TABLE_H) $(obj)/cpu/x86/smm/smm.o: $$(smm-objs) $(COMPILER_RT_smm) - $(LD_smm) -nostdlib -r -o $@ $(COMPILER_RT_FLAGS_smm) --start-group $(smm-objs) $(COMPILER_RT_smm) --end-group + $(LD_smm) -nostdlib -r -o $@ $(COMPILER_RT_FLAGS_smm) --whole-archive --start-group $(smm-objs) --no-whole-archive $(COMPILER_RT_smm) --end-group ifeq ($(CONFIG_SMM_MODULES),y) |