[PATCH] connman, vpn: avoid hiding implementation-reserved symbols

"P. Tatrai" <[email protected]> Sun, 7 Sep 2025 10:18:44 +0200
Newsgroups dev.linux.lists.connman
Message-ID <[email protected]>
From: Peter Tatrai <[email protected]>

When using 'local: *;' in the version script, all symbols, including those
reserved for the implementation (such as _IO_stdin_used), are hidden. This
causes glibc's libio to misdetect the libc version, leading to a crash when
glibc prints to stdout (e.g., with connmand --help) on PowerPC.

Change 'local: *;' to 'local: [!_]*;' to avoid hiding symbols starting with an
underscore, as recommended in glibc bug 17908
(https://sourceware.org/bugzilla/show_bug.cgi?id=17908). This ensures libio can
correctly detect the libc version and prevents the crash.

Reference: https://sourceware.org/bugzilla/show_bug.cgi?id=17908

Signed-off-by: Peter Tatrai <[email protected]>
---
 src/connman.ver | 2 +-
 vpn/vpn.ver     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/connman.ver b/src/connman.ver
index 03a0eec0..b75e90dc 100644
--- a/src/connman.ver
+++ b/src/connman.ver
@@ -3,5 +3,5 @@
 		connman_*;
 		g_dbus_*;
 	local:
-		*;
+		[!_]*;
 };
diff --git a/vpn/vpn.ver b/vpn/vpn.ver
index b8877064..5cad344c 100644
--- a/vpn/vpn.ver
+++ b/vpn/vpn.ver
@@ -4,5 +4,5 @@
 		vpn_*;
 		g_dbus_*;
 	local:
-		*;
+		[!_]*;
 };
-- 
2.39.5