On Thu, 27 Jan 2022 at 19:09, Khem Raj <raj.khem@gmail.com> wrote:
On Thu, Jan 27, 2022 at 2:21 AM Alexander Kanavin
<alex.kanavin@gmail.com> wrote:
>
> g-i internally processes the output with regexes, and seems
> happy with what objdump is printing. It only needs to resolve
> the library name as passed to the linker to the library file name.
> Also recursive resolution (that ldd is doing and objdump is not)
> is not necessary.
>

thanks for doing this, it further unbolts prelink from core metaddata.
Objdump -p is good, does it use it from binutils-cross ?

$OBJDUMP is set to the executable from there, yes.

Alex

 

> Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> ---
>  meta/classes/gobject-introspection.bbclass    |  2 +-
>  ...-error-return-codes-from-ldd-wrapper.patch | 28 -------------------
>  .../gobject-introspection_1.70.0.bb           | 14 ++--------
>  3 files changed, 3 insertions(+), 41 deletions(-)
>  delete mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch
>
> diff --git a/meta/classes/gobject-introspection.bbclass b/meta/classes/gobject-introspection.bbclass
> index 4db1b362d9..7bf9feb0d6 100644
> --- a/meta/classes/gobject-introspection.bbclass
> +++ b/meta/classes/gobject-introspection.bbclass
> @@ -29,7 +29,7 @@ EXTRA_OEMESON:prepend:class-nativesdk = "${@['', '${GIRMESONBUILD}'][d.getVar('G
>
>  # Generating introspection data depends on a combination of native and target
>  # introspection tools, and qemu to run the target tools.
> -DEPENDS:append:class-target = " gobject-introspection gobject-introspection-native qemu-native prelink-native"
> +DEPENDS:append:class-target = " gobject-introspection gobject-introspection-native qemu-native"
>
>  # Even though introspection is disabled on -native, gobject-introspection package is still
>  # needed for m4 macros.
> diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch
> deleted file mode 100644
> index b484b5e9e6..0000000000
> --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -From f742da8b3913f4818d3f419117076afe62f4dbf4 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>
> -
> ----
> - giscanner/shlibs.py | 2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> -
> -diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py
> -index d67df95..80352a6 100644
> ---- a/giscanner/shlibs.py
> -+++ b/giscanner/shlibs.py
> -@@ -102,7 +102,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")
> -
> diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.70.0.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.70.0.bb
> index d4ee03d33c..4f72a33bfa 100644
> --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.70.0.bb
> +++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.70.0.bb
> @@ -14,7 +14,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \
>                      "
>
>  SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \
> -           file://0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch \
>             file://0001-build-Avoid-the-doctemplates-hack.patch \
>             "
>
> @@ -33,9 +32,7 @@ DEPENDS += " libffi zlib glib-2.0 python3 flex-native bison-native autoconf-arch
>  # target build needs qemu to run temporary introspection binaries created
>  # on the fly by g-ir-scanner and a native version of itself to run
>  # native versions of its own tools during build.
> -# Also prelink-rtld is used to find out library dependencies of introspection binaries
> -# (standard ldd doesn't work when cross-compiling).
> -DEPENDS:append:class-target = " gobject-introspection-native qemu-native prelink-native"
> +DEPENDS:append:class-target = " gobject-introspection-native qemu-native"
>
>  # needed for writing out the qemu wrapper script
>  export STAGING_DIR_HOST
> @@ -55,13 +52,6 @@ EXTRA_OEMESON:class-target = " \
>      ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \
>  "
>
> -# Need to ensure ld.so.conf exists so prelink-native works
> -# both before we build and if we install from sstate
> -do_configure[prefuncs] += "gobject_introspection_preconfigure"
> -python gobject_introspection_preconfigure () {
> -    oe.utils.write_ld_so_conf(d)
> -}
> -
>  do_configure:prepend:class-native() {
>          # Tweak the native python scripts so that they don't refer to the
>          # full path of native python binary (the solution is taken from glib-2.0 recipe)
> @@ -113,7 +103,7 @@ EOF
>          # for a different architecture
>          cat > ${B}/g-ir-scanner-lddwrapper << EOF
>  #!/bin/sh
> -prelink-rtld --root=$STAGING_DIR_HOST "\$@"
> +$OBJDUMP -p "\$@"
>  EOF
>          chmod +x ${B}/g-ir-scanner-lddwrapper
>
> --
> 2.20.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#161039): https://lists.openembedded.org/g/openembedded-core/message/161039
> Mute This Topic: https://lists.openembedded.org/mt/88718372/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>