From eac489c872c775c88bbd85b4cec6c1d47ad9e6a6 Mon Sep 17 00:00:00 2001
From: Peter Tatrai <peter.tatrai.ext@siemens.com>
Date: Sun, 7 Sep 2025 09:25:20 +0200
Subject: [PATCH] connman, vpn: avoid hiding implementation-reserved symbols

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

Upstream-Status: Submitted [https://lore.kernel.org/connman/20250907081844.1558-1-peter.tatrai.ext@siemens.com/]

Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com>
---
 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 03a0eec..b75e90d 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 b887706..5cad344 100644
--- a/vpn/vpn.ver
+++ b/vpn/vpn.ver
@@ -4,5 +4,5 @@
 		vpn_*;
 		g_dbus_*;
 	local:
-		*;
+		[!_]*;
 };
-- 
2.47.2

