[ipxe-devel] gcc defaults to pie ?

Joakim Tjernlund Joakim.Tjernlund at infinera.com
Wed Jan 31 18:39:08 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 17:31, Joakim Tjernlund wrote:
> > Yes, building on x86_64 for x86_64, various targets, for example
> > make -j1 Q=''   CC=x86_64-pc-linux-gnu-gcc LD=x86_64-pc-linux-gnu-ld AS=x86_64-pc-linux-gnu-as AR=x86_64-pc-
> > linux-gnu-ar NM=x86_64-pc-linux-gnu-nm OBJCOPY=x86_64-pc-linux-gnu-objcopy RANLIB=x86_64-pc-linux-gnu-ranlib
> > OBJDUMP=x86_64-pc-linux-gnu-objdump HOST_CC=x86_64-pc-linux-gnu-gcc ARCH=x86_64
> > EMBED=/var/lib/layman/transmode/profiles/gentoo64-common/IPXE.script bin/808610de.rom
> 
> OK.  Don't do that.  Try just
> 
>    make EMBED=....../IPXE.script bin/808610de.rom
> 
> and it should automatically use the correct toolchain and build a 32-bit
> binary (which _is_ what you want, since you've asked for
> bin/808610de.rom rather than bin-x86_64-pcbios/808610de.rom).

Here is some confusion on my part, I added ARCH=x86_64 and figured
that should do the right thing.
Using make \
	EMBED=${IPXE_EMBED} 

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

> In the unlikely even that you need to specify a custom toolchain (i.e.
> if your default "gcc" binary is not an x86 compiler), then you can
> specify an explicit toolchain prefix using CROSS:
> 
>    make CROSS=x86_64-pc-linux-gnu- \
>         EMBED=....../IPXE.script \
>         bin/808610de.rom
> 
> Michael


More information about the ipxe-devel mailing list