mirror of
https://git.yoctoproject.org/poky
synced 2026-03-17 04:39:40 +01:00
gobject-introspection: do not export LD_LIBRARY_PATH prior to running qemu
Latest g-i upstream adds target paths to this variable which breaks qemu in various confusing ways. Instead, the list of target library paths is exported to GIR_EXTRA_LIBS_PATH, so that it can be picked up automatically by the qemu wrapper script and given to qemu (manually setting this variable from various recipes will be removed in a different patch). Also, re-enable parts of g-i on mips64, as it is the same issue. (From OE-Core rev: 58d31dddebbf7116e71bf45bd374a7a988f6016c) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
a91b286291
commit
0d40074b7c
@@ -0,0 +1,73 @@
|
||||
From a02076fe916ade6c3f78f6d35072ec53482e9446 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
Date: Wed, 3 Jan 2018 17:02:01 +0200
|
||||
Subject: [PATCH] giscanner: add a --lib-dirs-envvar option
|
||||
|
||||
By default LD_LIBRARY_PATH is set to the list of target library paths;
|
||||
this breaks down in cross-compilation environment, as we need to run a
|
||||
native emulation wrapper rather than the target binary itself. This patch
|
||||
allows exporting those paths to a different environment variable
|
||||
which can be picked up and used by the wrapper.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
---
|
||||
giscanner/ccompiler.py | 6 ++++--
|
||||
giscanner/dumper.py | 3 ++-
|
||||
giscanner/scannermain.py | 3 +++
|
||||
3 files changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/giscanner/ccompiler.py b/giscanner/ccompiler.py
|
||||
index 29de0ee..e969337 100644
|
||||
--- a/giscanner/ccompiler.py
|
||||
+++ b/giscanner/ccompiler.py
|
||||
@@ -109,14 +109,16 @@ class CCompiler(object):
|
||||
|
||||
self._cflags_no_deprecation_warnings = "-Wno-deprecated-declarations"
|
||||
|
||||
- def get_internal_link_flags(self, args, libtool, libraries, extra_libraries, libpaths):
|
||||
+ def get_internal_link_flags(self, args, libtool, libraries, extra_libraries, libpaths, lib_dirs_envvar):
|
||||
# An "internal" link is where the library to be introspected
|
||||
# is being built in the current directory.
|
||||
|
||||
runtime_path_envvar = []
|
||||
runtime_paths = []
|
||||
|
||||
- if self.check_is_msvc():
|
||||
+ if lib_dirs_envvar:
|
||||
+ runtime_path_envvar = [lib_dirs_envvar]
|
||||
+ elif self.check_is_msvc():
|
||||
runtime_path_envvar = ['LIB', 'PATH']
|
||||
else:
|
||||
runtime_path_envvar = ['LD_LIBRARY_PATH']
|
||||
diff --git a/giscanner/dumper.py b/giscanner/dumper.py
|
||||
index 7f77bd2..db96df6 100644
|
||||
--- a/giscanner/dumper.py
|
||||
+++ b/giscanner/dumper.py
|
||||
@@ -259,7 +259,8 @@ class DumpCompiler(object):
|
||||
libtool,
|
||||
self._options.libraries,
|
||||
self._options.extra_libraries,
|
||||
- self._options.library_paths)
|
||||
+ self._options.library_paths,
|
||||
+ self._options.lib_dirs_envvar)
|
||||
args.extend(pkg_config_libs)
|
||||
|
||||
else:
|
||||
diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
|
||||
index 38a45c1..b603850 100755
|
||||
--- a/giscanner/scannermain.py
|
||||
+++ b/giscanner/scannermain.py
|
||||
@@ -130,6 +130,9 @@ def _get_option_parser():
|
||||
parser.add_option("", "--use-ldd-wrapper",
|
||||
action="store", dest="ldd_wrapper", default=None,
|
||||
help="wrapper to use instead of ldd (useful when cross-compiling)")
|
||||
+ parser.add_option("", "--lib-dirs-envvar",
|
||||
+ action="store", dest="lib_dirs_envvar", default=None,
|
||||
+ help="environment variable to write a list of library directories to (for running the transient binary), instead of standard LD_LIBRARY_PATH")
|
||||
parser.add_option("", "--program-arg",
|
||||
action="append", dest="program_args", default=[],
|
||||
help="extra arguments to program")
|
||||
--
|
||||
2.15.1
|
||||
|
||||
@@ -14,6 +14,7 @@ SRC_URI = "${GNOME_MIRROR}/${BPN}/1.54/${BPN}-${PV}.tar.xz \
|
||||
file://0003-giscanner-add-use-binary-wrapper-option.patch \
|
||||
file://0004-giscanner-add-a-use-ldd-wrapper-option.patch \
|
||||
file://0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch \
|
||||
file://0001-giscanner-add-a-lib-dirs-envvar-option.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "126c29e4d54adbed2ed4e2b04483de41"
|
||||
SRC_URI[sha256sum] = "b88ded5e5f064ab58a93aadecd6d58db2ec9d970648534c63807d4f9a7bb877e"
|
||||
@@ -71,7 +72,7 @@ EOF
|
||||
# This prevents g-ir-scanner from writing cache data to $HOME
|
||||
export GI_SCANNER_DISABLE_CACHE=1
|
||||
|
||||
g-ir-scanner --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_DATADIR}/gir-1.0 "\$@"
|
||||
g-ir-scanner --lib-dirs-envvar=GIR_EXTRA_LIBS_PATH --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_DATADIR}/gir-1.0 "\$@"
|
||||
EOF
|
||||
chmod +x ${B}/g-ir-scanner-wrapper
|
||||
|
||||
|
||||
@@ -15,7 +15,3 @@ PACKAGES =+ "${PN}-examples"
|
||||
FILES_${PN} += "${libdir}/gstreamer-1.0/lib*.so"
|
||||
FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
|
||||
FILES_${PN}-examples = "${bindir}/video-player ${bindir}/video-sink"
|
||||
|
||||
# Needs to be disable due to a dependency on gstreamer-plugins introspection files
|
||||
EXTRA_OECONF_append_mips64 = " --disable-introspection "
|
||||
|
||||
|
||||
@@ -49,6 +49,3 @@ patch_gtk_doc_makefiles() {
|
||||
do_configure[prefuncs] += " delete_pkg_m4_file patch_gtk_doc_makefiles"
|
||||
|
||||
PACKAGES_DYNAMIC = "^${PN}-.*"
|
||||
|
||||
# qemu-mips64: error while loading shared libraries: .../recipe-sysroot/usr/lib/libgthread-2.0.so.0: ELF file data encoding not little-endian
|
||||
EXTRA_OECONF_append_mips64 = " --disable-introspection "
|
||||
|
||||
@@ -36,5 +36,3 @@ patch_gtk_doc_makefiles() {
|
||||
|
||||
do_configure[prefuncs] += " delete_pkg_m4_file patch_gtk_doc_makefiles"
|
||||
|
||||
# Needs to be disable due to a dependency on gstreamer-plugins introspection files
|
||||
EXTRA_OECONF_append_mips64 = " --disable-introspection "
|
||||
|
||||
Reference in New Issue
Block a user