Hi Simon, On Fri, Jul 31, 2015 at 11:31 PM, Simon Glass <[email protected]> wrote: > From: Ben Stoltz <[email protected]> > > Adjust the toolchain flags to build U-Boot as a relocatable shared library, > as required by EFI. > > Signed-off-by: Ben Stoltz <[email protected]> > Signed-off-by: Simon Glass <[email protected]> > --- > > Changes in v2: > - Add a comment as to where LDFLAGS_EFI is used > - Drop duplicate OBJCOPYFLAGS_EFI > - Drop no-red-zone as it is not needed for i386 > - Rename CONFIG_ARCH_EFI to CONFIG_EFI_APP > - Use toolchain instead of tool chain > > arch/x86/config.mk | 35 ++++++++++++++++++++++++++++++++--- > 1 file changed, 32 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/config.mk b/arch/x86/config.mk > index 999143e..a1c0eb2 100644 > --- a/arch/x86/config.mk > +++ b/arch/x86/config.mk > @@ -8,19 +8,48 @@ > CONFIG_STANDALONE_LOAD_ADDR ?= 0x40000 > > PLATFORM_CPPFLAGS += -fno-strict-aliasing > -PLATFORM_CPPFLAGS += -mregparm=3 > PLATFORM_CPPFLAGS += -fomit-frame-pointer > PF_CPPFLAGS_X86 := $(call cc-option, -fno-toplevel-reorder, \ > $(call cc-option, -fno-unit-at-a-time)) \ > $(call cc-option, -mpreferred-stack-boundary=2) > + > PLATFORM_CPPFLAGS += $(PF_CPPFLAGS_X86) > PLATFORM_CPPFLAGS += -fno-dwarf2-cfi-asm > PLATFORM_CPPFLAGS += -march=i386 -m32 > > PLATFORM_RELFLAGS += -ffunction-sections -fvisibility=hidden > > -PLATFORM_LDFLAGS += --emit-relocs -Bsymbolic -Bsymbolic-functions -m elf_i386 > +PLATFORM_LDFLAGS += -Bsymbolic -Bsymbolic-functions > > -LDFLAGS_FINAL += --gc-sections -pie > LDFLAGS_FINAL += --wrap=__divdi3 --wrap=__udivdi3 > LDFLAGS_FINAL += --wrap=__moddi3 --wrap=__umoddi3 > + > +# This is used in the top-level Makefile which does not include > +# PLATFORM_LDFLAGS
I see this is only used by building EFI payload. Can we remove this from this patch and move it into the EFI payload patch? And rename the variable to something like: LDFLAGS_EFIPAYLOAD to reflect this is only used for payload? > +LDFLAGS_EFI := -Bsymbolic -Bsymbolic-functions -shared --no-undefined > + > +OBJCOPYFLAGS_EFI := -j .text -j .sdata -j .data -j .dynamic -j .dynsym \ > + -j .rel -j .rela -j .reloc > + > +CFLAGS_NON_EFI := -mregparm=3 > +CFLAGS_EFI := -fpic -fshort-wchar > + > +EFIARCH=ia32 Nits: please add space around = > + > +LDSCRIPT_EFI := $(srctree)/$(CPUDIR)/efi/elf_$(EFIARCH)_efi.lds > +OBJCOPYFLAGS_EFI += --target=efi-app-$(EFIARCH) > + > +ifeq ($(CONFIG_EFI_APP),y) > + > +PLATFORM_CPPFLAGS += $(CFLAGS_EFI) > +PLATFORM_LDFLAGS += -m elf_i386 Nits: '-m elf_i386' is always on for both cases, so we can remove '-m elf_i386' here and just leave it in the original place above > +LDFLAGS_FINAL += -znocombreloc -shared > +LDSCRIPT := $(LDSCRIPT_EFI) > + > +else > + > +PLATFORM_CPPFLAGS += $(CFLAGS_NON_EFI) > +PLATFORM_LDFLAGS += --emit-relocs -m elf_i386 > +LDFLAGS_FINAL += --gc-sections -pie > + > +endif > -- Regards, Bin _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

