connman: avoid hiding implementation-reserved symbols in version scripts

This commit adds a patch to ConnMan that modifies the version scripts
(src/connman.ver and vpn/vpn.ver) to avoid hiding implementation-reserved
symbols (such as _IO_stdin_used). Previously, using 'local: *;' in the
version script caused glibc's libio to misdetect the libc version,
resulting in a crash when printing to stdout (e.g., running 'connmand
--help') on PowerPC.

The new patch changes 'local: *;' to 'local: [!_]*;', following the
recommendation in glibc bug 17908
(https://sourceware.org/bugzilla/show_bug.cgi?id=17908). This ensures
that symbols starting with an underscore are not hidden, allowing libio
to correctly detect the libc version and preventing the crash.

(From OE-Core rev: fb2e29fc6931dc03ec892908e8e22d869d992f76)

Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Peter Tatrai
2025-09-08 12:41:57 +02:00
committed by Richard Purdie
parent 069796b00e
commit 68b64fda69
2 changed files with 51 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
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

View File

@@ -21,6 +21,7 @@ DEPENDS = "dbus glib-2.0"
SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
file://connman \
file://no-version-scripts.patch \
file://0001-connman-vpn-avoid-hiding-implementation-reserved-sym.patch \
file://0002-resolve-musl-does-not-implement-res_ninit.patch \
"