[ipxe-devel] gcc defaults to pie ?

Joakim Tjernlund Joakim.Tjernlund at infinera.com
Wed Jan 31 19:36:13 UTC 2018

On Thu, 1970-01-01 at 00:00 +0000, Michael Brown wrote:
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
> On 31/01/18 18:52, Joakim Tjernlund wrote:
> > > I can build bin/8086100e.rom but not bin-x86_64-pcbios/8086100e.rom:
> > >    cc1: error: code model kernel does not support PIC mode
> > > nor
> > >    bin-x86_64-pcbios/undionly.kpxe
> > >    bin-x86_64-pcbios/ipxe.lkrn
> > >    bin-x86_64-pcbios/ipxe.usb
> > 
> > adding this makes it build again:
> >   echo  "CFLAGS               += -fno-pie" >> ${S}/arch/x86/Makefile.pcbios || die
> >   echo  "LDFLAGS              += -no-pie" >> ${S}/arch/x86/Makefile.pcbios || die
> > 
> > Is that the correct place? There is an arch/x86_64/Makefile.pcbios file too
> I'm trying to figure out where the PIE check can go.  Moving it to
> Makefile.housekeeping (or to arch/x86/Makefile) breaks the
> bin-x86_64-efi build due to some unknown relocation types.

EFI needs pie so it break if no-pie is applied everywhere.

> You can test any proposed patch: it needs to be able to pass
>    make everything

Testing now and I get these two(That I don't think is du to my "patch"):
make everything -k

arch/i386/Makefile:101: arch/i386/Makefile.: No such file or directory
make[1]: *** No rule to make target 'arch/i386/Makefile.'.
make[1]: Failed to remake makefile 'arch/i386/Makefile.'.
[FINISH] bin/ipxe.lkrn
  [GENISO] bin/ipxe.iso
cp: missing destination file operand after 'bin/iso.dir.q6NwTW'
Try 'cp --help' for more information.
mkisofs: Uh oh, I cant find the boot image 'isolinux.bin' inside the target tree.
  [VERSION] bin/version.ipxe.hd.o

But I am a bit confused as what to build w.r.t arch: x86 or x86_64 ?
What would be the most compatible for a network containing only x86_64 computers(servers, laptops and
desktops) and qemu/kvm VMs ?
Will x86_64 be what works best or is x86 a better choice?


More information about the ipxe-devel mailing list