Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/build-support/mingw-w32-binutils
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2022-06-30 08:45:36 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2022-06-30 08:45:36 +0200
commit52316607db82de95bc64bd76f4c1482425dd53ee (patch)
tree6383799e4af0159339980d032af1cd48b0656863 /build-support/mingw-w32-binutils
parentf9b7b7dc1e18809a3df84f130f2da3df1b8c4598 (diff)
added mingw-w32-binutils to build-support
Diffstat (limited to 'build-support/mingw-w32-binutils')
-rw-r--r--build-support/mingw-w32-binutils/99852365513266afdd793289813e8e565186c9e6.patch36
-rw-r--r--build-support/mingw-w32-binutils/PKGBUILD52
2 files changed, 88 insertions, 0 deletions
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 <nickc@redhat.com>
+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 <felixonmars@archlinux.org>
+
+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) <nickc@redhat.com>
+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
+}