<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch/x86/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/x86/scripts/efi.lds?h=openslx</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/x86/scripts/efi.lds?h=openslx'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2016-03-12T21:47:13+00:00</updated>
<entry>
<title>[efi] Centralise architecture-independent EFI Makefile and linker script</title>
<updated>2016-03-12T21:47:13+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-03-12T21:47:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=a8037ee131a9501ddfc89ce157e3718b1a3b86a7'/>
<id>urn:sha1:a8037ee131a9501ddfc89ce157e3718b1a3b86a7</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Fix %.licence build target</title>
<updated>2013-07-15T22:50:54+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2013-07-15T22:08:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=ca319873bf43d5d955cc3d8770b5b2415798907d'/>
<id>urn:sha1:ca319873bf43d5d955cc3d8770b5b2415798907d</id>
<content type='text'>
Our use of --gc-sections causes the linker to discard the symbols
defined by FILE_LICENCE(), meaning that the resulting licence
determination is incomplete.

We must use the KEEP() directive in the linker script to force the
linker to not discard the licence symbols.  Using KEEP(*(COMMON))
would be undesirable, since there are some symbols in COMMON which we
may wish to discard.

Fix by placing symbols defined by PROVIDE_SYMBOL() (which is used by
FILE_LICENCE()) into a special ".provided" section, which we then mark
with KEEP().  All such symbols are zero-length, so there is no cost in
terms of the final binary size.

Since the symbols are no longer in COMMON, the linker will reject
symbols with the same name coming from multiple objects.  We therefore
append the object name to the licence symbol, to ensure that it is
unique.

Reported-by: Marin Hannache &lt;git@mareo.fr&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Eliminate unused sections at link-time</title>
<updated>2011-02-22T21:02:00+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2011-02-22T19:36:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=623469de5d307ee6d762ad30988ffbfbc53741b6'/>
<id>urn:sha1:623469de5d307ee6d762ad30988ffbfbc53741b6</id>
<content type='text'>
Use -ffunction-sections, -fdata-sections, and --gc-sections to
automatically prune out any unreferenced sections.

This saves around 744 bytes (uncompressed) from the rtl8139.rom build.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[libc] Enable automated extraction of error usage reports</title>
<updated>2010-05-31T02:11:57+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2010-05-30T14:29:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=6c0e8c14be9546b49c097f5e6e8307bda3e7f5ac'/>
<id>urn:sha1:6c0e8c14be9546b49c097f5e6e8307bda3e7f5ac</id>
<content type='text'>
Add preprocessor magic to the error definitions to enable every error
usage to be tracked.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Fix .efi and .efidrv linking</title>
<updated>2010-05-27T09:38:12+00:00</updated>
<author>
<name>Piotr Jaroszyński</name>
</author>
<published>2010-03-30T16:18:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=c68839d4d69742ac21c430aca8a9a4de81dd6ca5'/>
<id>urn:sha1:c68839d4d69742ac21c430aca8a9a4de81dd6ca5</id>
<content type='text'>
The linker chooses to look for _start first and always picks
efidrvprefix.o to satisfy it (probably because it's earlier in the
archive) which causes a multiple definition error when the linker
later has to pick efiprefix.o for other symbols.

Fix by using EFI-specific TGT_LD_FLAGS with an explicit entry point.

Signed-off-by: Piotr Jaroszyński &lt;p.jaroszynski@gmail.com&gt;
Signed-off-by: Joshua Oreman &lt;oremanj@rwcr.net&gt;
Modified-by: Michael Brown &lt;mcb30@ipxe.org&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[linker] Expand and correct symbol requirement macros</title>
<updated>2009-11-21T01:27:25+00:00</updated>
<author>
<name>Joshua Oreman</name>
</author>
<published>2009-08-02T21:01:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=572e61754adca6739b17e8604da964ce2aa98eef'/>
<id>urn:sha1:572e61754adca6739b17e8604da964ce2aa98eef</id>
<content type='text'>
REQUIRE_SYMBOL() formerly used a formulation of symbol requirement
that would allow a link to succeed despite lacking a required symbol,
because it did not introduce any relocations. Fix by renaming it to
REQUEST_SYMBOL() (since the soft-requirement behavior can be useful)
and add a REQUIRE_SYMBOL() that truly requires.

Add EXPORT_SYMBOL() and IMPORT_SYMBOL() for REQUEST_SYMBOL()-like
behavior that allows one to make use of the symbol, by combining a
weak external on the symbol itself with a REQUEST_SYMBOL() of a second
symbol.

Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[efi] Allow for .efidrv images as well as .efi images</title>
<updated>2009-01-07T23:43:26+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-01-07T23:43:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=765efac771c07c38c27d971602d8c8c2becf0821'/>
<id>urn:sha1:765efac771c07c38c27d971602d8c8c2becf0821</id>
<content type='text'>
Merge in the changes that allow for building EFI driver images (that
can be loaded using the EFI shell's "load" command) as well as EFI
applications.
</content>
</entry>
<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>
</feed>
