#!/usr/bin/bash # JOBoRun : Jwm OpenBox Obarun RUNit # Maintainer : Joe Bo Run # PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobcore/$pkgname" # Website : https://pozol.eu #-----------------------------------------| DESCRIPTION |--------------------------------------- pkgname=binutils pkgver=2.42 _commit=48942a586ebc056bd059d3f63a5eed3a2fa46ab3 pkgrel=01 pkgdesc='A set of programs to assemble and manipulate binary and object files' #url='https://www.gnu.org/software/binutils' url='https://ftp.gnu.org/gnu/binutils' groups=( jobbot ) depends=(glibc zlib libelf jansson) makedepends=(git) checkdepends=(dejagnu debuginfod bc) optdepends=('debuginfod: for debuginfod server/client functionality') conflicts=(binutils-multilib) replaces=(binutils-multilib) backup=('etc/gprofng.rc') provides=( libctf.so libgprofng.so libsframe.so ) options=(staticlibs !distcc !ccache) # options=(staticlibs !distcc !ccache debug) ## uncomment this line to have the debug pkg produced # the above was removed by arch in version 2.40-1 source=(git+https://sourceware.org/git/binutils-gdb.git#commit=${_commit} gold-warn-unsupported.patch) prepare() { [[ ! -d binutils-gdb ]] && ln -s binutils-${pkgver} binutils-gdb mkdir -p binutils-build cd binutils-gdb # Turn off development mode (-Werror, gas run-time checks, date in sonames) sed -i '/^development=/s/true/false/' bfd/development.sh # Creds @Fedora # Change the gold configuration script to only warn about # unsupported targets. This allows the binutils to be built with # BPF support enabled. patch -Np1 -i "${srcdir}"/gold-warn-unsupported.patch } build() { cd binutils-build "${srcdir}"/binutils-gdb/configure \ --prefix=/usr \ --sysconfdir="${pkgdir}"/etc \ --with-lib-path=/usr/lib:/usr/local/lib \ --with-bugurl=https://bugs.archlinux.org/ \ --enable-cet \ --enable-colored-disassembly \ --enable-default-execstack=no \ --enable-deterministic-archives \ --enable-gold \ --enable-install-libiberty \ --enable-jansson \ --enable-ld=default \ --enable-new-dtags \ --enable-pgo-build=lto \ --enable-plugins \ --enable-relro \ --enable-shared \ --enable-targets=x86_64-pep,bpf-unknown-none \ --enable-threads \ --disable-gdb \ --disable-gdbserver \ --disable-libdecnumber \ --disable-readline \ --disable-sim \ --disable-werror \ --with-debuginfod \ --with-pic \ --with-system-zlib make -O tooldir=/usr # Extract the FSF All Permissive License # # used for some linker scripts. tail -n 5 "${srcdir}"/binutils-gdb/ld/scripttempl/README > FSFAP } check() { cd binutils-build # # current testsuite failure in debuginfod (objdump) # # https://sourceware.org/bugzilla/show_bug.cgi?id=28029 # sed -i '/test_fetch_debuglink $OBJDUMP/d' \ # $srcdir/binutils-gdb/binutils/testsuite/binutils-all/debuginfod.exp # Use minimal flags for testsuite # ld testsuite uses CFLAGS_FOR_TARGET and requires -g # gold testsuite requires CXXFLAGS/CFLAGS with default PIE/PIC disabled make -O CFLAGS_FOR_TARGET="-O2 -g" \ CXXFLAGS="-O2 -no-pie -fno-PIC" \ CFLAGS="-O2 -no-pie" \ LDFLAGS="" \ check || true } package() { cd binutils-build make prefix="${pkgdir}"/usr tooldir="${pkgdir}"/usr install # install PIC version of libiberty install -m644 libiberty/pic/libiberty.a "${pkgdir}"/usr/lib # Remove unwanted files rm -f "${pkgdir}"/usr/share/man/man1/{dlltool,windres,windmc}* # No shared linking to these files outside binutils rm -f "${pkgdir}"/usr/lib/lib{bfd,opcodes}.so tee "${pkgdir}"/usr/lib/libbfd.so << EOS /* GNU ld script */ INPUT( /usr/lib/libbfd.a -lsframe -liberty -lz -lzstd -ldl ) EOS tee "${pkgdir}"/usr/lib/libopcodes.so << EOS /* GNU ld script */ INPUT( /usr/lib/libopcodes.a -lbfd ) EOS # install FSF All Permissive License install -Dm644 -t "${pkgdir}"/usr/share/licenses/${pkgname}/ FSFAP } #---- arch license gpg-key & sha256sums ---- arch=(x86_64) #license=('GPL3' 'GPL' 'FDL1.3' 'custom:FSFAP') license=(GPL-2.0-or-later GPL-3.0-or-later LGPL-2.0-or-later LGPL-3.0-or-later GFDL-1.3 FSFAP) validpgpkeys=(3A24BC1E8FB409FA9F14371813FCEF89DD9E3C4F) sha256sums=(SKIP 2d430b66f84a19c154725ec535280c493be1d34f1a90f95208dce02fecd0e4e4) # gold-warn-unsupported.patch ## 0ea07fa6957a85c192098759bcce2fe55fb83e15f5ca0100030bcc2caf0a0b95 binutils-2.42-01-x86_64.pkg.tar.lz