package/gobject-introspection: use objdump instead of prelink-cross

This commit switches the gobject-introspection package from using
prelink-cross to simply using "objdump -p". This basically implements
the same change as was done in OpenEmbedded commit:

  https://git.openembedded.org/openembedded-core/commit/?id=767e0880d4d729e659e859dd99c1cdb084b8ba51

In particular, this allows to get rid of the architecture dependency
of prelink-cross, which wasn't currently encoded, but that was
actually causing failures such as:

/home/autobuild/autobuild/instance-17/output-1/host/sbin/prelink-rtld: error while loading shared libraries: /lib/libc.so.6: cannot handle TLS data

It also paves the way for removing host-prelink-cross entirely, as the
only remaining user of it now is dracut.

The test tests.package.test_python_gobject.TestPythonPy3Gobject (which
uses gobject-introspection) has been tested to run fine after this
commit.

Fixes:

  http://autobuild.buildroot.net/results/7efa6a18f543752dfe33577f74c20bda3f8b1e65/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Tested-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Thomas Petazzoni
2024-08-25 11:25:42 +02:00
committed by Yann E. MORIN
parent b6d023bdc2
commit 37801767f6
4 changed files with 3 additions and 35 deletions

View File

@@ -576,7 +576,6 @@ package/go/go-src/0001-build.go-explicit-option-for-crosscompilation.patch lib_p
package/gob2/0001-dont-include-from-prefix.patch lib_patch.Upstream
package/gobject-introspection/0001-disable-tests.patch lib_patch.Upstream
package/gobject-introspection/0002-Add-rpath-links-to-ccompiler.patch lib_patch.Upstream
package/gobject-introspection/0003-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch lib_patch.Upstream
package/gpsd/S50gpsd Shellcheck lib_sysv.Indent lib_sysv.Variables
package/gptfdisk/0001-gptcurses-partially-revert-Tweaks-for-building-on-th.patch lib_patch.Upstream
package/graphite2/0001-don-t-install-a-libtool-file-with-static-library.patch lib_patch.Upstream

View File

@@ -1,31 +0,0 @@
From e0fc4a2a5161a36483ddc518be9bb14390f11b19 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 5 Sep 2018 16:46:52 +0200
Subject: [PATCH] giscanner: ignore error return codes from ldd-wrapper
prelink-rtld, which we use instead of ldd returns 127 when it can't find a library.
It is not an error per se, but it breaks subprocess.check_output().
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Adam Duskett <aduskett@gmail.com>
---
giscanner/shlibs.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py
index 9f8ab5df..7a1a72fe 100644
--- a/giscanner/shlibs.py
+++ b/giscanner/shlibs.py
@@ -103,7 +103,7 @@ def _resolve_non_libtool(options, binary, libraries):
args.extend(['otool', '-L', binary.args[0]])
else:
args.extend(['ldd', binary.args[0]])
- output = subprocess.check_output(args)
+ output = subprocess.run(args, check=False, stdout=subprocess.PIPE).stdout
if isinstance(output, bytes):
output = output.decode("utf-8", "replace")
--
2.25.1

View File

@@ -1,3 +1,2 @@
#!/usr/bin/env sh
"${HOST_DIR}"/sbin/prelink-rtld --root="$(dirname "$0")/../../" "$@"
@TARGET_OBJDUMP@ -p "$@"

View File

@@ -15,7 +15,6 @@ GOBJECT_INTROSPECTION_LICENSE_FILES = COPYING.LGPL COPYING.GPL giscanner/scanner
GOBJECT_INTROSPECTION_DEPENDENCIES = \
host-autoconf-archive \
host-gobject-introspection \
host-prelink-cross \
host-qemu \
libffi \
libglib2 \
@@ -78,6 +77,8 @@ define GOBJECT_INTROSPECTION_INSTALL_PRE_WRAPPERS
$(INSTALL) -D -m 755 $(GOBJECT_INTROSPECTION_PKGDIR)/g-ir-scanner-lddwrapper.in \
$(STAGING_DIR)/usr/bin/g-ir-scanner-lddwrapper
$(SED) "s%@TARGET_OBJDUMP@%$(TARGET_OBJDUMP)%" \
$(STAGING_DIR)/usr/bin/g-ir-scanner-lddwrapper
$(INSTALL) -D -m 755 $(GOBJECT_INTROSPECTION_PKGDIR)/g-ir-scanner-qemuwrapper.in \
$(STAGING_DIR)/usr/bin/g-ir-scanner-qemuwrapper