From 52316607db82de95bc64bd76f4c1482425dd53ee Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Thu, 30 Jun 2022 08:45:36 +0200 Subject: added mingw-w32-binutils to build-support --- .../99852365513266afdd793289813e8e565186c9e6.patch | 36 +++++++++++++++ build-support/mingw-w32-binutils/PKGBUILD | 52 ++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 build-support/mingw-w32-binutils/99852365513266afdd793289813e8e565186c9e6.patch create mode 100644 build-support/mingw-w32-binutils/PKGBUILD diff --git a/build-support/mingw-w32-binutils/99852365513266afdd793289813e8e565186c9e6.patch b/build-support/mingw-w32-binutils/99852365513266afdd793289813e8e565186c9e6.patch new file mode 100644 index 00000000..485c1932 --- /dev/null +++ b/build-support/mingw-w32-binutils/99852365513266afdd793289813e8e565186c9e6.patch @@ -0,0 +1,36 @@ +From 99852365513266afdd793289813e8e565186c9e6 Mon Sep 17 00:00:00 2001 +From: Nick Clifton +Date: Wed, 23 Mar 2022 11:39:49 +0000 +Subject: [PATCH] dlltool: Use the output name as basis for deterministic temp + prefixes + + PR 28885 + * dlltool.c (main): use imp_name rather than dll_name when + generating a temporary file name. +--- + binutils/ChangeLog | 9 +++++++++ + binutils/dlltool.c | 7 ++++--- + 2 files changed, 13 insertions(+), 3 deletions(-) + +diff --git a/binutils/dlltool.c b/binutils/dlltool.c +index d95bf3f5470..89871510b45 100644 +--- a/binutils/dlltool.c ++++ b/binutils/dlltool.c +@@ -3992,10 +3992,11 @@ main (int ac, char **av) + if (tmp_prefix == NULL) + { + /* If possible use a deterministic prefix. */ +- if (dll_name) ++ if (imp_name || delayimp_name) + { +- tmp_prefix = xmalloc (strlen (dll_name) + 2); +- sprintf (tmp_prefix, "%s_", dll_name); ++ const char *input = imp_name ? imp_name : delayimp_name; ++ tmp_prefix = xmalloc (strlen (input) + 2); ++ sprintf (tmp_prefix, "%s_", input); + for (i = 0; tmp_prefix[i]; i++) + if (!ISALNUM (tmp_prefix[i])) + tmp_prefix[i] = '_'; +-- +2.31.1 + diff --git a/build-support/mingw-w32-binutils/PKGBUILD b/build-support/mingw-w32-binutils/PKGBUILD new file mode 100644 index 00000000..269fcd2b --- /dev/null +++ b/build-support/mingw-w32-binutils/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer: Felix Yan + +pkgname=mingw-w32-binutils +pkgver=2.38 +pkgrel=3 +pkgdesc="Cross binutils for the MinGW-w32 cross-compiler" +arch=(i486 i686 pentium4 'x86_64') +url="http://www.gnu.org/software/binutils" +license=('GPL') +groups=('mingw-w32-toolchain' 'mingw-w32') +depends=('zlib') +options=('!libtool' '!emptydirs') +validpgpkeys=('3A24BC1E8FB409FA9F14371813FCEF89DD9E3C4F') # Nick Clifton (Chief Binutils Maintainer) +source=("https://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.gz"{,.sig} + 99852365513266afdd793289813e8e565186c9e6.patch) +sha512sums=('5160ff5c2a0ad41b880384216e21ada5328b51378e760c04269eb3b3626400d12abeeea72c14e18b52b969a0be94c8e5285c0b568bd5c82b7e69f68e0dfdc743' + 'SKIP' + 'cdce2ac2666fe27973152748a0108475bd1c0bbfa1559116d42c6badcdb0a60258b2a01180e0b37a65bef8df520a795d105eb80d88ce1846d006b5ea818b2c60') + +_targets="i686-w32-mingw32" + +prepare() { + cd "$srcdir"/binutils-${pkgver} + patch -p1 -i ../99852365513266afdd793289813e8e565186c9e6.patch + #do not install libiberty + sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in +} + +build() { + for _target in $_targets; do + echo "Building ${_target} cross binutils" + mkdir -p "$srcdir"/binutils-${_target} && cd "${srcdir}/binutils-${_target}" + "$srcdir"/binutils-${pkgver}/configure --prefix=/usr \ + --target=${_target} \ + --infodir=/usr/share/info/${_target} \ + --enable-lto --enable-plugins \ + --enable-deterministic-archives \ + --disable-multilib --disable-nls \ + --disable-werror + make -O + done +} + +package() { + for _target in ${_targets}; do + echo "Installing ${_target} cross binutils" + cd "$srcdir"/binutils-${_target} + make DESTDIR="$pkgdir" install + + rm "$pkgdir"/usr/lib/bfd-plugins/libdep.so + done +} -- cgit v1.2.3-70-g09d2