On 08/06/2018 07:11 PM, Andy Shevchenko wrote: > On Mon, 2018-08-06 at 18:56 +0200, Heinrich Schuchardt wrote: >> On 08/06/2018 06:00 PM, Andy Shevchenko wrote: > >>> Fix all these by disabling PIE on Makefile level. > >> With the patch building with gcc-8.1 works on i386. > > Does it mean you are actually run it and it works? > >> But the interesting >> question is whether the EFI subsystem will be able to relocate the >> runtime code when the EFI service SetVirtualAddressMap() is called. > > EFI code should have different CFLAGS I suppose.
This really depends on the architecture: On RISC-V EFI specific flags are not defined. On ARM CFLAGS_NON_EFI := -fno-pic -ffixed-r9 -ffunction-sections -fdata-sections CFLAGS_EFI := -fpic -fshort-wchar On x86 ifeq ($(IS_32BIT),y) CFLAGS_NON_EFI := -mregparm=3 endif CFLAGS_EFI := -fpic -fshort-wchar Do you know how -fpic and -fno-PIE work together when both are passed to gcc? CFLAGS_EFI is only used to compile standalone EFI executables like helloworld.efi not the EFI runtime. See lib/efi_loader/Makefile. Best regards Hienrich > >> Did you boot Linux with the patch via bootefi and call any of the EFI >> runtime services from Linux? > > Nope, I have no platform with UEFI to test. > >> As you are changing this for all architectures this needs to be tested >> on all (ARM, RISC-V, and x86) architectures supporting the EFI >> subsystem. > > Agree. Unfortunately I have almost none of them to play with. > I leave this to others who able to confirm the patch works. > > My understanding we need this anyway and if there are some problems, we > need to fix them on individual basis. > _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

