diff mbox series

[meta-oe] jansson: fix a symbol clash when building with cmake

Message ID 20250116115755.30622-1-jaeyoon.jung@lge.com
State Accepted
Headers show
Series [meta-oe] jansson: fix a symbol clash when building with cmake | expand

Commit Message

jaeyoon.jung@lge.com Jan. 16, 2025, 11:57 a.m. UTC
From: Jaeyoon Jung <jaeyoon.jung@lge.com>

It exports all symbols globally which results in a symbol clash, for
example "hashtable_del" of ulogd2. It has been revealed because the
recipe inherits cmake over autotools since Langdale.
This fixes it by specifying visibility scope of symbols in its version
script which matches what is given with the libtool flag
'-export-symbols-regex' in Makefile.am.

Signed-off-by: Jaeyoon Jung <jaeyoon.jung@lge.com>
---
 ...ols-starting-with-json_-and-jansson_.patch | 30 +++++++++++++++++++
 .../recipes-extended/jansson/jansson_2.14.bb  |  1 +
 2 files changed, 31 insertions(+)
 create mode 100644 meta-oe/recipes-extended/jansson/jansson/0001-Only-export-symbols-starting-with-json_-and-jansson_.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-extended/jansson/jansson/0001-Only-export-symbols-starting-with-json_-and-jansson_.patch b/meta-oe/recipes-extended/jansson/jansson/0001-Only-export-symbols-starting-with-json_-and-jansson_.patch
new file mode 100644
index 0000000000..30b30b8850
--- /dev/null
+++ b/meta-oe/recipes-extended/jansson/jansson/0001-Only-export-symbols-starting-with-json_-and-jansson_.patch
@@ -0,0 +1,30 @@ 
+From e5c38614fb7e0bdbcaec6db6133fa62cfed62818 Mon Sep 17 00:00:00 2001
+From: Jaeyoon Jung <jaeyoon.jung@lge.com>
+Date: Wed, 15 Jan 2025 22:11:54 +0900
+Subject: [PATCH] Only export symbols starting with "json_" and "jansson_" for
+ cmake
+
+It's already done by the commit 7c707a7 and bcb6b6f, but not for cmake.
+This makes symbols in the same visibility as built with libtool.
+
+Upstream-Status: Submitted [https://github.com/akheron/jansson/pull/704]
+Signed-off-by: Jaeyoon Jung <jaeyoon.jung@lge.com>
+---
+
+ CMakeLists.txt | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3394236..52b9934 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -325,6 +325,9 @@ if(JANSSON_BUILD_SHARED_LIBS)
+ # some linkers may only support --version-script
+       file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/jansson.sym" "JANSSON_${JANSSON_SOVERSION} {
+     global:
++          json_*;
++          jansson_*;
++    local:
+           *;
+ };
+ ")
diff --git a/meta-oe/recipes-extended/jansson/jansson_2.14.bb b/meta-oe/recipes-extended/jansson/jansson_2.14.bb
index 9f5cdcf4c0..4ac30c4dba 100644
--- a/meta-oe/recipes-extended/jansson/jansson_2.14.bb
+++ b/meta-oe/recipes-extended/jansson/jansson_2.14.bb
@@ -8,6 +8,7 @@  SRC_URI = "https://github.com/akheron/${BPN}/releases/download/v${PV}/${BP}.tar.
            file://0001-Fix-overwriting-linker-flags.patch \
            file://0001-Honour-multilib-paths.patch \
            file://0001-add-back-JSON_INTEGER_IS_LONG_LONG-for-cmake.patch \
+           file://0001-Only-export-symbols-starting-with-json_-and-jansson_.patch \
            "
 SRC_URI[sha256sum] = "fba956f27c6ae56ce6dfd52fbf9d20254aad42821f74fa52f83957625294afb9"