<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch/i386, 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?h=openslx</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/i386?h=openslx'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2025-06-24T13:40:57+00:00</updated>
<entry>
<title>[build] Allow for the existence of small-data sections</title>
<updated>2025-06-24T13:40:57+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-06-24T13:40:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=8df3b96402d1d35a4de928aaaca9f08018932fa3'/>
<id>urn:sha1:8df3b96402d1d35a4de928aaaca9f08018932fa3</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<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>[profile] Standardise return type of profile_timestamp()</title>
<updated>2024-09-24T14:40:45+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2024-09-24T13:49:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=5f7c6bd95bd6089473db3ba4f033584f5de0ee8a'/>
<id>urn:sha1:5f7c6bd95bd6089473db3ba4f033584f5de0ee8a</id>
<content type='text'>
All consumers of profile_timestamp() currently treat the value as an
unsigned long.  Only the elapsed number of ticks is ever relevant: the
absolute value of the timestamp is not used.  Profiling is used to
measure short durations that are generally fewer than a million CPU
cycles, for which an unsigned long is easily large enough.

Standardise the return type of profile_timestamp() as unsigned long
across all CPU architectures.  This allows 32-bit architectures such
as i386 and riscv32 to omit all logic associated with retrieving the
upper 32 bits of the 64-bit hardware counter, which simplifies the
code and allows riscv32 and riscv64 to share the same implementation.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Remove redundant EFI_BOOT_FILE definitions</title>
<updated>2024-09-16T10:04:52+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2024-09-16T10:01:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9bb20686369abf5166161804c16554d491f53a62'/>
<id>urn:sha1:9bb20686369abf5166161804c16554d491f53a62</id>
<content type='text'>
As of commit 79c0173 ("[build] Create util/genfsimg for building
filesystem-based images"), the EFI boot file name for each CPU
architecture is defined within the genfsimg script itself, rather than
being passed in as a Makefile parameter.

Remove the now-redundant Makefile definitions for EFI_BOOT_FILE.

Reported-by: Christian I. Nilsson &lt;nikize@gmail.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[libc] Centralise architecture-independent portions of setjmp.h</title>
<updated>2024-09-12T14:01:04+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2024-09-12T13:17:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=5de5d4626e192f5d0e6c97e14ce03b92a43622b3'/>
<id>urn:sha1:5de5d4626e192f5d0e6c97e14ce03b92a43622b3</id>
<content type='text'>
The definitions of the setjmp() and longjmp() functions are common to
all architectures, with only the definition of the jump buffer
structure being architecture-specific.

Move the architecture-specific portions to bits/setjmp.h and provide a
common setjmp.h for the function definitions.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[gdb] Allow CPU architectures to omit support for GDB</title>
<updated>2024-09-05T12:00:39+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2024-09-04T12:29:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=2b82007571dbe02b85338dc9fa85251cd5d68028'/>
<id>urn:sha1:2b82007571dbe02b85338dc9fa85251cd5d68028</id>
<content type='text'>
Move the &lt;gdbmach.h&gt; file to &lt;bits/gdbmach.h&gt;, and provide a common
dummy implementation for all architectures that have not yet
implemented support for GDB.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<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>[build] Allow for per-architecture unprefixed constant operand modifier</title>
<updated>2023-02-05T23:55:14+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2023-02-05T23:55:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=c6901792f009cfd824707724b687e99edd4c8ecd'/>
<id>urn:sha1:c6901792f009cfd824707724b687e99edd4c8ecd</id>
<content type='text'>
Over the years, the undocumented operand modifier used to produce the
unprefixed constant values in __einfo_error() has varied from "%c0" to
"%a0" in commit 1a77466 ("[build] Fix use of inline assembly on GCC
4.8 ARM64 builds") and back to "%c0" in commit 3fb3ffc ("[build] Fix
use of inline assembly on GCC 8 ARM64 builds"), according to the
evolving demands of the toolchain.

LoongArch64 suffers from a similar issue: GCC 13 will allow either,
but the currently released GCC 12 allows only the "%a0" form.

Introduce a macro ASM_NO_PREFIX, defined in bits/compiler.h, to
abstract away this difference and allow different architectures to use
different operand modifiers.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[dhcp] Simplify platform-specific client architecture definitions</title>
<updated>2023-01-22T17:45:34+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2023-01-22T16:54:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=2061d658b3d199ec84976e6a573f68424369be69'/>
<id>urn:sha1:2061d658b3d199ec84976e6a573f68424369be69</id>
<content type='text'>
Move the platform-specific DHCP client architecture definitions to
header files of the form &lt;ipxe/$(PLATFORM)/dhcparch.h&gt;.  This
simplifies the directory structure and allows the otherwise unused
arch/$(ARCH)/include/$(PLATFORM) to be removed from the include
directory search path, which avoids the confusing situation in which a
header file may potentially be accessed through more than one path.

For Linux userspace binaries on any architecture, use the EFI values
for that architecture by delegating to the EFI header file.  This
avoids the need to explicitly select values for Linux userspace
binaries for each architecture.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
</feed>
