about summary refs log tree commit diff
path: root/debian
diff options
context:
space:
mode:
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog10
-rw-r--r--debian/patches/Export-_IO_stdin_used-symbol-in-NetworkManager.ver.patch36
-rw-r--r--debian/patches/series1
3 files changed, 47 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index eb00b2dd..d38a964c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+network-manager (1.4.0-3) UNRELEASED; urgency=medium
+
+  * Export _IO_stdin_used symbol in NetworkManager.ver.
+    This symbol is required to decide which version of certain IO functions
+    to use on various architectures. So we can't strip away the symbol from
+    the NetworkManager binary as this will lead to segfaults on those
+    architectures. (Closes: #835550)
+
+ -- Michael Biebl <biebl@debian.org>  Sun, 28 Aug 2016 15:49:46 +0200
+
 network-manager (1.4.0-2) unstable; urgency=medium
 
   * Correctly set the connectivity state if we enforce online mode with
diff --git a/debian/patches/Export-_IO_stdin_used-symbol-in-NetworkManager.ver.patch b/debian/patches/Export-_IO_stdin_used-symbol-in-NetworkManager.ver.patch
new file mode 100644
index 00000000..999494d4
--- /dev/null
+++ b/debian/patches/Export-_IO_stdin_used-symbol-in-NetworkManager.ver.patch
@@ -0,0 +1,36 @@
+From: Michael Biebl <biebl@debian.org>
+Date: Sat, 27 Aug 2016 23:40:42 +0200
+Subject: Export _IO_stdin_used symbol in NetworkManager.ver
+
+This symbol is required to decide which version of certain IO functions
+to use on various architectures. So we can't strip away the symbol from
+the NetworkManager binary as this will lead to segfaults on those
+architectures.
+
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=835550
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=770515
+---
+ src/NetworkManager.ver | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/NetworkManager.ver b/src/NetworkManager.ver
+index c91affc..d5358e5 100644
+--- a/src/NetworkManager.ver
++++ b/src/NetworkManager.ver
+@@ -5,6 +5,16 @@ global:
+ 	_nm*;
+ 	NM*;
+ 	_NM*;
++
++	/* The _IO_stdin_used symbol is used by the GNU libc to determine
++	   which version of the I/O function should be used.  Not
++	   exporting it means that the "old" version is used, causing
++	   crashes or other issues on some architectures.  It should be
++	   exported as an anonymous tag, but ld does not support mixing
++	   anonymous version tags with other version tags.  Fortunately
++	   the GNU libc is able to cope with the symbol having the wrong
++	   version tag. */
++	_IO_stdin_used;
+ local:
+ 	*;
+ };
diff --git a/debian/patches/series b/debian/patches/series
index 140a0339..404165cc 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,3 +4,4 @@ fix-arping-path.patch
 Don-t-make-NetworkManager-D-Bus-activatable.patch
 systemd-Don-t-enable-NetworkManager-wait-online.service-s.patch
 Fix-iscsiadm-path.patch
+Export-_IO_stdin_used-symbol-in-NetworkManager.ver.patch