On Fri, 3 Jan 2020 at 15:17, Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote: > > On Thu, Jan 02, 2020 at 07:38:06PM +0100, Ard Biesheuvel wrote: > > On Thu, 2 Jan 2020 at 19:10, Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote: > > > > > > On Thu, Jan 02, 2020 at 06:48:52PM +0100, Ard Biesheuvel wrote: > > > > Currently, I am not managing to get the 64-bit compiler to emit any > > > > GOT based references for efi_is64, though, even without the attribute, > > > > so I am not sure what's going on there. > > > > > > With gcc 9, I do get R_X86_64_REX_GOTPCRELX relocations in libstub, > > > which are then eliminated by the linker -- if they weren't they would be > > > using addresses from the GOT. They turn into R_X86_64_PC32 with the > > > hidden visibility. > > > > Indeed. I was looking at eboot.o but that gets built with -fPIE not > > -fPIC [if available]. > > > > libstub objects indeed have the R_X86_64_REX_GOTPCRELX relocations, so > > I'll add the hidden visibility to the extern declaration of efi_is64 > > Is there any reason not to compile the stub with -fPIE btw? Also fPIE > seems to be there even in gcc 4.1.2, the check for availability can > probably be dropped. No we should switch to -fPIE for the stub as well