[U-Boot] [PATCH v1] Makefile: Don't generate position independent code

Andy Shevchenko andriy.shevchenko at linux.intel.com
Mon Aug 6 18:55:37 UTC 2018


On Mon, 2018-08-06 at 19:32 +0200, Heinrich Schuchardt wrote:
> 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?

Can you confirm that binary you got is working for you?

> > >  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?

In all three cases where CONFIG_EFI is used there is no KBUILD_*FLAGS
are in use. The special flags are for EFI apps as it supposed to be.

> CFLAGS_EFI is only used to compile standalone EFI executables like
> helloworld.efi not the EFI runtime. See lib/efi_loader/Makefile.

Yes, I see no contradiction here.

-- 
Andy Shevchenko <andriy.shevchenko at linux.intel.com>
Intel Finland Oy


More information about the U-Boot mailing list