[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#787867: jessie-pu: package binutils-mingw-w64/5.2



Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian.org@packages.debian.org
Usertags: pu

Hi,

binutils-mingw-w64/5.2 in Jessie suffers from #787162: ld breaks with
DLLs and libraries built with Visual Studio. This makes the mingw-w64
toolchain in Jessie effectively useless for people working with such
files.

The attached patch fixes this (as has been confirmed by #787162's
submitter). It's the upstream patch which is included in newer
versions of binutils and is already available in Stretch.

Would it be OK to upload a fixed version of binutils-mingw-w64 to
stable-proposed-updates?

Regards,

Stephen

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (500, 'testing'), (500, 'stable'), (200, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff --git a/debian/changelog b/debian/changelog
index 3ea00d4..7c2f748 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+binutils-mingw-w64 (5.2+deb8u1) stable; urgency=medium
+
+  * Apply upstream fix to handle Visual Studio DLLs (Closes: #787162).
+
+ -- Stephen Kitt <skitt@debian.org>  Thu, 04 Jun 2015 07:17:38 +0200
+
 binutils-mingw-w64 (5.2) unstable; urgency=high
 
   * Rebuild against binutils 2.24.90.20141023-1 or later to fix
diff --git a/debian/patches/handle-visual-studio-dlls.patch b/debian/patches/handle-visual-studio-dlls.patch
new file mode 100644
index 0000000..fafcdab
--- /dev/null
+++ b/debian/patches/handle-visual-studio-dlls.patch
@@ -0,0 +1,31 @@
+From cdb602b17548eeebb5e700c507d734ea5f887a49 Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Fri, 27 Feb 2015 15:38:32 +0000
+Subject: [PATCH 1/1] Fixes a problem recognizing libraries created by Visual
+ Studio.
+
+	PR binutils/17910
+	* coffgen.c (_bfd_coff_internal_syment_name): Only check for
+	string length overflow when the string table length is actually
+	set.
+---
+
+diff --git a/bfd/coffgen.c b/bfd/coffgen.c
+index aa01559..83673d4 100644
+--- a/bfd/coffgen.c
++++ b/bfd/coffgen.c
+@@ -468,7 +468,10 @@ _bfd_coff_internal_syment_name (bfd *abfd,
+ 	  if (strings == NULL)
+ 	    return NULL;
+ 	}
+-      if (sym->_n._n_n._n_offset >= obj_coff_strings_len (abfd))
++      /* PR 17910: Only check for string overflow if the length has been set.
++	 Some DLLs, eg those produced by Visual Studio, may not set the length field.  */
++      if (obj_coff_strings_len (abfd) > 0
++	  && sym->_n._n_n._n_offset >= obj_coff_strings_len (abfd))
+ 	return NULL;
+       return strings + sym->_n._n_n._n_offset;
+     }
+-- 
+1.9.4
+
diff --git a/debian/rules b/debian/rules
index 50ea330..0bee1e9 100755
--- a/debian/rules
+++ b/debian/rules
@@ -32,6 +32,8 @@ unpack-stamp:
 	# Patch the testsuite (if necessary)
 	patch -d $(upstream_dir) -N -p2 < debian/patches/testsuite-64-bit.patch || true
 	patch -d $(upstream_dir) -N -p2 < debian/patches/testsuite-timeout.patch || true
+	# Handle Visual Studio DLLs (#787162, upstream PR binutils/17910)
+	patch -d $(upstream_dir) -p1 < debian/patches/handle-visual-studio-dlls.patch
 	# On big-endian architectures, disable the windres tests (#754829)
 	if [ "$$(dpkg-architecture -qDEB_HOST_ARCH_ENDIAN)" = "big" ]; then \
 		rm -f $(upstream_dir)/binutils/testsuite/binutils-all/windres/windres.exp; \

Reply to: