[meta-oe][PATCH 2/2] libtinyxml2: restore building shared library


Martin Jansa
 

* since the upgrade to 8.1.0 which includes:
https://github.com/leethomason/tinyxml2/commit/7df6b3ff4ab3e3cec7a242fa5f8749decd129e13
it no longer produces shared libraries by default and linking
with static one will often fail, e.g.:

rosbag2-storage/0.2.4-1-r0/recipe-sysroot/usr/lib/libtinyxml2.a(tinyxml2.cpp.o): relocation R_ARM_THM_MOVW_ABS_NC against `_ZN8tinyxml210XMLPrinter11CompactModeERKNS_10XMLElementE' can not be used when making a shared object; recompile with -fPIC
rosbag2-storage/0.2.4-1-r0/recipe-sysroot/usr/lib/libtinyxml2.a(tinyxml2.cpp.o)(.text+0x162): unresolvable R_ARM_THM_CALL relocation against symbol `vfprintf@@GLIBC_2.4'

fastrtps/1.9.3-2-r0/recipe-sysroot/usr/lib/libtinyxml2.a(tinyxml2.cpp.o): relocation R_ARM_THM_MOVW_ABS_NC against `_ZN8tinyxml210XMLPrinter11CompactModeERKNS_10XMLElementE' can not be used when making a shared object; recompile with -fPIC
fastrtps/1.9.3-2-r0/recipe-sysroot/usr/lib/libtinyxml2.a(tinyxml2.cpp.o)(.text+0x162): unresolvable R_ARM_THM_CALL relocation against symbol `vfprintf@@GLIBC_2.4'

fastrtps-native/1.9.3-2-r0/recipe-sysroot-native/usr/lib/libtinyxml2.a(tinyxml2.cpp.o): relocation R_X86_64_PC32 against symbol `_ZN8tinyxml27StrPair5ResetEv' can not be used when making a shared object; recompile with -fPIC

* restore building shared library as 8.0.0 did

* it also fixes PN package being empty:

diff --git a/packages/core2-64-webos-linux/libtinyxml2/libtinyxml2/latest b/packages/core2-64-webos-linux/libtinyxml2/libtinyxml2/latest
index 594585fe..496a109d 100644
--- a/packages/core2-64-webos-linux/libtinyxml2/libtinyxml2/latest
+++ b/packages/core2-64-webos-linux/libtinyxml2/libtinyxml2/latest
@@ -1,9 +1,8 @@
-PV = 8.0.0
+PV = 8.1.0
PR = r0
-PKG = libtinyxml2-8
-RPROVIDES = libtinyxml2 (=8.0.0)
-RDEPENDS = glibc (>= 2.33) libgcc (>= 11.1.0) libstdc++ (>= 11.1.0)
+RPROVIDES =
+RDEPENDS =
RRECOMMENDS = libtinyxml2-lic
-PKGSIZE = 90076
+PKGSIZE = 0
FILES = /usr/bin/* /usr/sbin/* /usr/libexec/* /usr/lib/lib*.so.* /etc /com /var /bin/* /sbin/* /lib/*.so.* /lib/udev /usr/lib/udev /lib/udev /usr/lib/udev /usr/share/libtinyxml2 /usr/lib/libtinyxml2/* /usr/share/pixmaps /usr/share/applications /usr/share/idl /usr/share/omf /usr/share/sounds /usr/lib/bonobo/servers
-FILELIST = /usr/lib/libtinyxml2.so.8 /usr/lib/libtinyxml2.so.8.0.0
+FILELIST =

Signed-off-by: Martin Jansa <Martin.Jansa@...>
---
meta-oe/recipes-support/libtinyxml2/libtinyxml2_8.1.0.bb | 2 ++
1 file changed, 2 insertions(+)

diff --git a/meta-oe/recipes-support/libtinyxml2/libtinyxml2_8.1.0.bb b/meta-oe/recipes-support/libtinyxml2/libtinyxml2_8.1.0.bb
index fea5aeff17..5245059a89 100644
--- a/meta-oe/recipes-support/libtinyxml2/libtinyxml2_8.1.0.bb
+++ b/meta-oe/recipes-support/libtinyxml2/libtinyxml2_8.1.0.bb
@@ -13,3 +13,5 @@ S = "${WORKDIR}/git"
inherit cmake

BBCLASSEXTEND = "native"
+
+EXTRA_OECMAKE += "-Dtinyxml2_SHARED_LIBS=YES"
--
2.30.2

Join openembedded-devel@lists.openembedded.org to automatically receive all group messages.