[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