summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2016-08-27 23:40:42 +0200
committerThomas Haller <thaller@redhat.com>2016-08-28 16:49:33 +0200
commit2f8ab8cd9fd2edb11b5c284c3aa97fd550314608 (patch)
tree8f970875081f93e45399bab694bed988829bfc7a
parentc90ec2d8c8a12b44c908bf7f80b23059c29f68fa (diff)
downloadNetworkManager-2f8ab8cd9fd2edb11b5c284c3aa97fd550314608.tar.gz
build: 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. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=835550 https://bugzilla.gnome.org/show_bug.cgi?id=770515
-rw-r--r--src/NetworkManager.ver10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/NetworkManager.ver b/src/NetworkManager.ver
index c91affcb5f..d5358e5c0c 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:
*;
};