Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of git.funtoo.org:funtoo-overlay
- Loading branch information
Showing
6 changed files
with
554 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
DIST e6427b7ee117ea4af0812bb13b57999bccd8e058.tar.bz2 2198003 SHA256 008a80b80a8b19ef6963581b5599880d51171aad13f96690589cbc0fa895eaf3 SHA512 8456ef3c27f3f4de827ae4c744cbe2eaacb96cf703a5525f490c53ac26ed597635acb744a50607d733d7bd5014dcbbb333f74da8fe68fddca19e11d047377d73 WHIRLPOOL 814cda89fa52afec2b1a8811407ce3b361c1d7548e40255fdffda2bd0fbb8485352575f19b6935de50582a97c31758cd9bcc2194cb2b222b89313868a032a828 | ||
DIST ipxe-1.0.0_p20130225-09c5109.tar.bz2 2208235 SHA256 58fd3470c4807c7206550badbc709c9a48af201b4bfa629379143b21426189fa SHA512 74b72a336ee4874ee134fe2bfa8540a864ddd169e09a7d6dfa688624f674962ea33f01bb287b90fda0cdfe5bf4d38e49362934c22a2da932dd3e4c702ebd56dc WHIRLPOOL fad62b8d15bb67ab194954671ae9e1cfa0df06c2d237b9312994ecaf440f0bb22b72ba28824ee8a13c19fe90f8bd3b2847a80d93da5f10368b096cdfa8230a06 | ||
DIST ipxe-1.0.0_p20130624-936134e.tar.bz2 2230605 SHA256 bbf9435515a481ab4e5bfc4e49d5eeb005b60169bad3db269e31228fafbb7bbc SHA512 8a1332794acd0db7bf485bfc2c1c52b4e7e5545e5cc1e4e39bbe6f190a684682613b063cc5c31c94d7715fa07555a851f04abb45e604325c0bb4ab73526df0c9 WHIRLPOOL 1338fc4f8bf69a98713d72ad0a8749bc53e42d99c8088e5536b78001d0f738dcc8aaa537cce7dcb5f4f66818880b936c964fc6bed8ff00e674cf400da9521f5b |
196 changes: 196 additions & 0 deletions
196
sys-firmware/ipxe/files/ipxe-1.0.0_p20130624-remove-ebp-from-clobber.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,196 @@ | ||
diff -uNr ipxe-936134e/src/arch/i386/drivers/net/undiload.c ipxe-936134e-funtoo/src/arch/i386/drivers/net/undiload.c | ||
--- ipxe-936134e/src/arch/i386/drivers/net/undiload.c 2013-06-24 17:14:36.000000000 +0200 | ||
+++ ipxe-936134e-funtoo/src/arch/i386/drivers/net/undiload.c 2013-10-10 17:12:58.931054861 +0200 | ||
@@ -103,13 +103,16 @@ | ||
|
||
/* Call loader */ | ||
undi_loader_entry = undirom->loader_entry; | ||
- __asm__ __volatile__ ( REAL_CODE ( "pushw %%ds\n\t" | ||
+ __asm__ __volatile__ ( REAL_CODE ( "pushl %%ebp\n\t" /* gcc bug */ | ||
+ "pushw %%ds\n\t" | ||
"pushw %%ax\n\t" | ||
"lcall *undi_loader_entry\n\t" | ||
- "addw $4, %%sp\n\t" ) | ||
+ "addw $4, %%sp\n\t" | ||
+ "popl %%ebp\n\t" /* discard */ | ||
+ "popl %%ebp\n\t" /* gcc bug */ ) | ||
: "=a" ( exit ) | ||
: "a" ( __from_data16 ( &undi_loader ) ) | ||
- : "ebx", "ecx", "edx", "esi", "edi", "ebp" ); | ||
+ : "ebx", "ecx", "edx", "esi", "edi" ); | ||
|
||
if ( exit != PXENV_EXIT_SUCCESS ) { | ||
/* Clear entry point */ | ||
diff -uNr ipxe-936134e/src/arch/i386/firmware/pcbios/bios_console.c ipxe-936134e-funtoo/src/arch/i386/firmware/pcbios/bios_console.c | ||
--- ipxe-936134e/src/arch/i386/firmware/pcbios/bios_console.c 2013-06-24 17:14:36.000000000 +0200 | ||
+++ ipxe-936134e-funtoo/src/arch/i386/firmware/pcbios/bios_console.c 2013-10-10 17:12:58.931054861 +0200 | ||
@@ -167,7 +167,8 @@ | ||
return; | ||
|
||
/* Print character with attribute */ | ||
- __asm__ __volatile__ ( REAL_CODE ( "sti\n\t" | ||
+ __asm__ __volatile__ ( REAL_CODE ( "pushl %%ebp\n\t" /* gcc bug */ | ||
+ "sti\n\t" | ||
/* Skip non-printable characters */ | ||
"cmpb $0x20, %%al\n\t" | ||
"jb 1f\n\t" | ||
@@ -188,11 +189,13 @@ | ||
"xorw %%bx, %%bx\n\t" | ||
"movb $0x0e, %%ah\n\t" | ||
"int $0x10\n\t" | ||
- "cli\n\t" ) | ||
+ "cli\n\t" | ||
+ "popl %%ebp\n\t" /* discard */ | ||
+ "popl %%ebp\n\t" /* gcc bug */ ) | ||
: "=a" ( discard_a ), "=b" ( discard_b ), | ||
"=c" ( discard_c ) | ||
: "a" ( character ), "b" ( bios_attr ) | ||
- : "ebp" ); | ||
+ : ); | ||
} | ||
|
||
/** | ||
diff -uNr ipxe-936134e/src/arch/i386/image/bootsector.c ipxe-936134e-funtoo/src/arch/i386/image/bootsector.c | ||
--- ipxe-936134e/src/arch/i386/image/bootsector.c 2013-06-24 17:14:36.000000000 +0200 | ||
+++ ipxe-936134e-funtoo/src/arch/i386/image/bootsector.c 2013-10-10 17:15:33.471801049 +0200 | ||
@@ -74,7 +74,8 @@ | ||
* real-mode stack, so we preserve everything we need in | ||
* static storage. | ||
*/ | ||
- __asm__ __volatile__ ( REAL_CODE ( /* Save return address off-stack */ | ||
+ __asm__ __volatile__ ( REAL_CODE ( "pushl %%ebp\n\t" /* gcc bug */ | ||
+ /* Save return address off-stack */ | ||
"popw %%cs:saved_retaddr\n\t" | ||
/* Save stack pointer */ | ||
"movw %%ss, %%ax\n\t" | ||
@@ -99,22 +100,27 @@ | ||
"sti\n\t" | ||
"lret\n\t" | ||
/* Preserved variables */ | ||
+ "\nsaved_ebp: .long 0\n\t" | ||
"\nsaved_ss: .word 0\n\t" | ||
"\nsaved_sp: .word 0\n\t" | ||
"\nsaved_retaddr: .word 0\n\t" | ||
/* Boot failure return point */ | ||
"\nbootsector_exec_fail:\n\t" | ||
+ /* Restore frame pointer (gcc bug) */ | ||
+ "\nmovl %%cs:saved_ebp, %%ebp\n\t" | ||
/* Restore stack pointer */ | ||
"movw %%cs:saved_ss, %%ax\n\t" | ||
"movw %%ax, %%ss\n\t" | ||
"movw %%cs:saved_sp, %%sp\n\t" | ||
/* Return via saved address */ | ||
- "jmp *%%cs:saved_retaddr\n\t" ) | ||
+ "jmp *%%cs:saved_retaddr\n\t" | ||
+ "popl %%ebp\n\t" /* discard */ | ||
+ "popl %%ebp\n\t" /* gcc bug */ ) | ||
: "=b" ( discard_b ), "=D" ( discard_D ), | ||
"=d" ( discard_d ) | ||
: "b" ( segment ), "D" ( offset ), | ||
"d" ( drive ) | ||
- : "eax", "ecx", "esi", "ebp" ); | ||
+ : "eax", "ecx", "esi" ); | ||
|
||
DBG ( "Booted disk returned via INT 18 or 19\n" ); | ||
|
||
diff -uNr ipxe-936134e/src/arch/i386/image/elfboot.c ipxe-936134e-funtoo/src/arch/i386/image/elfboot.c | ||
--- ipxe-936134e/src/arch/i386/image/elfboot.c 2013-06-24 17:14:36.000000000 +0200 | ||
+++ ipxe-936134e-funtoo/src/arch/i386/image/elfboot.c 2013-10-10 17:12:58.931054861 +0200 | ||
@@ -60,9 +60,12 @@ | ||
|
||
/* Jump to OS with flat physical addressing */ | ||
DBGC ( image, "ELF %p starting execution at %lx\n", image, entry ); | ||
- __asm__ __volatile__ ( PHYS_CODE ( "call *%%edi\n\t" ) | ||
+ __asm__ __volatile__ ( PHYS_CODE ( "pushl %%ebp\n\t" /* gcc bug */ | ||
+ "call *%%edi\n\t" | ||
+ "popl %%ebp\n\t" /* discard */ | ||
+ "popl %%ebp\n\t" /* gcc bug */) | ||
: : "D" ( entry ) | ||
- : "eax", "ebx", "ecx", "edx", "esi", "ebp", | ||
+ : "eax", "ebx", "ecx", "edx", "esi", | ||
"memory" ); | ||
|
||
DBGC ( image, "ELF %p returned\n", image ); | ||
diff -uNr ipxe-936134e/src/arch/i386/image/nbi.c ipxe-936134e-funtoo/src/arch/i386/image/nbi.c | ||
--- ipxe-936134e/src/arch/i386/image/nbi.c 2013-06-24 17:14:36.000000000 +0200 | ||
+++ ipxe-936134e-funtoo/src/arch/i386/image/nbi.c 2013-10-10 17:12:58.931054861 +0200 | ||
@@ -248,7 +248,8 @@ | ||
imgheader->execaddr.segoff.offset ); | ||
|
||
__asm__ __volatile__ ( | ||
- REAL_CODE ( "pushw %%ds\n\t" /* far pointer to bootp data */ | ||
+ REAL_CODE ( "pushl %%ebp\n\t" /* gcc bug */ | ||
+ "pushw %%ds\n\t" /* far pointer to bootp data */ | ||
"pushw %%bx\n\t" | ||
"pushl %%esi\n\t" /* location */ | ||
"pushw %%cs\n\t" /* lcall execaddr */ | ||
@@ -258,13 +259,15 @@ | ||
"pushl %%edi\n\t" | ||
"lret\n\t" | ||
"\n2:\n\t" | ||
- "addw $8,%%sp\n\t" /* clean up stack */ ) | ||
+ "addw $8,%%sp\n\t" /* clean up stack */ | ||
+ "popl %%ebp\n\t" /* discard */ | ||
+ "popl %%ebp\n\t" /* gcc bug */ ) | ||
: "=a" ( rc ), "=D" ( discard_D ), "=S" ( discard_S ), | ||
"=b" ( discard_b ) | ||
: "D" ( imgheader->execaddr.segoff ), | ||
"S" ( imgheader->location ), | ||
"b" ( __from_data16 ( basemem_packet ) ) | ||
- : "ecx", "edx", "ebp" ); | ||
+ : "ecx", "edx" ); | ||
|
||
return rc; | ||
} | ||
@@ -288,11 +291,14 @@ | ||
|
||
/* Jump to OS with flat physical addressing */ | ||
__asm__ __volatile__ ( | ||
- PHYS_CODE ( "pushl %%ebx\n\t" /* bootp data */ | ||
+ PHYS_CODE ( "pushl %%ebp\n\t" /* gcc bug */ | ||
+ "pushl %%ebx\n\t" /* bootp data */ | ||
"pushl %%esi\n\t" /* imgheader */ | ||
"pushl %%eax\n\t" /* loaderinfo */ | ||
"call *%%edi\n\t" | ||
- "addl $12, %%esp\n\t" /* clean up stack */ ) | ||
+ "addl $12, %%esp\n\t" /* clean up stack */ | ||
+ "popl %%ebp\n\t" /* discard */ | ||
+ "popl %%ebp\n\t" /* gcc bug */ ) | ||
: "=a" ( rc ), "=D" ( discard_D ), "=S" ( discard_S ), | ||
"=b" ( discard_b ) | ||
: "D" ( imgheader->execaddr.linear ), | ||
@@ -300,7 +306,7 @@ | ||
imgheader->location.offset ), | ||
"b" ( virt_to_phys ( basemem_packet ) ), | ||
"a" ( virt_to_phys ( &loaderinfo ) ) | ||
- : "ecx", "edx", "ebp", "memory" ); | ||
+ : "ecx", "edx", "memory" ); | ||
|
||
return rc; | ||
} | ||
diff -uNr ipxe-936134e/src/arch/i386/interface/pxeparent/pxeparent.c ipxe-936134e-funtoo/src/arch/i386/interface/pxeparent/pxeparent.c | ||
--- ipxe-936134e/src/arch/i386/interface/pxeparent/pxeparent.c 2013-06-24 17:14:36.000000000 +0200 | ||
+++ ipxe-936134e-funtoo/src/arch/i386/interface/pxeparent/pxeparent.c 2013-10-10 17:12:58.931054861 +0200 | ||
@@ -143,16 +143,19 @@ | ||
/* Call real-mode entry point. This calling convention will | ||
* work with both the !PXE and the PXENV+ entry points. | ||
*/ | ||
- __asm__ __volatile__ ( REAL_CODE ( "pushw %%es\n\t" | ||
+ __asm__ __volatile__ ( REAL_CODE ( "pushl %%ebp\n\t" /* gcc bug */ | ||
+ "pushw %%es\n\t" | ||
"pushw %%di\n\t" | ||
"pushw %%bx\n\t" | ||
"lcall *pxeparent_entry_point\n\t" | ||
- "addw $6, %%sp\n\t" ) | ||
+ "addw $6, %%sp\n\t" | ||
+ "popl %%ebp\n\t" | ||
+ "popl %%ebp\n\t" /* gcc bug */ ) | ||
: "=a" ( exit ), "=b" ( discard_b ), | ||
"=D" ( discard_D ) | ||
: "b" ( function ), | ||
"D" ( __from_data16 ( &pxeparent_params ) ) | ||
- : "ecx", "edx", "esi", "ebp" ); | ||
+ : "ecx", "edx", "esi" ); | ||
|
||
/* Determine return status code based on PXENV_EXIT and | ||
* PXENV_STATUS |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
# Copyright 1999-2013 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/ipxe/ipxe-1.0.0_p20120905.ebuild,v 1.6 2013/06/27 22:10:51 cardoe Exp $ | ||
|
||
EAPI=4 | ||
|
||
GIT_REV="e6427b7ee117ea4af0812bb13b57999bccd8e058" | ||
GIT_SHORT="e6427b7" | ||
|
||
DESCRIPTION="Open source network boot (PXE) firmware" | ||
HOMEPAGE="http://ipxe.org" | ||
SRC_URI="https://git.ipxe.org/ipxe.git/snapshot/${GIT_REV}.tar.bz2" | ||
|
||
LICENSE="GPL-2" | ||
SLOT="0" | ||
KEYWORDS="amd64 x86" | ||
IUSE="iso +qemu undi usb vmware" | ||
|
||
DEPEND="sys-devel/make | ||
dev-lang/perl | ||
sys-libs/zlib | ||
iso? ( | ||
sys-boot/syslinux | ||
virtual/cdrtools | ||
)" | ||
RDEPEND="" | ||
|
||
S="${WORKDIR}/ipxe-${GIT_SHORT}/src" | ||
|
||
src_configure() { | ||
if use vmware; then | ||
sed -i config/sideband.h \ | ||
-e 's|//#define[[:space:]]VMWARE_SETTINGS|#define VMWARE_SETTINGS|' | ||
sed -i config/console.h \ | ||
-e 's|//#define[[:space:]]CONSOLE_VMWARE|#define CONSOLE_VMWARE|' | ||
fi | ||
} | ||
|
||
src_compile() { | ||
export NO_WERROR=1 | ||
if use qemu; then | ||
emake bin/808610de.rom # pxe-e1000.rom | ||
emake bin/80861209.rom # pxe-eepro100.rom | ||
emake bin/10500940.rom # pxe-ne2k_pci.rom | ||
emake bin/10222000.rom # pxe-pcnet.rom | ||
emake bin/10ec8139.rom # pxe-rtl8139.rom | ||
emake bin/1af41000.rom # pxe-virtio.rom | ||
fi | ||
|
||
if use vmware; then | ||
emake bin/8086100f.mrom # e1000 | ||
emake bin/808610d3.mrom # e1000e | ||
emake bin/10222000.mrom # vlance | ||
emake bin/15ad07b0.rom # vmxnet3 | ||
fi | ||
|
||
use iso && emake bin/ipxe.iso | ||
use undi && emake bin/undionly.kpxe | ||
use usb && emake bin/ipxe.usb | ||
} | ||
|
||
src_install() { | ||
insinto /usr/share/ipxe/ | ||
|
||
if use qemu || use vmware; then | ||
doins bin/*.rom | ||
fi | ||
use vmware && doins bin/*.mrom | ||
use iso && doins bin/*.iso | ||
use undi && doins bin/*.kpxe | ||
use usb && doins bin/*.usb | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
# Copyright 1999-2013 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/ipxe/ipxe-1.0.0_p20130225.ebuild,v 1.5 2013/07/04 12:25:59 ago Exp $ | ||
|
||
EAPI=5 | ||
|
||
GIT_REV="09c5109b8585178172c7608de8d52e9d9af0b680" | ||
GIT_SHORT="09c5109" | ||
|
||
DESCRIPTION="Open source network boot (PXE) firmware" | ||
HOMEPAGE="http://ipxe.org" | ||
SRC_URI="https://git.ipxe.org/ipxe.git/snapshot/${GIT_REV}.tar.bz2 -> ${P}-${GIT_SHORT}.tar.bz2" | ||
|
||
LICENSE="GPL-2" | ||
SLOT="0" | ||
KEYWORDS="amd64 x86" | ||
IUSE="iso +qemu undi usb vmware" | ||
|
||
DEPEND="sys-devel/make | ||
dev-lang/perl | ||
sys-libs/zlib | ||
iso? ( | ||
sys-boot/syslinux | ||
virtual/cdrtools | ||
)" | ||
RDEPEND="" | ||
|
||
S="${WORKDIR}/ipxe-${GIT_SHORT}/src" | ||
|
||
src_prepare() { | ||
cat <<-EOF > "${S}"/config/local/general.h | ||
#undef BANNER_TIMEOUT | ||
#define BANNER_TIMEOUT 0 | ||
EOF | ||
} | ||
|
||
src_configure() { | ||
if use vmware; then | ||
sed -i config/sideband.h \ | ||
-e 's|//#define[[:space:]]VMWARE_SETTINGS|#define VMWARE_SETTINGS|' | ||
sed -i config/console.h \ | ||
-e 's|//#define[[:space:]]CONSOLE_VMWARE|#define CONSOLE_VMWARE|' | ||
fi | ||
} | ||
|
||
src_compile() { | ||
export NO_WERROR=1 | ||
if use qemu; then | ||
emake bin/808610de.rom # pxe-e1000.rom (old) | ||
emake bin/8086100e.rom # pxe-e1000.rom | ||
emake bin/80861209.rom # pxe-eepro100.rom | ||
emake bin/10500940.rom # pxe-ne2k_pci.rom | ||
emake bin/10222000.rom # pxe-pcnet.rom | ||
emake bin/10ec8139.rom # pxe-rtl8139.rom | ||
emake bin/1af41000.rom # pxe-virtio.rom | ||
fi | ||
|
||
if use vmware; then | ||
emake bin/8086100f.mrom # e1000 | ||
emake bin/808610d3.mrom # e1000e | ||
emake bin/10222000.mrom # vlance | ||
emake bin/15ad07b0.rom # vmxnet3 | ||
fi | ||
|
||
use iso && emake bin/ipxe.iso | ||
use undi && emake bin/undionly.kpxe | ||
use usb && emake bin/ipxe.usb | ||
} | ||
|
||
src_install() { | ||
insinto /usr/share/ipxe/ | ||
|
||
if use qemu || use vmware; then | ||
doins bin/*.rom | ||
fi | ||
use vmware && doins bin/*.mrom | ||
use iso && doins bin/*.iso | ||
use undi && doins bin/*.kpxe | ||
use usb && doins bin/*.usb | ||
} |
Oops, something went wrong.