summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes2015-09-14 11:28:46 -0400
committerTavian Barnes2015-09-14 11:28:46 -0400
commit46c4b550f223eeb61a707a090d6079e8c4f549e0 (patch)
treee67c7a2b306f8b7c84cd9ceb7db1d01e4a49bbd9
downloadaur-46c4b550f223eeb61a707a090d6079e8c4f549e0.tar.gz
Import from https://github.com/tavianator/arch-rpi-cross.
-rw-r--r--.SRCINFO20
-rw-r--r--.gitignore8
-rw-r--r--PKGBUILD71
-rw-r--r--binutils-e9c1bdad.patch78
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
+