<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch/i386/core, 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/core?h=openslx</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/i386/core?h=openslx'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2024-01-14T12:16:02+00:00</updated>
<entry>
<title>[build] Fix building with newer binutils</title>
<updated>2024-01-14T12:16:02+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2024-01-14T12:12:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=6ca597eee9f95b846a3c2dc1231e63cfc02272c1'/>
<id>urn:sha1:6ca597eee9f95b846a3c2dc1231e63cfc02272c1</id>
<content type='text'>
Newer versions of the GNU assembler (observed with binutils 2.41) will
complain about the ".arch i386" in files assembled with "as --64",
with the message "Error: 64bit mode not supported on 'i386'".

In files such as stack.S that contain no instructions to be assembled,
the ".arch i386" is redundant and may be removed entirely.

In the remaining files, fix by moving ".arch i386" below the relevant
".code16" or ".code32" directive, so that the assembler is no longer
expecting 64-bit instructions to be used by the time that the ".arch
i386" directive is encountered.

Reported-by: Ali Mustakim &lt;alim@forwardcomputers.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Inhibit linker warnings about an implied executable stack</title>
<updated>2023-06-30T10:05:37+00:00</updated>
<author>
<name>Geert Stappers</name>
</author>
<published>2023-06-30T09:59:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=e17568ad0642490143d0c6b154c874b9b9e285bf'/>
<id>urn:sha1:e17568ad0642490143d0c6b154c874b9b9e285bf</id>
<content type='text'>
Signed-off-by: Geert Stappers &lt;stappers@stappers.it&gt;
Modified-by: Michael Brown &lt;mcb30@ipxe.org&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[linux] Use host glibc system call wrappers</title>
<updated>2021-02-28T23:28:23+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2021-02-28T13:45:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=f309d7a7b78eec10621bc71f9401d5b9257f9f39'/>
<id>urn:sha1:f309d7a7b78eec10621bc71f9401d5b9257f9f39</id>
<content type='text'>
When building as a Linux userspace application, iPXE currently
implements its own system calls to the host kernel rather than relying
on the host's C library.  The output binary is statically linked and
has no external dependencies.

This matches the general philosophy of other platforms on which iPXE
runs, since there are no external libraries available on either BIOS
or UEFI bare metal.  However, it would be useful for the Linux
userspace application to be able to link against host libraries such
as libslirp.

Modify the build process to perform a two-stage link: first picking
out the requested objects in the usual way from blib.a but with
relocations left present, then linking again with a helper object to
create a standard hosted application.  The helper object provides the
standard main() entry point and wrappers for the Linux system calls
required by the iPXE Linux drivers and interface code.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[gdb] Add support for x86_64</title>
<updated>2016-03-22T08:44:32+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-03-20T12:00:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=311a5732c8baa7ceb4f23db51dcbb5015e2ef965'/>
<id>urn:sha1:311a5732c8baa7ceb4f23db51dcbb5015e2ef965</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] Allow relocate.c to be compiled for x86_64</title>
<updated>2016-02-16T19:32:32+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-02-16T16:13:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=44e05b0ffc2099ad51bcb9ff8c444d6a032c30da'/>
<id>urn:sha1:44e05b0ffc2099ad51bcb9ff8c444d6a032c30da</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[pxe] Clarify comments regarding shrinking of cached DHCP packet</title>
<updated>2016-02-11T19:14:00+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-02-11T19:14:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=6de378aae80d614c6bd2ee69b09f1fa7facb3bd6'/>
<id>urn:sha1:6de378aae80d614c6bd2ee69b09f1fa7facb3bd6</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[libc] Fix typo in longjmp()</title>
<updated>2015-04-07T05:40:34+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-04-07T05:40:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=00ff3d8bb3af0831ced99e8b6f226291ca236883'/>
<id>urn:sha1:00ff3d8bb3af0831ced99e8b6f226291ca236883</id>
<content type='text'>
Commit 8ab4b00 ("[libc] Rewrite setjmp() and longjmp()") introduced a
regression in which the saved values of %ebx, %esi, and %edi were all
accidentally restored into %esp.  The result is that the second and
subsequent returns from setjmp() would effectively corrupt %ebx, %esi,
%edi, and the stack pointer %esp.

Use of setjmp() and longjmp() is generally discouraged: our only use
occurs as part of the implementation of PXENV_RESTART_TFTP, since the
PXE API effectively mandates its use here.  The call to setjmp()
occurs at the start of pxe_start_nbp(), where there are almost
certainly no values held in %ebx, %esi, or %edi.  The corruption of
these registers therefore had no visible effect on program execution.
The corruption of %esp would have been visible on return from
pxe_start_nbp(), but there are no known PXE NBPs which first call
PXENV_RESTART_TFTP and subsequently attempt to return to the PXE base
code.  The effect on program execution was therefore similar to that
of moving the stack to a pseudo-random location in the 32-bit address
space; this will often allow execution to complete successfully since
there is a high chance that the pseudo-random location will be unused.
The regression therefore went undetected for around one month.

Fix by restoring the correct registers from the saved jmp_buf
structure.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[legal] Relicense files under GPL2_OR_LATER_OR_UBDL</title>
<updated>2015-03-05T11:40:13+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-03-05T11:36:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=1a4e94a8286d5080330053ee2ce1273f4393b124'/>
<id>urn:sha1:1a4e94a8286d5080330053ee2ce1273f4393b124</id>
<content type='text'>
Relicense files with kind permission from

    Stefan Hajnoczi &lt;stefanha@redhat.com&gt;

alongside the contributors who have already granted such relicensing
permission.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[libc] Rewrite setjmp() and longjmp()</title>
<updated>2015-03-02T16:35:37+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-03-02T15:21:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=8ab4b00442759ff9b61f5e813b73d29d91c4ae5f'/>
<id>urn:sha1:8ab4b00442759ff9b61f5e813b73d29d91c4ae5f</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
</feed>
