summaryrefslogtreecommitdiff
path: root/core/binutils
diff options
context:
space:
mode:
Diffstat (limited to 'core/binutils')
-rw-r--r--core/binutils/PKGBUILD84
-rw-r--r--core/binutils/binutils.git-39637246.patch700
-rw-r--r--core/binutils/binutils.install17
3 files changed, 801 insertions, 0 deletions
diff --git a/core/binutils/PKGBUILD b/core/binutils/PKGBUILD
new file mode 100644
index 000000000..da43e8b5e
--- /dev/null
+++ b/core/binutils/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id: PKGBUILD 109378 2011-02-09 08:54:49Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=binutils
+pkgver=2.21
+pkgrel=4
+_date=20110209
+pkgdesc="A set of programs to assemble and manipulate binary and object files"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/binutils/"
+license=('GPL')
+groups=('base')
+depends=('glibc>=2.13' 'zlib')
+makedepends=('dejagnu')
+options=('!libtool' '!distcc' '!ccache')
+install=binutils.install
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2
+ binutils.git-39637246.patch)
+md5sums=('673ef8f4fc0b497232b4458982e76179'
+ 'dd72cb6df5467bc6237cff2a886099d0')
+
+mksource() {
+ mkdir ${pkgname}-${_date}
+ cd ${pkgname}-${_date}
+ export _TAG=binutils-2_21-branch
+ export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src'
+ cvs -z9 co -r $_TAG binutils || return 1
+ mv src binutils
+ tar -cvjf ../binutils-${pkgver}_${_date}.tar.bz2 binutils/*
+}
+
+build() {
+ cd ${srcdir}/binutils
+ patch -Np1 -i ${srcdir}/binutils.git-39637246.patch
+
+ cd ${srcdir}
+ mkdir binutils-build && cd binutils-build
+
+ [[ $CARCH == "x86_64" ]] && CONFIGFLAG="--enable-64-bit-bfd --disable-multilib"
+
+ ${srcdir}/binutils/configure --prefix=/usr \
+ --enable-ld=default --enable-gold \
+ --enable-plugins --enable-threads \
+ --enable-shared $CONFIGFLAG
+
+ # This checks the host environment and makes sure all the necessary tools are available to compile Binutils.
+ make configure-host
+
+ make tooldir=${pkgdir}/usr
+
+ # do not abort on errors - manually check log files
+ make -k -j1 check || true
+}
+
+package() {
+ cd ${srcdir}/binutils-build
+ make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install
+
+ # Add some useful headers
+ install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include
+ install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include
+
+ # Rebuild libiberty.a with -fPIC
+ make -C libiberty clean
+ make CFLAGS="$CFLAGS -fPIC" -C libiberty
+ install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib
+
+ # Rebuild libbfd.a with -fPIC
+ make -C bfd clean
+ # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
+ make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd
+ install -m644 bfd/libbfd.a ${pkgdir}/usr/lib
+
+ # Remove Windows/Novell specific man pages
+ rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*
+
+ # Remove these symlinks, they are not ABI stable.
+ # Programs should compile static to the .a file.
+ rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so
+ echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so
+ echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so
+}
diff --git a/core/binutils/binutils.git-39637246.patch b/core/binutils/binutils.git-39637246.patch
new file mode 100644
index 000000000..460450e43
--- /dev/null
+++ b/core/binutils/binutils.git-39637246.patch
@@ -0,0 +1,700 @@
+diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
+index 777d7cf..c4c34a1 100644
+--- a/gas/config/tc-i386.c
++++ b/gas/config/tc-i386.c
+@@ -1060,7 +1060,6 @@ i386_align_code (fragS *fragP, int count)
+ else
+ patt = f32_patt;
+ break;
+- case PROCESSOR_PENTIUMPRO:
+ case PROCESSOR_PENTIUM4:
+ case PROCESSOR_NOCONA:
+ case PROCESSOR_CORE:
+@@ -1080,6 +1079,7 @@ i386_align_code (fragS *fragP, int count)
+ case PROCESSOR_I386:
+ case PROCESSOR_I486:
+ case PROCESSOR_PENTIUM:
++ case PROCESSOR_PENTIUMPRO:
+ case PROCESSOR_GENERIC32:
+ patt = f32_patt;
+ break;
+diff --git a/gas/testsuite/gas/i386/nops-1-i686.d b/gas/testsuite/gas/i386/nops-1-i686.d
+index 7752ee2..137d5c2 100644
+--- a/gas/testsuite/gas/i386/nops-1-i686.d
++++ b/gas/testsuite/gas/i386/nops-1-i686.d
+@@ -10,25 +10,41 @@ Disassembly of section .text:
+
+ 0+ <nop15>:
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 0d jmp 10 <nop14>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+10 <nop14>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+20 <nop13>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+30 <nop12>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
++[ ]*[a-f0-9]+: 8d bf 00 00 00 00 lea 0x0\(%edi\),%edi
+
+ 0+40 <nop11>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -36,7 +52,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+50 <nop10>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -45,7 +62,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d 76 00 lea 0x0\(%esi\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+60 <nop9>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -55,7 +73,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 89 f6 mov %esi,%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+70 <nop8>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -66,7 +85,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+80 <nop7>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -78,7 +98,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\)
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+90 <nop6>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -91,7 +111,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
+
+ 0+a0 <nop5>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -105,7 +125,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+b0 <nop4>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -120,7 +141,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\)
++[ ]*[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+c0 <nop3>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -136,7 +157,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
++[ ]*[a-f0-9]+: 8d 76 00 lea 0x0\(%esi\),%esi
+
+ 0+d0 <nop2>:
+ [ ]*[a-f0-9]+: 90 nop
+diff --git a/gas/testsuite/gas/i386/nops-3-i686.d b/gas/testsuite/gas/i386/nops-3-i686.d
+index 30d2627..5c114f4 100644
+--- a/gas/testsuite/gas/i386/nops-3-i686.d
++++ b/gas/testsuite/gas/i386/nops-3-i686.d
+@@ -9,9 +9,37 @@ Disassembly of section .text:
+
+ 0+ <nop>:
+ [ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: eb 1d jmp 20 <nop\+0x20>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+ [ ]*[a-f0-9]+: 89 c3 mov %eax,%ebx
+-[ ]*[a-f0-9]+: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+ #pass
+diff --git a/gas/testsuite/gas/i386/nops-4-i686.d b/gas/testsuite/gas/i386/nops-4-i686.d
+index 3d8420b..c61f08d 100644
+--- a/gas/testsuite/gas/i386/nops-4-i686.d
++++ b/gas/testsuite/gas/i386/nops-4-i686.d
+@@ -9,30 +9,135 @@ Disassembly of section .text:
+
+ 0+ <nop31>:
+ [ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: eb 1d jmp 20 <nop30>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+
+ 0+20 <nop30>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 1c jmp 40 <nop29>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+40 <nop29>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 1b jmp 60 <nop28>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+60 <nop28>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 1a jmp 80 <nop27>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+80 <nop27>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -40,8 +145,32 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 19 jmp a0 <nop26>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+a0 <nop26>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -50,8 +179,31 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 18 jmp c0 <nop25>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+c0 <nop25>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -61,8 +213,30 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 17 jmp e0 <nop24>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+e0 <nop24>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -73,8 +247,29 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 16 jmp 100 <nop23>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+100 <nop23>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -86,8 +281,28 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 15 jmp 120 <nop22>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+120 <nop22>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -100,8 +315,27 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 14 jmp 140 <nop21>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+140 <nop21>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -115,8 +349,26 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 13 jmp 160 <nop20>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+160 <nop20>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -131,8 +383,25 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 12 jmp 180 <nop19>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+180 <nop19>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -148,8 +417,24 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 11 jmp 1a0 <nop18>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+1a0 <nop18>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -166,8 +451,23 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 10 jmp 1c0 <nop17>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+1c0 <nop17>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -185,8 +485,22 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 0f jmp 1e0 <nop16>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+1e0 <nop16>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -205,6 +519,19 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: eb 0e jmp 200 <align>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+ #pass
diff --git a/core/binutils/binutils.install b/core/binutils/binutils.install
new file mode 100644
index 000000000..8bf9f3a47
--- /dev/null
+++ b/core/binutils/binutils.install
@@ -0,0 +1,17 @@
+infodir=usr/share/info
+filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+