diff options
| author | Peter Tatrai <peter.tatrai.ext@siemens.com> | 2025-09-08 12:41:57 +0200 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-09-11 11:31:56 +0100 |
| commit | 68b64fda696f0efd6df1a7e33694573e8fa337ed (patch) | |
| tree | 2d112233a2c01d58003534ae8f166e3b873f60a1 /meta/recipes-connectivity/connman | |
| parent | 069796b00e06596f54c506c76f1f2eeabc148737 (diff) | |
| download | poky-68b64fda696f0efd6df1a7e33694573e8fa337ed.tar.gz | |
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>
Diffstat (limited to 'meta/recipes-connectivity/connman')
| -rwxr-xr-x | meta/recipes-connectivity/connman/connman/0001-connman-vpn-avoid-hiding-implementation-reserved-sym.patch | 50 | ||||
| -rw-r--r-- | meta/recipes-connectivity/connman/connman_1.45.bb | 1 |
2 files changed, 51 insertions, 0 deletions
diff --git a/meta/recipes-connectivity/connman/connman/0001-connman-vpn-avoid-hiding-implementation-reserved-sym.patch b/meta/recipes-connectivity/connman/connman/0001-connman-vpn-avoid-hiding-implementation-reserved-sym.patch new file mode 100755 index 0000000000..3b7b5a096e --- /dev/null +++ b/meta/recipes-connectivity/connman/connman/0001-connman-vpn-avoid-hiding-implementation-reserved-sym.patch | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | From eac489c872c775c88bbd85b4cec6c1d47ad9e6a6 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Peter Tatrai <peter.tatrai.ext@siemens.com> | ||
| 3 | Date: Sun, 7 Sep 2025 09:25:20 +0200 | ||
| 4 | Subject: [PATCH] connman, vpn: avoid hiding implementation-reserved symbols | ||
| 5 | |||
| 6 | When using 'local: *;' in the version script, all symbols, including those | ||
| 7 | reserved for the implementation (such as _IO_stdin_used), are hidden. This | ||
| 8 | causes glibc's libio to misdetect the libc version, leading to a crash when | ||
| 9 | glibc prints to stdout (e.g., with connmand --help) on PowerPC. | ||
| 10 | |||
| 11 | Change 'local: *;' to 'local: [!_]*;' to avoid hiding symbols starting with an | ||
| 12 | underscore, as recommended in glibc bug 17908 | ||
| 13 | (https://sourceware.org/bugzilla/show_bug.cgi?id=17908). This ensures libio can | ||
| 14 | correctly detect the libc version and prevents the crash. | ||
| 15 | |||
| 16 | Reference: https://sourceware.org/bugzilla/show_bug.cgi?id=17908 | ||
| 17 | |||
| 18 | Upstream-Status: Submitted [https://lore.kernel.org/connman/20250907081844.1558-1-peter.tatrai.ext@siemens.com/] | ||
| 19 | |||
| 20 | Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com> | ||
| 21 | --- | ||
| 22 | src/connman.ver | 2 +- | ||
| 23 | vpn/vpn.ver | 2 +- | ||
| 24 | 2 files changed, 2 insertions(+), 2 deletions(-) | ||
| 25 | |||
| 26 | diff --git a/src/connman.ver b/src/connman.ver | ||
| 27 | index 03a0eec..b75e90d 100644 | ||
| 28 | --- a/src/connman.ver | ||
| 29 | +++ b/src/connman.ver | ||
| 30 | @@ -3,5 +3,5 @@ | ||
| 31 | connman_*; | ||
| 32 | g_dbus_*; | ||
| 33 | local: | ||
| 34 | - *; | ||
| 35 | + [!_]*; | ||
| 36 | }; | ||
| 37 | diff --git a/vpn/vpn.ver b/vpn/vpn.ver | ||
| 38 | index b887706..5cad344 100644 | ||
| 39 | --- a/vpn/vpn.ver | ||
| 40 | +++ b/vpn/vpn.ver | ||
| 41 | @@ -4,5 +4,5 @@ | ||
| 42 | vpn_*; | ||
| 43 | g_dbus_*; | ||
| 44 | local: | ||
| 45 | - *; | ||
| 46 | + [!_]*; | ||
| 47 | }; | ||
| 48 | -- | ||
| 49 | 2.47.2 | ||
| 50 | |||
diff --git a/meta/recipes-connectivity/connman/connman_1.45.bb b/meta/recipes-connectivity/connman/connman_1.45.bb index 85f14eb80e..ca0337b4d3 100644 --- a/meta/recipes-connectivity/connman/connman_1.45.bb +++ b/meta/recipes-connectivity/connman/connman_1.45.bb | |||
| @@ -21,6 +21,7 @@ DEPENDS = "dbus glib-2.0" | |||
| 21 | SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \ | 21 | SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \ |
| 22 | file://connman \ | 22 | file://connman \ |
| 23 | file://no-version-scripts.patch \ | 23 | file://no-version-scripts.patch \ |
| 24 | file://0001-connman-vpn-avoid-hiding-implementation-reserved-sym.patch \ | ||
| 24 | file://0002-resolve-musl-does-not-implement-res_ninit.patch \ | 25 | file://0002-resolve-musl-does-not-implement-res_ninit.patch \ |
| 25 | " | 26 | " |
| 26 | 27 | ||
