130 lines
4.2 KiB
Bash
130 lines
4.2 KiB
Bash
#!/usr/bin/bash
|
|
# JOBoRun : Jwm OpenBox Obarun RUNit
|
|
# Maintainer : Joe Bo Run <joborun@disroot.org>
|
|
# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobcore/$pkgname"
|
|
# Website : https://pozol.eu
|
|
#-----------------------------------------| DESCRIPTION |---------------------------------------
|
|
#
|
|
# toolchain build order: linux-api-headers->glibc->binutils->gcc->glibc->binutils->gcc
|
|
|
|
pkgname=binutils
|
|
pkgver=2.38
|
|
#_commit=cb5f6a3e146cc70bc2d864989386df80acec5d3e
|
|
_commit=9c67f6382ac2c90fbde5729feaf7d59ce662147a
|
|
pkgrel=05
|
|
pkgdesc='A set of programs to assemble and manipulate binary and object files'
|
|
arch=(x86_64)
|
|
#url='https://www.gnu.org/software/binutils'
|
|
url='https://ftp.gnu.org/gnu/binutils'
|
|
groups=( jobbot )
|
|
depends=(glibc zlib libelf)
|
|
makedepends=(git)
|
|
checkdepends=(dejagnu debuginfod bc)
|
|
optdepends=('debuginfod: for debuginfod server/client functionality')
|
|
conflicts=(binutils-multilib)
|
|
replaces=(binutils-multilib)
|
|
options=(staticlibs !distcc !ccache)
|
|
#options=(staticlibs !distcc !ccache debug)
|
|
#source=(git+https://sourceware.org/git/binutils-gdb.git#commit=$_commit)
|
|
#source=($url/$pkgname-$pkgver.tar.xz{,.sig}
|
|
# gold-warn-unsupported.patch
|
|
# fix-incorrect-undefined-symbol.patch)
|
|
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 \
|
|
--with-lib-path=/usr/lib:/usr/local/lib \
|
|
--with-bugurl=https://bugs.archlinux.org/ \
|
|
--enable-cet \
|
|
--enable-deterministic-archives \
|
|
--enable-gold \
|
|
--enable-install-libiberty \
|
|
--enable-ld=default \
|
|
--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
|
|
# <https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html>
|
|
# used for some linker scripts.
|
|
tail -n 5 "${srcdir}"/binutils-gdb/ld/scripttempl/README > FSFAP
|
|
}
|
|
|
|
#check() {
|
|
# cd binutils-build
|
|
#
|
|
# # 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
|
|
#}
|
|
|
|
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
|
|
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"
|
|
|
|
# install FSF All Permissive License
|
|
install -Dm644 -t "${pkgdir}"/usr/share/licenses/${pkgname}/ FSFAP
|
|
}
|
|
|
|
#---- license gpg-key sha512sums ----
|
|
|
|
license=('GPL3' 'GPL' 'FDL1.3' 'custom:FSFAP')
|
|
|
|
validpgpkeys=(3A24BC1E8FB409FA9F14371813FCEF89DD9E3C4F)
|
|
|
|
sha256sums=(#e316477a914f567eccc34d5d29785b8b0f5a10208d36bbacedcc39048ecfe024 # binutils-2.38.tar.xz
|
|
#41301d67da78df1ad6df04aefe9e7bea8235484b0323cee52caa8f7435385014 # binutils-2.38.tar.xz.sig
|
|
SKIP
|
|
2d430b66f84a19c154725ec535280c493be1d34f1a90f95208dce02fecd0e4e4) # gold-warn-unsupported.patch
|
|
# fd33b2f8cac7561cecf3fdbb5a50fd2f2dfa6420516cbe57c47784a06fa16bf6) # fix-incorrect-undefined-symbol.patch
|
|
|