summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-boot')
-rw-r--r--sys-boot/gnu-efi/ChangeLog11
-rw-r--r--sys-boot/gnu-efi/Manifest6
-rw-r--r--sys-boot/gnu-efi/files/gnu-efi-3.0a-lds-redhat.patch42
-rw-r--r--sys-boot/gnu-efi/files/gnu-efi-3.0a-lds.patch55
-rw-r--r--sys-boot/gnu-efi/files/gnu-efi-3.0i-stack.diff13
-rw-r--r--sys-boot/gnu-efi/gnu-efi-3.0i-r1.ebuild48
6 files changed, 175 insertions, 0 deletions
diff --git a/sys-boot/gnu-efi/ChangeLog b/sys-boot/gnu-efi/ChangeLog
new file mode 100644
index 0000000..11acfad
--- /dev/null
+++ b/sys-boot/gnu-efi/ChangeLog
@@ -0,0 +1,11 @@
+# ChangeLog for sys-boot/gnu-efi
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+*gnu-efi-3.0i-r1 (25 Jul 2010)
+
+ 25 Jul 2010; Dane Smith (c1pher) <smithdanea@gmail.com>
+ +files/gnu-efi-3.0a-lds.patch, +files/gnu-efi-3.0a-lds-redhat.patch,
+ +gnu-efi-3.0i-r1.ebuild, +files/gnu-efi-3.0i-stack.diff:
+ Working on QA Warnings for gnu-efi-3.0i. Should be fixed.
+
diff --git a/sys-boot/gnu-efi/Manifest b/sys-boot/gnu-efi/Manifest
new file mode 100644
index 0000000..62386a3
--- /dev/null
+++ b/sys-boot/gnu-efi/Manifest
@@ -0,0 +1,6 @@
+AUX gnu-efi-3.0a-lds-redhat.patch 881 RMD160 86746f8664fcd068466112502fc89a9f228dcfd1 SHA1 1ee0363dc26736de1a301bfb4c94561cbb651515 SHA256 1e7d9bd7717d9315a96f237e4e4a3ea3b6ffb7e61c3e4de1fca74e8e11b58a9b
+AUX gnu-efi-3.0a-lds.patch 995 RMD160 037cf3e08911a01e13846e5adb9c3e56354bc544 SHA1 01f2256709aad74fba97911f5b278cd4d7b37c87 SHA256 d5e07eb3d5172e62be1f8e766709e93c7bff1b7f5aee47cd4fac888036bc886d
+AUX gnu-efi-3.0i-stack.diff 426 RMD160 1038e6098484b771c93a617e0cc0168c5f316355 SHA1 07d122b1b14b9777c77f3fe32d0fae1a121e90e8 SHA256 32171a05dff7f75767c77ed1483114b054c0783536ff77a0f0aaaa141c6e2584
+DIST gnu-efi_3.0i-2.diff.gz 4838 RMD160 b6113d71f3ec616e55840ce89848fcc335074e8a SHA1 48a79fb85bdab45697310c6eff69ee414b89c4ad SHA256 4488db1978215e06a6e859fb75491d7f5bd5a6821e70be0ba604f0de628a442f
+DIST gnu-efi_3.0i.orig.tar.gz 135068 RMD160 c73924116b56e8d4394bdb17cf08a267b6c33f97 SHA1 a4f9bd00e777452648e0d57b32080e63f54f2ee1 SHA256 13bea8e387984e04d93e14004a2e24539802fb2bd42cac112c8a816395d95366
+EBUILD gnu-efi-3.0i-r1.ebuild 1291 RMD160 6533edf3084b2c687bfd754f264a4d71676c22cf SHA1 58e8e27d1948709160bdc2cfa30b002db31a9eed SHA256 a3cc83ff100d842bc2e00e70da0ed105702e7c2df99ff34e5b324d48ba48ad16
diff --git a/sys-boot/gnu-efi/files/gnu-efi-3.0a-lds-redhat.patch b/sys-boot/gnu-efi/files/gnu-efi-3.0a-lds-redhat.patch
new file mode 100644
index 0000000..d47dc3a
--- /dev/null
+++ b/sys-boot/gnu-efi/files/gnu-efi-3.0a-lds-redhat.patch
@@ -0,0 +1,42 @@
+Updated lds patch from redhat which works with newer binutils.
+
+http://bugs.gentoo.org/show_bug.cgi?id=79091
+
+--- gnuefi/elf_ia64_efi.lds
++++ gnuefi/elf_ia64_efi.lds
+@@ -28,6 +28,5 @@
+ {
+ *(.rodata*)
+ *(.ctors)
+- *(.data)
+- *(.data1)
++ *(.data*)
+ *(.gnu.linkonce.d*)
+@@ -31,8 +31,4 @@ SECTIONS
+ *(.plabel) /* data whose relocs we want to ignore */
+- *(.IA_64.unwind)
+- *(.IA_64.unwind_info)
+- *(.IA64.unwind)
+- *(.IA64.unwind_info)
+ /* the EFI loader doesn't seem to like a .bss section, so we stick
+ it all into .data: */
+ *(.dynbss)
+@@ -48,7 +47,7 @@
+ .rela :
+ {
+ *(.rela.text)
+- *(.rela.data)
++ *(.rela.data*)
+ *(.rela.sdata)
+ *(.rela.got)
+ *(.rela.gnu.linkonce.d*)
+@@ -68,4 +64,9 @@ SECTIONS
+ *(.rela.plabel)
+ *(.rela.reloc)
+ }
++ /DISCARD/ :
++ {
++ *(.IA_64.unwind*)
++ *(.IA64.unwind*)
++ }
+ }
diff --git a/sys-boot/gnu-efi/files/gnu-efi-3.0a-lds.patch b/sys-boot/gnu-efi/files/gnu-efi-3.0a-lds.patch
new file mode 100644
index 0000000..f16efdb
--- /dev/null
+++ b/sys-boot/gnu-efi/files/gnu-efi-3.0a-lds.patch
@@ -0,0 +1,55 @@
+--- gnu-efi-3.0a.orig/gnuefi/elf_ia32_efi.lds
++++ gnu-efi-3.0a/gnuefi/elf_ia32_efi.lds
+@@ -17,6 +17,7 @@
+ *(.rodata*)
+ *(.data)
+ *(.data1)
++ *(.data.*)
+ *(.sdata)
+ *(.got.plt)
+ *(.got)
+@@ -34,8 +35,13 @@
+ .rel :
+ {
+ *(.rel.data)
++ *(.rel.data.*)
+ *(.rel.got)
+ *(.rel.stab)
++ *(.data.rel.ro.local)
++ *(.data.rel.local)
++ *(.data.rel.ro)
++ *(.data.rel*)
+ }
+ . = ALIGN(4096);
+ .dynsym : { *(.dynsym) }
+@@ -46,4 +52,9 @@
+ {
+ *(.rel.reloc)
+ }
++ .ignored :
++ {
++ *(.eh_frame)
++ }
+ }
++
+--- gnu-efi-3.0a.orig/gnuefi/elf_ia64_efi.lds
++++ gnu-efi-3.0a/gnuefi/elf_ia64_efi.lds
+@@ -28,8 +28,7 @@
+ {
+ *(.rodata*)
+ *(.ctors)
+- *(.data)
+- *(.data1)
++ *(.data*)
+ *(.gnu.linkonce.d*)
+ *(.plabel) /* data whose relocs we want to ignore */
+ *(.IA_64.unwind)
+@@ -48,7 +47,7 @@
+ .rela :
+ {
+ *(.rela.text)
+- *(.rela.data)
++ *(.rela.data*)
+ *(.rela.sdata)
+ *(.rela.got)
+ *(.rela.gnu.linkonce.d*)
diff --git a/sys-boot/gnu-efi/files/gnu-efi-3.0i-stack.diff b/sys-boot/gnu-efi/files/gnu-efi-3.0i-stack.diff
new file mode 100644
index 0000000..067cfb0
--- /dev/null
+++ b/sys-boot/gnu-efi/files/gnu-efi-3.0i-stack.diff
@@ -0,0 +1,13 @@
+--- crt0-efi-ia32.S 2008-09-18 14:32:08.000000000 -0400
++++ /home/smitdane/crt0-efi-ia32.S 2010-07-25 15:08:37.262534601 -0400
+@@ -18,6 +18,10 @@
+ along with GNU EFI; see the file COPYING. If not, write to the Free
+ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA. */
++
++ #if defined(__linux__) && defined(__ELF__)
++ .section .note.GNU-stack,"",%progbits
++ #endif
+
+ .text
+ .align 4
diff --git a/sys-boot/gnu-efi/gnu-efi-3.0i-r1.ebuild b/sys-boot/gnu-efi/gnu-efi-3.0i-r1.ebuild
new file mode 100644
index 0000000..b1f19dd
--- /dev/null
+++ b/sys-boot/gnu-efi/gnu-efi-3.0i-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/gnu-efi/gnu-efi-3.0i.ebuild,v 1.2 2010/07/24 15:40:51 armin76 Exp $
+
+inherit eutils toolchain-funcs
+
+MY_P="${PN}_${PV}"
+
+DESCRIPTION="Library for build EFI Applications"
+HOMEPAGE="http://developer.intel.com/technology/efi"
+SRC_URI="mirror://sourceforge/gnu-efi/${MY_P}.orig.tar.gz"
+SRC_URI="${SRC_URI} mirror://debian/pool/main/g/gnu-efi/gnu-efi_3.0i-2.diff.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ia64 ~x86"
+IUSE=""
+
+DEPEND="dev-util/patchutils
+ sys-apps/pciutils"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ #epatch "${FILESDIR}"/${P}-stack.diff
+ ebegin Applying ../*.diff
+ # Using epatch on this is annoying because it wants to create the elilo-3.6/
+ # directory. Since all the files are new, it doesn't know better.
+ filterdiff -p1 -i debian/\* ../*.diff | patch -s -p1
+ eend $? || return
+}
+
+src_compile() {
+ local iarch
+ case $ARCH in
+ ia64) iarch=ia64 ;;
+ x86) iarch=ia32 ;;
+ amd64) iarch=x86_64 ;;
+ *) die "unknown architecture: $ARCH" ;;
+ esac
+ emake CC="$(tc-getCC)" ARCH=${iarch} -j1 || die "emake failed"
+}
+
+src_install() {
+ make install INSTALLROOT="${D}"/usr || die "install failed"
+ dodoc README* ChangeLog
+}