diff options
author | Tavian Barnes | 2015-09-14 11:28:46 -0400 |
---|---|---|
committer | Tavian Barnes | 2015-09-14 11:28:46 -0400 |
commit | 46c4b550f223eeb61a707a090d6079e8c4f549e0 (patch) | |
tree | e67c7a2b306f8b7c84cd9ceb7db1d01e4a49bbd9 | |
download | aur-46c4b550f223eeb61a707a090d6079e8c4f549e0.tar.gz |
Import from https://github.com/tavianator/arch-rpi-cross.
-rw-r--r-- | .SRCINFO | 20 | ||||
-rw-r--r-- | .gitignore | 8 | ||||
-rw-r--r-- | PKGBUILD | 71 | ||||
-rw-r--r-- | binutils-e9c1bdad.patch | 78 |
4 files changed, 177 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..aa1318cff47a --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,20 @@ +pkgbase = arm-linux-gnueabihf-binutils + pkgdesc = A set of programs to assemble and manipulate binary and object files (arm-linux-gnueabihf) + pkgver = 2.25.1 + pkgrel = 3 + url = http://www.gnu.org/software/binutils/ + arch = i686 + arch = x86_64 + license = GPL + depends = glibc>=2.22 + depends = zlib + options = staticlibs + options = !distcc + options = !ccache + source = git://sourceware.org/git/binutils-gdb.git#commit=2bd25930 + source = binutils-e9c1bdad.patch + md5sums = SKIP + md5sums = eb3aceaab8ed26e06d505f82beb30f8f + +pkgname = arm-linux-gnueabihf-binutils + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..c51c8c6230b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +*.pkg.* +src/ +pkg/ +binutils-*.tar.bz2 +binutils-gdb/ +*.sig +*.sign +*.part diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..eebc27476d97 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,71 @@ +# Contributor: Alexander 'hatred' Drozdov <adrozdoff@gmail.com> +# Contributor: toha257 <toha257@gmail.com> +# Contributor: Allan McRae <allan@archlinux.org> +# Contributor: Kevin Mihelich <kevin@archlinuxarm.org> +# Maintainer: Tavian Barnes <tavianator@tavianator.com> + +_target="arm-linux-gnueabihf" +pkgname=${_target}-binutils +pkgver=2.25.1 +pkgrel=3 +_commit=2bd25930 +pkgdesc="A set of programs to assemble and manipulate binary and object files (${_target})" +arch=('i686' 'x86_64') +url="http://www.gnu.org/software/binutils/" +license=('GPL') +depends=('glibc>=2.22' 'zlib') +options=('staticlibs' '!distcc' '!ccache') +source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.bz2) +source=(git://sourceware.org/git/binutils-gdb.git#commit=${_commit} + binutils-e9c1bdad.patch) +md5sums=('SKIP' + 'eb3aceaab8ed26e06d505f82beb30f8f') + +prepare() { + cd ${srcdir}/binutils-gdb + + # https://sourceware.org/bugzilla/show_bug.cgi?id=16992 + patch -p1 -i ${srcdir}/binutils-e9c1bdad.patch + + # hack! - libiberty configure tests for header files using "$CPP $CPPFLAGS" + sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure + + mkdir ${srcdir}/binutils-build +} + +build() { + cd ${srcdir}/binutils-build + + ${srcdir}/binutils-gdb/configure --prefix=/usr \ + --program-prefix=${_target}- \ + --with-lib-path=/usr/lib/binutils/${_target} \ + --with-local-prefix=/usr/lib/${_target} \ + --with-sysroot=/usr/${_target} \ + --target=${_target} --host=${CHOST} --build=${CHOST} \ + --disable-nls \ + --enable-threads --enable-shared --with-pic \ + --enable-ld=default --enable-gold --enable-plugins \ + --enable-deterministic-archives \ + --disable-werror --disable-gdb --disable-sim + + make configure-host + + make tooldir=/usr +} + +check() { + cd ${srcdir}/binutils-build + + # unset LDFLAGS as testsuite makes assumptions about which ones are active + # ignore failures in gold testsuite... + make -k LDFLAGS="" check || true +} + +package() { + cd ${srcdir}/binutils-build + make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install + + # Remove unwanted files + rm -rf ${pkgdir}/usr/share + rm -f ${pkgdir}/usr/bin/{ar,as,ld,nm,objdump,ranlib,strip,objcopy} +} diff --git a/binutils-e9c1bdad.patch b/binutils-e9c1bdad.patch new file mode 100644 index 000000000000..6ef9f520fa08 --- /dev/null +++ b/binutils-e9c1bdad.patch @@ -0,0 +1,78 @@ +diff --git a/gold/layout.cc b/gold/layout.cc +index bcdaac8..7836640 100644 +--- a/gold/layout.cc ++++ b/gold/layout.cc +@@ -4873,7 +4873,8 @@ Layout::finish_dynamic_section(const Input_objects* input_objects, + flags |= elfcpp::DF_STATIC_TLS; + if (parameters->options().origin()) + flags |= elfcpp::DF_ORIGIN; +- if (parameters->options().Bsymbolic()) ++ if (parameters->options().Bsymbolic() ++ && !parameters->options().have_dynamic_list()) + { + flags |= elfcpp::DF_SYMBOLIC; + // Add DT_SYMBOLIC for compatibility with older loaders. +diff --git a/gold/options.cc b/gold/options.cc +index 7eb8f27..7f1f69e 100644 +--- a/gold/options.cc ++++ b/gold/options.cc +@@ -1200,13 +1200,6 @@ General_options::finalize() + // in the path, as appropriate. + this->add_sysroot(); + +- // --dynamic-list overrides -Bsymbolic and -Bsymbolic-functions. +- if (this->have_dynamic_list()) +- { +- this->set_Bsymbolic(false); +- this->set_Bsymbolic_functions(false); +- } +- + // Now that we've normalized the options, check for contradictory ones. + if (this->shared() && this->is_static()) + gold_fatal(_("-shared and -static are incompatible")); +diff --git a/gold/symtab.h b/gold/symtab.h +index aa0cb68..9413360 100644 +--- a/gold/symtab.h ++++ b/gold/symtab.h +@@ -604,10 +604,8 @@ class Symbol + if (parameters->options().in_dynamic_list(this->name())) + return true; + +- // If the user used -Bsymbolic or provided a --dynamic-list script, +- // then nothing (else) is preemptible. +- if (parameters->options().Bsymbolic() +- || parameters->options().have_dynamic_list()) ++ // If the user used -Bsymbolic, then nothing (else) is preemptible. ++ if (parameters->options().Bsymbolic()) + return false; + + // If the user used -Bsymbolic-functions, then functions are not +diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am +index f767c21..7b73f9d 100644 +--- a/gold/testsuite/Makefile.am ++++ b/gold/testsuite/Makefile.am +@@ -1518,7 +1518,7 @@ dynamic_list_lib1.o: dynamic_list_lib1.cc + $(CXXCOMPILE) -c -fpic -o $@ $< + + dynamic_list_lib2.so: gcctestdir/ld dynamic_list_lib2.o $(srcdir)/dynamic_list_2.t +- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o ++ $(CXXLINK) -Bgcctestdir/ -shared -Wl,-Bsymbolic-functions -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o + dynamic_list_lib2.o: dynamic_list_lib2.cc + $(CXXCOMPILE) -c -fpic -o $@ $< + +diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in +index 217e472..b4ae3fd 100644 +--- a/gold/testsuite/Makefile.in ++++ b/gold/testsuite/Makefile.in +@@ -5319,7 +5319,7 @@ uninstall-am: + @GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $< + + @GCC_TRUE@@NATIVE_LINKER_TRUE@dynamic_list_lib2.so: gcctestdir/ld dynamic_list_lib2.o $(srcdir)/dynamic_list_2.t +-@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o ++@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared -Wl,-Bsymbolic-functions -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o + @GCC_TRUE@@NATIVE_LINKER_TRUE@dynamic_list_lib2.o: dynamic_list_lib2.cc + @GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $< + +-- +1.9.4 + |