diff options
author | psykose <alice@ayaya.dev> | 2023-01-28 07:32:28 +0000 |
---|---|---|
committer | psykose <alice@ayaya.dev> | 2023-01-28 11:54:01 +0100 |
commit | 1bed0b5e8e418caf30ec7818f25c8db4c869f844 (patch) | |
tree | 37028cdeb569eebbf2ddefebe68651a321a09247 | |
parent | dff1ef163b3742bd15cea8f115efe62ed59f17ff (diff) |
community/mingw-w64-binutils: add 32-bit cross binutils on 64
-rw-r--r-- | community/mingw-w64-binutils/APKBUILD | 89 |
1 files changed, 56 insertions, 33 deletions
diff --git a/community/mingw-w64-binutils/APKBUILD b/community/mingw-w64-binutils/APKBUILD index 06e01210b2c..141a84d9cc4 100644 --- a/community/mingw-w64-binutils/APKBUILD +++ b/community/mingw-w64-binutils/APKBUILD @@ -2,58 +2,81 @@ # Maintainer: pkgname=mingw-w64-binutils pkgver=2.39 -pkgrel=0 +pkgrel=1 pkgdesc="Cross binutils for the MinGW-w64 cross-compiler" url="https://www.gnu.org/software/binutils" arch="x86_64 x86" license="GPL-3.0-or-later" -makedepends="zlib-dev perl texinfo" -subpackages="$pkgname-dbg $pkgname-doc" +makedepends="texinfo zlib-dev" source="$pkgname-$pkgver.tar.xz::https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz" builddir="$srcdir/binutils-$pkgver" -case "$CARCH" in - x86_64) _target="x86_64-w64-mingw32" ;; - x86) _target="i686-w64-mingw32" ;; -esac - -# Directory for out-of-tree builds -_binutilsdir="$srcdir/binutils-$_target" - # secfixes: # 2.36-r0: # - CVE-2020-35448 -prepare() { - default_prepare - - # Do not install libiberty - sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in - # hack! - libiberty configure tests for header files using "$CPP $CPPFLAGS" - sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure - - mkdir -p "$_binutilsdir" -} +case "$CARCH" in +x86_64) + _targets="x86_64-w64-mingw32 i686-w64-mingw32" + subpackages="$subpackages i686-$pkgname:x32" + ;; +x86) + _targets="i686-w64-mingw32" + ;; +esac build() { - cd "$_binutilsdir" - "$builddir"/configure \ - --prefix=/usr \ - --target=$_target \ - --infodir=/usr/share/info/$_target \ - --enable-lto --enable-plugins \ - --enable-deterministic-archives \ - --disable-multilib --disable-nls \ - --disable-werror - make + export CFLAGS="$CFLAGS -O2" + export CXXFLAGS="$CXXFLAGS -O2" + export CPPFLAGS="$CPPFLAGS -O2" + + local target + for target in $_targets; do + msg "building target: $target" + ( + local bld="$srcdir"/bld-$target + mkdir -p "$bld" + cd "$bld" + "$builddir"/configure \ + --prefix=/usr \ + --program-prefix=$target- \ + --target=$target \ + --enable-deterministic-archives \ + --enable-ld=default \ + --enable-plugins \ + --disable-default-execstack \ + --disable-gprofng \ + --disable-internal-libiberty \ + --disable-multilib \ + --disable-nls \ + --disable-shared \ + --disable-werror \ + --with-mmap \ + --with-system-zlib + make + ) + done } package() { - cd "$_binutilsdir" - make DESTDIR="$pkgdir" install + local target + for target in $_targets; do + make -C "$srcdir"/bld-$target DESTDIR="$pkgdir" install + done # delete bfd-plugins directory, so it does not conflict with host toolchain rm -rf "$pkgdir"/usr/lib/bfd-plugins + + # quite redundant given this is just regular binutils docs + rm -rf "$pkgdir"/usr/share/info + rm -rf "$pkgdir"/usr/share/man +} + +x32() { + pkgdesc="$pkgdesc (i686-mingw target)" + + amove usr/i686-w64-mingw32 + amove usr/bin/i686-w64-mingw32* } sha512sums=" |