]> code.ossystems Code Review - openembedded-core.git/commitdiff
gobject-introspection: Override GIO_MODULE_DIR when scanning
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 9 Mar 2016 16:38:54 +0000 (16:38 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 12 Mar 2016 22:11:17 +0000 (22:11 +0000)
This is to stop GLib linking to GConf and other modules (e.g gnutls).

If for example gconf is installed in the sysroot then GLib will use it by
default for the GSettings backend.  This will pull a lot more libraries into the
scanner processes and expands the potential for runtime issues since dependencies
may be missing of change since they're not in the dependency chain.

Use an invalid modules directory so we avoid loading any modules or the
libraries they link against which the system may be in the process of rebuilding.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb

index d51e607c0932f135848c5f07fa5b76718b7d5787..b8b88234e7aab1c29990353a0f64121f995f7c67 100644 (file)
@@ -53,6 +53,10 @@ do_configure_prepend_class-target() {
         qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}"
         cat > ${B}/g-ir-scanner-qemuwrapper << EOF
 #!/bin/sh
+# Use a modules directory which doesn't exist so we don't load random things
+# which may then get deleted (or their dependencies) and potentially segfault
+export GIO_MODULE_DIR=${STAGING_LIBDIR}/gio/modules-dummy
+
 $qemu_binary "\$@"
 if [ \$? -ne 0 ]; then
     echo "If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help."