152 lines
4.6 KiB
Bash
152 lines
4.6 KiB
Bash
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
|
# Contributor: Martell Malone <martellmalone@gmail.com>
|
|
|
|
_realname=binutils
|
|
_mingw_suff=mingw-w64-cross
|
|
_targetpkgs=("${_mingw_suff}-ucrt64-${_realname}" "${_mingw_suff}-mingw32-${_realname}" "${_mingw_suff}-mingw64-${_realname}")
|
|
pkgname=("${_mingw_suff}-${_realname}" "${_mingw_suff}-common-${_realname}" "${_targetpkgs[@]}")
|
|
pkgver=2.44
|
|
pkgrel=1
|
|
pkgdesc="A set of programs to assemble and manipulate binary and object files"
|
|
arch=('i686' 'x86_64')
|
|
url="https://www.gnu.org/software/binutils/"
|
|
msys2_references=(
|
|
"cpe: cpe:/a:gnu:binutils"
|
|
)
|
|
license=('GPL')
|
|
groups=("${_mingw_suff}-toolchain" "${_mingw_suff}")
|
|
depends=("libiconv" "zlib" "libzstd" "libintl")
|
|
checkdepends=('dejagnu' 'bc')
|
|
makedepends=("libiconv-devel" "zlib-devel" 'autotools' 'gcc' 'libzstd-devel' 'gettext-devel')
|
|
options=('staticlibs' '!distcc' '!ccache' '!buildflags')
|
|
source=(https://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.xz{,.sig}
|
|
0002-check-for-unusual-file-harder.patch
|
|
0010-bfd-Increase-_bfd_coff_max_nscns-to-65279.patch)
|
|
sha256sums=('ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237'
|
|
'SKIP'
|
|
'2c99345fc575c3a060d6677537f636c6c4154fac0fde508070f3b6296c1060d4'
|
|
'4e8ac055df61b1b5d6ae29dc87e1154737c2e87c7b244b44866702cabf1a5d18')
|
|
validpgpkeys=('EAF1C276A747E9ED86210CBAC3126D3B4AE55E93'
|
|
'3A24BC1E8FB409FA9F14371813FCEF89DD9E3C4F')
|
|
msys2_references=(
|
|
'archlinux: binutils'
|
|
)
|
|
|
|
apply_patch_with_msg() {
|
|
for _patch in "$@"
|
|
do
|
|
msg2 "Applying ${_patch}"
|
|
patch -p1 -i "${srcdir}/${_patch}"
|
|
done
|
|
}
|
|
|
|
prepare() {
|
|
cd ${srcdir}/binutils-${pkgver}
|
|
|
|
apply_patch_with_msg \
|
|
0002-check-for-unusual-file-harder.patch \
|
|
0010-bfd-Increase-_bfd_coff_max_nscns-to-65279.patch
|
|
}
|
|
|
|
_build() {
|
|
_target=$1
|
|
mkdir -p ${srcdir}/binutils-build-${_target} && cd ${srcdir}/binutils-build-${_target}
|
|
|
|
local _conf='--enable-lto'
|
|
|
|
if [ "${_target}" != "i686-w64-mingw32" ]; then
|
|
_conf+=' --enable-64-bit-bfd'
|
|
fi
|
|
|
|
MSYSTEM=CYGWIN
|
|
${srcdir}/binutils-${pkgver}/configure \
|
|
--build=${CHOST} \
|
|
--host=${CHOST} \
|
|
--target=${_target} \
|
|
--disable-dependency-tracking \
|
|
--prefix=/opt \
|
|
--disable-werror \
|
|
--with-libiconv-prefix=/usr \
|
|
--with-system-zlib \
|
|
$_conf
|
|
|
|
make
|
|
}
|
|
|
|
_check() {
|
|
_target=$1
|
|
cd ${srcdir}/binutils-build-${_target}
|
|
|
|
# unset LDFLAGS as testsuite makes assumptions about which ones are active
|
|
# do not abort on errors - manually check log files
|
|
make LDFLAGS="" -k check || true
|
|
}
|
|
|
|
_package() {
|
|
_target=$1
|
|
cd ${srcdir}/binutils-build-${_target}
|
|
make DESTDIR=${pkgdir} install
|
|
rm -rf "${pkgdir}/opt/share/info"
|
|
rm -rf "${pkgdir}/opt/share/locale"
|
|
rm -rf "${pkgdir}/opt/lib"
|
|
}
|
|
|
|
build() {
|
|
for _pkg in "${_targetpkgs[@]}"; do
|
|
case "$_pkg" in
|
|
"${_mingw_suff}-ucrt64-${_realname}") _build "x86_64-w64-mingw32ucrt" ;;
|
|
"${_mingw_suff}-mingw32-${_realname}") _build "i686-w64-mingw32" ;;
|
|
"${_mingw_suff}-mingw64-${_realname}") _build "x86_64-w64-mingw32" ;;
|
|
"${_mingw_suff}-mingwarm64-${_realname}") _build "aarch64-w64-mingw32" ;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
check() {
|
|
for _pkg in "${_targetpkgs[@]}"; do
|
|
case "$_pkg" in
|
|
"${_mingw_suff}-ucrt64-${_realname}") _check "x86_64-w64-mingw32ucrt" ;;
|
|
"${_mingw_suff}-mingw32-${_realname}") _check "i686-w64-mingw32" ;;
|
|
"${_mingw_suff}-mingw64-${_realname}") _check "x86_64-w64-mingw32" ;;
|
|
"${_mingw_suff}-mingwarm64-${_realname}") _check "aarch64-w64-mingw32" ;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
package_mingw-w64-cross-binutils() {
|
|
pkgdesc+=" (meta package, for backward compatibility)"
|
|
depends=("${_targetpkgs[@]}")
|
|
}
|
|
|
|
package_mingw-w64-cross-common-binutils() {
|
|
pkgdesc+=" (common files for all targets)"
|
|
conflicts=("${_mingw_suff}-${_realname}<=2.43-1")
|
|
|
|
_target="x86_64-w64-mingw32"
|
|
cd ${srcdir}/binutils-build-${_target}
|
|
make DESTDIR="${srcdir}/temp" install
|
|
|
|
mkdir -p "${pkgdir}/opt/share"
|
|
mv "${srcdir}/temp/opt/share/locale" "${pkgdir}/opt/share/locale"
|
|
mv "${srcdir}/temp/opt/share/info" "${pkgdir}/opt/share/info"
|
|
mv "${srcdir}/temp/opt/lib" "${pkgdir}/opt/lib"
|
|
}
|
|
|
|
package_mingw-w64-cross-ucrt64-binutils() {
|
|
conflicts=("${_mingw_suff}-${_realname}<=2.43-1")
|
|
depends+=("${_mingw_suff}-common-${_realname}")
|
|
_package "x86_64-w64-mingw32ucrt"
|
|
}
|
|
|
|
package_mingw-w64-cross-mingw32-binutils() {
|
|
conflicts=("${_mingw_suff}-${_realname}<=2.43-1")
|
|
depends+=("${_mingw_suff}-common-${_realname}")
|
|
_package "i686-w64-mingw32"
|
|
}
|
|
|
|
package_mingw-w64-cross-mingw64-binutils() {
|
|
conflicts=("${_mingw_suff}-${_realname}<=2.43-1")
|
|
depends+=("${_mingw_suff}-common-${_realname}")
|
|
_package "x86_64-w64-mingw32"
|
|
}
|