Date: Wednesday, June 4, 2014 @ 15:57:12 Author: allan Revision: 214250
archrelease: copy trunk to testing-i686, testing-x86_64 Added: binutils/repos/testing-i686/ binutils/repos/testing-i686/PKGBUILD (from rev 214249, binutils/trunk/PKGBUILD) binutils/repos/testing-i686/binutils-2.24-lto-testsuite.patch (from rev 214249, binutils/trunk/binutils-2.24-lto-testsuite.patch) binutils/repos/testing-i686/binutils-2.24-static-pie-hang.patch (from rev 214249, binutils/trunk/binutils-2.24-static-pie-hang.patch) binutils/repos/testing-i686/binutils.install (from rev 214249, binutils/trunk/binutils.install) binutils/repos/testing-x86_64/ binutils/repos/testing-x86_64/PKGBUILD (from rev 214249, binutils/trunk/PKGBUILD) binutils/repos/testing-x86_64/binutils-2.24-lto-testsuite.patch (from rev 214249, binutils/trunk/binutils-2.24-lto-testsuite.patch) binutils/repos/testing-x86_64/binutils-2.24-static-pie-hang.patch (from rev 214249, binutils/trunk/binutils-2.24-static-pie-hang.patch) binutils/repos/testing-x86_64/binutils.install (from rev 214249, binutils/trunk/binutils.install) ----------------------------------------------------+ testing-i686/PKGBUILD | 78 +++++++++++++++++++ testing-i686/binutils-2.24-lto-testsuite.patch | 53 ++++++++++++ testing-i686/binutils-2.24-static-pie-hang.patch | 78 +++++++++++++++++++ testing-i686/binutils.install | 17 ++++ testing-x86_64/PKGBUILD | 78 +++++++++++++++++++ testing-x86_64/binutils-2.24-lto-testsuite.patch | 53 ++++++++++++ testing-x86_64/binutils-2.24-static-pie-hang.patch | 78 +++++++++++++++++++ testing-x86_64/binutils.install | 17 ++++ 8 files changed, 452 insertions(+) Copied: binutils/repos/testing-i686/PKGBUILD (from rev 214249, binutils/trunk/PKGBUILD) =================================================================== --- testing-i686/PKGBUILD (rev 0) +++ testing-i686/PKGBUILD 2014-06-04 13:57:12 UTC (rev 214250) @@ -0,0 +1,78 @@ +# $Id$ +# Maintainer: Allan McRae <al...@archlinux.org> + +# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc + +pkgname=binutils +pkgver=2.24 +pkgrel=5 +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-devel') +depends=('glibc>=2.19' 'zlib') +checkdepends=('dejagnu' 'bc') +conflicts=('binutils-multilib') +replaces=('binutils-multilib') +options=('staticlibs' '!distcc' '!ccache') +install=binutils.install +source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.bz2{,.sig} + binutils-2.24-lto-testsuite.patch + binutils-2.24-static-pie-hang.patch) +md5sums=('e0f71a7b2ddab0f8612336ac81d9636b' + 'SKIP' + 'b16e895c24ff80acd98a21021eccefad' + '4d2cf591560c3d25265778146bbe1941') +validpgpkeys=('EAF1C276A747E9ED86210CBAC3126D3B4AE55E93') + +prepare() { + cd ${srcdir}/binutils-${pkgver} + + # hack! - libiberty configure tests for header files using "$CPP $CPPFLAGS" + sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure + + # fix lto testsuite with gcc-4.9 - commit b35d44f1 + patch -p1 -i $srcdir/binutils-2.24-lto-testsuite.patch + + # fix autoconf hang with -static -fPIE -pie - commits d1ec1e40 and 818d220a + patch -p1 -i $srcdir/binutils-2.24-static-pie-hang.patch + + mkdir ${srcdir}/binutils-build +} + +build() { + cd ${srcdir}/binutils-build + + ${srcdir}/binutils-${pkgver}/configure --prefix=/usr \ + --with-lib-path=/usr/lib:/usr/local/lib \ + --with-bugurl=https://bugs.archlinux.org/ \ + --enable-threads --enable-shared --with-pic \ + --enable-ld=default --enable-gold --enable-plugins \ + --disable-werror + + # check the host environment and makes sure all the necessary tools are available + make configure-host + + make tooldir=/usr +} + +check() { + cd ${srcdir}/binutils-build + + # unset LDFLAGS as testsuite makes assumptions about which ones are active + # do not abort on errors - manually check log files + make LDFLAGS="" -k check || true +} + +package() { + cd ${srcdir}/binutils-build + make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install + + # Remove unwanted files + rm ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}* + rm ${pkgdir}/usr/share/info/{configure,standards}.info + + # No shared linking to these files outside binutils + rm ${pkgdir}/usr/lib/lib{bfd,opcodes}.so +} Copied: binutils/repos/testing-i686/binutils-2.24-lto-testsuite.patch (from rev 214249, binutils/trunk/binutils-2.24-lto-testsuite.patch) =================================================================== --- testing-i686/binutils-2.24-lto-testsuite.patch (rev 0) +++ testing-i686/binutils-2.24-lto-testsuite.patch 2014-06-04 13:57:12 UTC (rev 214250) @@ -0,0 +1,53 @@ +index c5249f0..69946de 100644 +--- a/ld/testsuite/ld-plugin/lto.exp ++++ b/ld/testsuite/ld-plugin/lto.exp +@@ -57,7 +57,7 @@ set lto_link_tests { + "" "-O2" + {lto-3c.c} {} "libdummy.a"} + {"Build liblto-3.a" +- "" "-flto" ++ "" "-flto -ffat-lto-objects" + {lto-3b.c} {} "liblto-3.a"} + {"Build libdummy.a 5a" + "" "-flto" +@@ -111,7 +111,7 @@ set lto_link_tests { + "" "" + {pr12758a.s} {} "libdummy.a"} + {"Build libpr12758.a" +- "" "-flto -O2" ++ "" "-flto -O2 -ffat-lto-objects" + {pr12758b.c} {} "libpr12758.a"} + {"PR ld/12758" + "-O2 -Wl,-e,foo -nostdlib -flto -fuse-linker-plugin tmpdir/pr12758a.o -Wl,--start-group tmpdir/libpr12758.a -Wl,--end-group" "" +@@ -120,13 +120,13 @@ set lto_link_tests { + "" "" + {pr12760a.c} {} "libdummy.a"} + {"Build libpr12760.a" +- "" "-flto -O2" ++ "" "-flto -O2 -ffat-lto-objects" + {pr12760b.c} {} "libpr12760.a"} + {"PR ld/12760" + "-O2 -Wl,-e,foo -nostdlib -flto -fuse-linker-plugin tmpdir/pr12760a.o -Wl,--start-group tmpdir/libpr12760.a -Wl,--end-group" "" + {dummy.c} {} "pr12760.exe" "c" "warning: Bad bar"} + {"Build libpr13183.a" +- "-T" "-flto -O2" ++ "-T" "-flto -O2 -ffat-lto-objects" + {pr13183a.c} {} "libpr13183.a"} + {"Build libdummy.a PR ld/13183" + "" "-flto -O2" +diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp +index 8df42ae..175449a 100644 +--- a/ld/testsuite/lib/ld-lib.exp ++++ b/ld/testsuite/lib/ld-lib.exp +@@ -1643,7 +1643,7 @@ proc check_lto_available { } { + set f [open $src "w"] + puts $f "" + close $f +- set status [remote_exec host $CC "-shared -B[pwd]/tmpdir/ld/ -flto -fuse-linker-plugin $src -o $output"] ++ set status [remote_exec host $CC "-shared -B[pwd]/tmpdir/ld/ -flto -ffat-lto-objects -fuse-linker-plugin $src -o $output"] + if { [lindex $status 0] == 0 } { + set lto_available_saved 1 + } else { +-- +1.7.1 + Copied: binutils/repos/testing-i686/binutils-2.24-static-pie-hang.patch (from rev 214249, binutils/trunk/binutils-2.24-static-pie-hang.patch) =================================================================== --- testing-i686/binutils-2.24-static-pie-hang.patch (rev 0) +++ testing-i686/binutils-2.24-static-pie-hang.patch 2014-06-04 13:57:12 UTC (rev 214250) @@ -0,0 +1,78 @@ +diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c +index 4d391e1..d7f59e5 100644 +--- a/bfd/elf32-i386.c ++++ b/bfd/elf32-i386.c +@@ -2368,8 +2368,13 @@ elf_i386_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) + + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; ) + { +- p->count -= p->pc_count; +- p->pc_count = 0; ++ /* Don't update reloc count if there are any non ++ pc-relative relocs. */ ++ if (!h->pointer_equality_needed) ++ { ++ p->count -= p->pc_count; ++ p->pc_count = 0; ++ } + if (p->count == 0) + *pp = p->next; + else +diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c +index edee8ec..999011b 100644 +--- a/bfd/elf64-x86-64.c ++++ b/bfd/elf64-x86-64.c +@@ -2463,8 +2463,13 @@ elf_x86_64_allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) + + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; ) + { +- p->count -= p->pc_count; +- p->pc_count = 0; ++ /* Don't update reloc count if there are any non ++ pc-relative relocs. */ ++ if (!h->pointer_equality_needed) ++ { ++ p->count -= p->pc_count; ++ p->pc_count = 0; ++ } + if (p->count == 0) + *pp = p->next; + else +diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c +index 4d391e1..e834a5a 100644 +--- a/bfd/elf32-i386.c ++++ b/bfd/elf32-i386.c +@@ -2390,9 +2390,12 @@ elf_i386_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) + } + + /* Also discard relocs on undefined weak syms with non-default +- visibility. */ ++ visibility. Don't discard relocs against __ehdr_start which ++ will be defined by assign_file_positions_for_non_load_sections ++ later. */ + if (eh->dyn_relocs != NULL +- && h->root.type == bfd_link_hash_undefweak) ++ && h->root.type == bfd_link_hash_undefweak ++ && strcmp (h->root.root.string, "__ehdr_start") != 0) + { + if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT) + eh->dyn_relocs = NULL; +diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c +index edee8ec..f364fe4 100644 +--- a/bfd/elf64-x86-64.c ++++ b/bfd/elf64-x86-64.c +@@ -2473,9 +2473,12 @@ elf_x86_64_allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) + } + + /* Also discard relocs on undefined weak syms with non-default +- visibility. */ ++ visibility. Don't discard relocs against __ehdr_start which ++ will be defined by assign_file_positions_for_non_load_sections ++ later. */ + if (eh->dyn_relocs != NULL +- && h->root.type == bfd_link_hash_undefweak) ++ && h->root.type == bfd_link_hash_undefweak ++ && strcmp (h->root.root.string, "__ehdr_start") != 0) + { + if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT) + eh->dyn_relocs = NULL; Copied: binutils/repos/testing-i686/binutils.install (from rev 214249, binutils/trunk/binutils.install) =================================================================== --- testing-i686/binutils.install (rev 0) +++ testing-i686/binutils.install 2014-06-04 13:57:12 UTC (rev 214250) @@ -0,0 +1,17 @@ +infodir=usr/share/info +filelist=(as.info bfd.info binutils.info gprof.info ld.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 +} + Copied: binutils/repos/testing-x86_64/PKGBUILD (from rev 214249, binutils/trunk/PKGBUILD) =================================================================== --- testing-x86_64/PKGBUILD (rev 0) +++ testing-x86_64/PKGBUILD 2014-06-04 13:57:12 UTC (rev 214250) @@ -0,0 +1,78 @@ +# $Id$ +# Maintainer: Allan McRae <al...@archlinux.org> + +# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc + +pkgname=binutils +pkgver=2.24 +pkgrel=5 +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-devel') +depends=('glibc>=2.19' 'zlib') +checkdepends=('dejagnu' 'bc') +conflicts=('binutils-multilib') +replaces=('binutils-multilib') +options=('staticlibs' '!distcc' '!ccache') +install=binutils.install +source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.bz2{,.sig} + binutils-2.24-lto-testsuite.patch + binutils-2.24-static-pie-hang.patch) +md5sums=('e0f71a7b2ddab0f8612336ac81d9636b' + 'SKIP' + 'b16e895c24ff80acd98a21021eccefad' + '4d2cf591560c3d25265778146bbe1941') +validpgpkeys=('EAF1C276A747E9ED86210CBAC3126D3B4AE55E93') + +prepare() { + cd ${srcdir}/binutils-${pkgver} + + # hack! - libiberty configure tests for header files using "$CPP $CPPFLAGS" + sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure + + # fix lto testsuite with gcc-4.9 - commit b35d44f1 + patch -p1 -i $srcdir/binutils-2.24-lto-testsuite.patch + + # fix autoconf hang with -static -fPIE -pie - commits d1ec1e40 and 818d220a + patch -p1 -i $srcdir/binutils-2.24-static-pie-hang.patch + + mkdir ${srcdir}/binutils-build +} + +build() { + cd ${srcdir}/binutils-build + + ${srcdir}/binutils-${pkgver}/configure --prefix=/usr \ + --with-lib-path=/usr/lib:/usr/local/lib \ + --with-bugurl=https://bugs.archlinux.org/ \ + --enable-threads --enable-shared --with-pic \ + --enable-ld=default --enable-gold --enable-plugins \ + --disable-werror + + # check the host environment and makes sure all the necessary tools are available + make configure-host + + make tooldir=/usr +} + +check() { + cd ${srcdir}/binutils-build + + # unset LDFLAGS as testsuite makes assumptions about which ones are active + # do not abort on errors - manually check log files + make LDFLAGS="" -k check || true +} + +package() { + cd ${srcdir}/binutils-build + make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install + + # Remove unwanted files + rm ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}* + rm ${pkgdir}/usr/share/info/{configure,standards}.info + + # No shared linking to these files outside binutils + rm ${pkgdir}/usr/lib/lib{bfd,opcodes}.so +} Copied: binutils/repos/testing-x86_64/binutils-2.24-lto-testsuite.patch (from rev 214249, binutils/trunk/binutils-2.24-lto-testsuite.patch) =================================================================== --- testing-x86_64/binutils-2.24-lto-testsuite.patch (rev 0) +++ testing-x86_64/binutils-2.24-lto-testsuite.patch 2014-06-04 13:57:12 UTC (rev 214250) @@ -0,0 +1,53 @@ +index c5249f0..69946de 100644 +--- a/ld/testsuite/ld-plugin/lto.exp ++++ b/ld/testsuite/ld-plugin/lto.exp +@@ -57,7 +57,7 @@ set lto_link_tests { + "" "-O2" + {lto-3c.c} {} "libdummy.a"} + {"Build liblto-3.a" +- "" "-flto" ++ "" "-flto -ffat-lto-objects" + {lto-3b.c} {} "liblto-3.a"} + {"Build libdummy.a 5a" + "" "-flto" +@@ -111,7 +111,7 @@ set lto_link_tests { + "" "" + {pr12758a.s} {} "libdummy.a"} + {"Build libpr12758.a" +- "" "-flto -O2" ++ "" "-flto -O2 -ffat-lto-objects" + {pr12758b.c} {} "libpr12758.a"} + {"PR ld/12758" + "-O2 -Wl,-e,foo -nostdlib -flto -fuse-linker-plugin tmpdir/pr12758a.o -Wl,--start-group tmpdir/libpr12758.a -Wl,--end-group" "" +@@ -120,13 +120,13 @@ set lto_link_tests { + "" "" + {pr12760a.c} {} "libdummy.a"} + {"Build libpr12760.a" +- "" "-flto -O2" ++ "" "-flto -O2 -ffat-lto-objects" + {pr12760b.c} {} "libpr12760.a"} + {"PR ld/12760" + "-O2 -Wl,-e,foo -nostdlib -flto -fuse-linker-plugin tmpdir/pr12760a.o -Wl,--start-group tmpdir/libpr12760.a -Wl,--end-group" "" + {dummy.c} {} "pr12760.exe" "c" "warning: Bad bar"} + {"Build libpr13183.a" +- "-T" "-flto -O2" ++ "-T" "-flto -O2 -ffat-lto-objects" + {pr13183a.c} {} "libpr13183.a"} + {"Build libdummy.a PR ld/13183" + "" "-flto -O2" +diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp +index 8df42ae..175449a 100644 +--- a/ld/testsuite/lib/ld-lib.exp ++++ b/ld/testsuite/lib/ld-lib.exp +@@ -1643,7 +1643,7 @@ proc check_lto_available { } { + set f [open $src "w"] + puts $f "" + close $f +- set status [remote_exec host $CC "-shared -B[pwd]/tmpdir/ld/ -flto -fuse-linker-plugin $src -o $output"] ++ set status [remote_exec host $CC "-shared -B[pwd]/tmpdir/ld/ -flto -ffat-lto-objects -fuse-linker-plugin $src -o $output"] + if { [lindex $status 0] == 0 } { + set lto_available_saved 1 + } else { +-- +1.7.1 + Copied: binutils/repos/testing-x86_64/binutils-2.24-static-pie-hang.patch (from rev 214249, binutils/trunk/binutils-2.24-static-pie-hang.patch) =================================================================== --- testing-x86_64/binutils-2.24-static-pie-hang.patch (rev 0) +++ testing-x86_64/binutils-2.24-static-pie-hang.patch 2014-06-04 13:57:12 UTC (rev 214250) @@ -0,0 +1,78 @@ +diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c +index 4d391e1..d7f59e5 100644 +--- a/bfd/elf32-i386.c ++++ b/bfd/elf32-i386.c +@@ -2368,8 +2368,13 @@ elf_i386_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) + + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; ) + { +- p->count -= p->pc_count; +- p->pc_count = 0; ++ /* Don't update reloc count if there are any non ++ pc-relative relocs. */ ++ if (!h->pointer_equality_needed) ++ { ++ p->count -= p->pc_count; ++ p->pc_count = 0; ++ } + if (p->count == 0) + *pp = p->next; + else +diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c +index edee8ec..999011b 100644 +--- a/bfd/elf64-x86-64.c ++++ b/bfd/elf64-x86-64.c +@@ -2463,8 +2463,13 @@ elf_x86_64_allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) + + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; ) + { +- p->count -= p->pc_count; +- p->pc_count = 0; ++ /* Don't update reloc count if there are any non ++ pc-relative relocs. */ ++ if (!h->pointer_equality_needed) ++ { ++ p->count -= p->pc_count; ++ p->pc_count = 0; ++ } + if (p->count == 0) + *pp = p->next; + else +diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c +index 4d391e1..e834a5a 100644 +--- a/bfd/elf32-i386.c ++++ b/bfd/elf32-i386.c +@@ -2390,9 +2390,12 @@ elf_i386_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) + } + + /* Also discard relocs on undefined weak syms with non-default +- visibility. */ ++ visibility. Don't discard relocs against __ehdr_start which ++ will be defined by assign_file_positions_for_non_load_sections ++ later. */ + if (eh->dyn_relocs != NULL +- && h->root.type == bfd_link_hash_undefweak) ++ && h->root.type == bfd_link_hash_undefweak ++ && strcmp (h->root.root.string, "__ehdr_start") != 0) + { + if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT) + eh->dyn_relocs = NULL; +diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c +index edee8ec..f364fe4 100644 +--- a/bfd/elf64-x86-64.c ++++ b/bfd/elf64-x86-64.c +@@ -2473,9 +2473,12 @@ elf_x86_64_allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) + } + + /* Also discard relocs on undefined weak syms with non-default +- visibility. */ ++ visibility. Don't discard relocs against __ehdr_start which ++ will be defined by assign_file_positions_for_non_load_sections ++ later. */ + if (eh->dyn_relocs != NULL +- && h->root.type == bfd_link_hash_undefweak) ++ && h->root.type == bfd_link_hash_undefweak ++ && strcmp (h->root.root.string, "__ehdr_start") != 0) + { + if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT) + eh->dyn_relocs = NULL; Copied: binutils/repos/testing-x86_64/binutils.install (from rev 214249, binutils/trunk/binutils.install) =================================================================== --- testing-x86_64/binutils.install (rev 0) +++ testing-x86_64/binutils.install 2014-06-04 13:57:12 UTC (rev 214250) @@ -0,0 +1,17 @@ +infodir=usr/share/info +filelist=(as.info bfd.info binutils.info gprof.info ld.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 +} +