On 31/01/18 17:05, Joakim Tjernlund wrote:
On Thu, 1970-01-01 at 00:00 +0000, Michael Brown wrote:
There's logic within arch/i386/Makefile which is supposed to autodetect
compilers that do this and specify the appropriate combination of "do
not use PIE" options. We may need to expand this to handle whatever
Gentoo has done.
Does that apply to every file that is built? arch/i386/Makefile feel specific
for
i386.
It applies to every file built for the (standard) i386 BIOS build.
To hit an error relating to "code model kernel" I think you must be
trying to build for the x86_64-pcbios platform, since that's the only
place I can find that we use an explicit -mcmodel=kernel.
The x86_64-pcbios platform is fairly obscure: it produces code that runs
in 64-bit long mode but using 16-bit BIOS calls for console I/O and
providing 16-bit real-mode entry points for PXE NBPs. You only really
need this platform if you are going to end up with your PCI BARs
allocated above 4GB.
There's similar logic in Makefile.housekeeping to disable
-fstack-protector if needed.
I see that, should Makefile.housekeeping include -U_FORTIFY_SOURCE then?
I don't think so. The FORTIFY_SOURCE macro will be completely ignored
by all of the iPXE source files, and there are no external libraries
linked in anyway.
Also, ATM one cannot pass flags into ipxe due to:
CFLAGS :=
can it be changed to
CFLAGS ?=
You can use EXTRA_CFLAGS to insert additional flags. These will be
placed after CFLAGS, which makes it possible to use EXTRA_CFLAGS to
override Makefile-generated flags.
Michael
_______________________________________________
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel