<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch/i386/scripts/efi.lds, 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/scripts/efi.lds?h=openslx</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/i386/scripts/efi.lds?h=openslx'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2009-01-07T22:59:05+00:00</updated>
<entry>
<title>[efi] Use elf2efi utility in place of efilink</title>
<updated>2009-01-07T22:59:05+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-01-07T02:05:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=314779eb369db746be5373b398111d5b746d67de'/>
<id>urn:sha1:314779eb369db746be5373b398111d5b746d67de</id>
<content type='text'>
elf2efi converts a suitable ELF executable (containing relocation
information, and with appropriate virtual addresses) into an EFI
executable.  It is less tightly coupled with the gPXE build process
and, in particular, does not require the use of a hand-crafted PE
image header in efiprefix.S.

elf2efi correctly handles .bss sections, which significantly reduces
the size of the gPXE EFI executable.
</content>
</entry>
<entry>
<title>[build] Discard junk sections created by newer gcc versions</title>
<updated>2008-11-18T03:46:27+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-11-18T03:46:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=c661945e82b939a942b23a40d9d23b15ec771503'/>
<id>urn:sha1:c661945e82b939a942b23a40d9d23b15ec771503</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[build] Use ".bss.*" names for uninitialised-data sections</title>
<updated>2008-10-17T02:12:11+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-10-17T02:12:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=7982e79d3cc29489cfb3dbbf574ba23e9d5500c7'/>
<id>urn:sha1:7982e79d3cc29489cfb3dbbf574ba23e9d5500c7</id>
<content type='text'>
The section name seems to have significance for some versions of
binutils.

There is no way to instruct gcc that sections such as .bss16 contain
uninitialised data; it will emit them with contents explicitly set to
zero.  We therefore have to rely on the linker script to force these
sections to become uninitialised-data sections.  We do this by marking
them as NOLOAD; this seems to be the closest semantic equivalent in the
linker script language.

However, this gets ignored by some versions of ld (including 2.17 as
shipped with Debian Etch), which mark the resulting sections with
(CONTENTS,ALLOC,LOAD,DATA).  Combined with the fact that this version of
ld seems to ignore the specified LMA for these sections, this means that
they end up overlapping other sections, and so parts of .prefix (for
example) get obliterated by .data16's bss section.

Rename the .bss sections from .section_bss to .bss.section; this seems to
cause these versions of ld to treat them as uninitialised data.
</content>
</entry>
<entry>
<title>[efi] Fix linker script for ld 2.17.50.0.9</title>
<updated>2008-10-13T09:41:38+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-10-13T09:41:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=64e5ca0582a54078e789ae36f5b62e0034503323'/>
<id>urn:sha1:64e5ca0582a54078e789ae36f5b62e0034503323</id>
<content type='text'>
Some versions of ld choke on the "AT ( _xxx_lma )" in efi.lds with an
error saying "nonconstant expression for load base".  Since these were
only explicitly setting the LMA to the address that it would have had
anyway, they can be safely omitted.
</content>
</entry>
<entry>
<title>[efi] Add EFI image format and basic runtime environment</title>
<updated>2008-10-13T09:24:14+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-10-12T00:55:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=81d92c6d34f9ce68f7c2bbd5b92352b3a631bcd0'/>
<id>urn:sha1:81d92c6d34f9ce68f7c2bbd5b92352b3a631bcd0</id>
<content type='text'>
We have EFI APIs for CPU I/O, PCI I/O, timers, console I/O, user
access and user memory allocation.

EFI executables are created using the vanilla GNU toolchain, with the
EXE header handcrafted in assembly and relocations generated by a
custom efilink utility.
</content>
</entry>
</feed>
