<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch/i386/Makefile, branch openslx</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/i386/Makefile?h=openslx</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/i386/Makefile?h=openslx'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2025-05-06T11:11:02+00:00</updated>
<entry>
<title>[build] Allow for 32-bit and 64-bit versions of util/zbin</title>
<updated>2025-05-06T11:11:02+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-05-06T11:07:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=98646b9f016d9bff91a5c89f402aeb452ee7f84b'/>
<id>urn:sha1:98646b9f016d9bff91a5c89f402aeb452ee7f84b</id>
<content type='text'>
Parsing ELF data is simpler if we don't have to build a single binary
to handle both 32-bit and 64-bit ELF formats.

Allow for separate 32-bit and 64-bit binaries built from util/zbin.c
(as is already done for util/elf2efi.c).

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Work around -fPIE patched versions of gcc on all architectures</title>
<updated>2021-02-04T02:53:25+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2021-02-04T02:05:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=e80299c56b86d907b1ea226d8214b22da39e0cb6'/>
<id>urn:sha1:e80299c56b86d907b1ea226d8214b22da39e0cb6</id>
<content type='text'>
Several distributions include versions of gcc that are patched to
create position-independent executables by default.  These have caused
multiple problems over the years: see e.g. commits fe61f6d ("[build]
Fix compilation when gcc is patched to default to -fPIE -Wl,-pie"),
5de1346 ("[build] Apply the "-fno-PIE -nopie" workaround only to i386
builds"), 7c395b0 ("[build] Use -no-pie on newer versions of gcc"),
and decee20 ("[build] Disable position-independent code for ARM64 EFI
builds").

The build system currently attempts to work around these mildly broken
patched versions of gcc for the i386 and arm64 architectures.  This
misses the relatively obscure bin-x86_64-pcbios build platform, which
turns out to also require the same workaround.

Attempt to preempt the next such required workaround by moving the
existing i386 version to apply to all platforms and all architectures,
unless -fpie has been requested explicitly by another Makefile (as is
done by arch/x86_64/Makefile.efi).

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Use -no-pie on newer versions of gcc</title>
<updated>2017-06-14T11:33:16+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-06-14T11:33:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=7c395b0e21806b946fe944a27fc273407f357ea1'/>
<id>urn:sha1:7c395b0e21806b946fe944a27fc273407f357ea1</id>
<content type='text'>
Some distributions patch gcc to generate position independent
executables by default.  We currently include a workaround to check
for this and to add -fno-PIE -nopie to CFLAGS if required.

Newer patched versions of gcc require -fno-PIE -no-pie instead.  Check
for both variants.

Reported-by: Nathan Rennie-Waldock &lt;nathan.renniewaldock@gmail.com&gt;
Originally-fixed-by: Markos Chandras &lt;mchandras@suse.de&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[comboot] Support COMBOOT in 64-bit builds</title>
<updated>2016-04-15T14:31:36+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-04-14T15:48:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=5e5450c2d04e6f976ea4cef5db50e136d4a06282'/>
<id>urn:sha1:5e5450c2d04e6f976ea4cef5db50e136d4a06282</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[test] Move i386-specific tests to arch/i386/tests</title>
<updated>2016-03-17T14:32:00+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-03-17T14:29:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=dbc9e591a5e958b0b849fc1669902f38043b0422'/>
<id>urn:sha1:dbc9e591a5e958b0b849fc1669902f38043b0422</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[bios] Add bin-x86_64-pcbios build platform</title>
<updated>2016-02-16T19:32:32+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-02-16T15:19:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=f468f12b1eca15e703aa2a79f1c82969c04c2322'/>
<id>urn:sha1:f468f12b1eca15e703aa2a79f1c82969c04c2322</id>
<content type='text'>
Move most arch/i386 files to arch/x86, and adjust the contents of the
Makefiles and the include/bits/*.h headers to reflect the new
locations.

This patch makes no substantive code changes, as can be seen using a
rename-aware diff (e.g. "git show -M5").

This patch does not make the pcbios platform functional for x86_64; it
merely allows it to compile without errors.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[bios] Move isolinux definitions to Makefile.pcbios</title>
<updated>2016-02-16T19:32:32+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-02-16T17:42:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=43515f9f1a3e3bfaa9171f4711ed0aafef1caf06'/>
<id>urn:sha1:43515f9f1a3e3bfaa9171f4711ed0aafef1caf06</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[vmware] Expose GuestRPC mechanism in 64-bit builds</title>
<updated>2016-01-05T17:20:36+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-01-05T17:20:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=dd485992dc213dc19876a331f3a044dcb2e7560b'/>
<id>urn:sha1:dd485992dc213dc19876a331f3a044dcb2e7560b</id>
<content type='text'>
The GuestRPC mechanism (used for VMWARE_SETTINGS and CONSOLE_VMWARE)
does not use any real-mode code and so can be exposed in both 64-bit
and 32-bit builds.

Reported-by: Matthew Helton &lt;mwhelton@gmail.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Search for ldlinux.c32 separately from isolinux.bin</title>
<updated>2015-09-01T20:04:44+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-09-01T19:58:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=f6e1da5cbf70a372f2b622c8021c98503cab8323'/>
<id>urn:sha1:f6e1da5cbf70a372f2b622c8021c98503cab8323</id>
<content type='text'>
Some distributions (observed with Ubuntu 15.04) place ldlinux.c32 in a
separate directory from isolinux.bin.  Search for these files
separately, and allow an alternative location of ldlinux.c32 to be
provided via LDLINUX_C32=... on the make command line.

Reported-by: Adrian Koshka &lt;adriankoshcha@teknik.io&gt;
Tested-by: Adrian Koshka &lt;adriankoshcha@teknik.io&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Apply the "-fno-PIE -nopie" workaround only to i386 builds</title>
<updated>2015-02-12T16:04:07+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-02-12T15:58:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=5de134662d3ca9245473a88849d4af770a55e994'/>
<id>urn:sha1:5de134662d3ca9245473a88849d4af770a55e994</id>
<content type='text'>
Hardened versions of gcc default to building position-independent
code, which breaks our i386 build.  Our build process therefore
detects such platforms and automatically adds "-fno-PIE -nopie" to the
gcc command line.

On x86_64, we choose to build position-independent code (in order to
reduce the final binary size and, in particular, the number of
relocations required for UEFI binaries).  The workaround therefore
breaks the build process for x86_64 binaries on such platforms.

Fix by moving the workaround to the i386-specific portion of the
Makefile.

Reported-by: Jan Kundrát &lt;jkt@kde.org&gt;
Debugged-by: Jan Kundrát &lt;jkt@kde.org&gt;
Debugged-by: Marin Hannache &lt;git@mareo.fr&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
</feed>
