From 73f565d27166420bbf4a7bb49a30ea5bf5d98566 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 4 Apr 2012 17:48:47 -0400 Subject: [PATCH] Link the gnome-shell binary to libgnome-shell-js.so Depending on the exact linker options and versions, rpath's written into the binary may, or may not, be honored by dlopen(). Work around this by simply linking the gnome-shell binary to gnome-shell-js, since then dlopen() doesn't need to search paths. https://bugzilla.gnome.org/show_bug.cgi?id=670477 --- src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile.am b/src/Makefile.am index 95f1a41..7bafb6a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -187,7 +187,7 @@ libgnome_shell_la_gir_sources = \ gnome_shell_real_SOURCES = \ main.c gnome_shell_real_CPPFLAGS = $(gnome_shell_cflags) -gnome_shell_real_LDADD = libgnome-shell.la $(libgnome_shell_la_LIBADD) +gnome_shell_real_LDADD = libgnome-shell.la libgnome-shell-js.la $(libgnome_shell_la_LIBADD) gnome_shell_real_DEPENDENCIES = libgnome-shell.la EXTRA_DIST += test-gapplication.js -- 1.7.9.3 From 4d33ab1a50fa0a61554f4715fc035ea441db8350 Mon Sep 17 00:00:00 2001 From: Alexandre Rostovtsev Date: Fri, 6 Apr 2012 14:00:48 -0400 Subject: [PATCH] Prevent the link to libgnome-shell-js.so from being removed Add a dummy call to shell_js_add_extension_importer() to ensure that the link to libgnome-shell-js.so is not removed when using -Wl,--as-needed, which is the default on many distros. --- src/main.c | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-) diff --git a/src/main.c b/src/main.c index bac9524..a6fb8f6 100644 --- a/src/main.c +++ b/src/main.c @@ -24,6 +24,7 @@ #include "shell-a11y.h" #include "shell-global.h" #include "shell-global-private.h" +#include "shell-js.h" #include "shell-perf-log.h" #include "st.h" @@ -342,3 +343,17 @@ main (int argc, char **argv) return ecode; } + +/* HACK: + Add a dummy function that calls into libgnome-shell-js.so to ensure it's + linked to /usr/bin/gnome-shell even when linking with --as-needed. + This function is never actually called. + https://bugzilla.gnome.org/show_bug.cgi?id=670477 +*/ + +void +_shell_link_to_shell_js (void) +{ + shell_js_add_extension_importer (NULL, NULL, NULL, NULL); +} + -- 1.7.8.5