# $Id$ # Maintainer: Allan McRae # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc pkgname=binutils pkgver=2.29.1 pkgrel=2 pkgdesc='A set of programs to assemble and manipulate binary and object files' arch=(x86_64) url='http://www.gnu.org/software/binutils/' license=(GPL) groups=('base-devel') depends=('glibc>=2.26' zlib) makedepends=(git) checkdepends=(dejagnu bc) conflicts=(binutils-multilib) replaces=(binutils-multilib) options=(staticlibs !distcc !ccache) #_commit=d1a6e7195b9bb0255fa77588985b969ad8aaacf5 #source=(git+https://sourceware.org/git/binutils-gdb.git#commit=${_commit} source=(https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz{,.sig} 0001-x86-64_Dont_pass_output_bfd_to_info-callbacks-minfo.patch) validpgpkeys=(3A24BC1E8FB409FA9F14371813FCEF89DD9E3C4F) md5sums=('acc9cd826edb9954ac7cecb81c727793' 'SKIP' 'e4be936139ef46122cb3841881c432b2') prepare() { mkdir -p binutils-build #cd binutils-gdb cd binutils-$pkgver # hack! - libiberty configure tests for header files using "$CPP $CPPFLAGS" sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure # https://bugs.archlinux.org/task/55741 git apply ../0001-x86-64_Dont_pass_output_bfd_to_info-callbacks-minfo.patch } build() { cd 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 \ --enable-ld=default \ --enable-gold \ --enable-plugins \ --enable-relro \ --enable-deterministic-archives \ --with-pic \ --disable-werror \ --disable-gdb \ --with-system-zlib make configure-host make tooldir=/usr } check() { cd 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 binutils-build make prefix="$pkgdir/usr" tooldir="$pkgdir/usr" install # Remove unwanted files rm -f "$pkgdir"/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}* # No shared linking to these files outside binutils rm -f "$pkgdir"/usr/lib/lib{bfd,opcodes}.so echo "INPUT( /usr/lib/libbfd.a -liberty -lz -ldl )" > "$pkgdir/usr/lib/libbfd.so" echo "INPUT( /usr/lib/libopcodes.a -lbfd )" > "$pkgdir/usr/lib/libopcodes.so" }