gecko-dev/browser
Mike Hommey 6a956c6f97 Bug 1187533 - Change how Gtk+2 plugin-container is started on Gtk+3 builds. r=billm
The current situation looks like this: Firefox launches the plugin-container
with two environment variables set:
  LD_LIBRARY_PATH=$FIREFOX_DIR:$LD_LIBRARY_PATH
  LD_PRELOAD=$FIREFOX_DIR/libmozgtk2.so:$LD_PRELOAD

libxul.so has a dependency on libmozgtk.so (without "2"), but libmozgtk2.so
has a SONAME of libmozgtk.so, so ld.so recognizes libmozgtk2.so as a
dependency of libxul.so, and uses it instead of the actual libmozgtk.so,
making the plugin-container use Gtk+2 instead of Gtk+3 to load Gtk+2 plugins.

Now, ASan sets things up in shared libraries such that they needs a symbol
from the executable binary. So in the case of plugin-container, the
plugin-container executable itself contains some ASan symbols such as
__asan_init_v3. libmozgtk2.so, OTOH, contains an undefined weak reference to
that symbol, like all other Firefox shared libraries.

Since libmozgtk2.so is LD_PRELOADed, it is loaded _before_ the
plugin-container executable, and __asan_init_v3 can't be resolved.

Disabling ASan for libmozgtk2.so would be a possibility, but the build system
doesn't really know how to do that, and filtering out -fsanitize=address
can be fragile.

The alternative possibility, implemented here, is to change the library
loading strategy, renaming libmozgtk2.so to gtk2/libmozgtk.so, and setting
the following environment variable when Firefox launches the plugin-container:
  LD_LIBRARY_PATH=$FIREFOX_DIR/gtk2:$FIREFOX_DIR:$LD_LIBRARY_PATH
2015-07-28 08:19:13 +09:00
..
app Bug 1157745 - Enable APZ on Windows desktop nightly builds. r=dvander 2015-07-23 17:53:32 -04:00
base Bug 964669 - Increase timeout for browser_social_multiworker because shutting down child processes is slow. r=mixedpuppy 2015-07-27 12:49:48 -07:00
branding Bug 1181541 - Convert branding identity icons for internal pages to SVG. r=ttaubert 2015-07-23 20:54:48 -07:00
components Merge inbound to m-c. a=merge 2015-07-27 15:34:42 -04:00
config Bug 965151 - Use tooltool in valgrind jobs. r=mshal 2015-07-24 06:49:40 +09:00
devtools Merge inbound to m-c. a=merge 2015-07-27 15:34:42 -04:00
docs Bug 1161656 - Report total views preceding a click [r=adw] 2015-07-09 23:03:05 -07:00
experiments Bug 1178456 - Experiments service shouldn't use FHR prefs. r=gfritzsche 2015-07-01 05:46:00 +02:00
extensions Bug 1182228 - Update pdf.js to version 1.1.270. r= 2015-07-09 15:00:32 -04:00
fuel Bug 989307 - Make FUEL warn deprecation to the console on first usage. r=jaws 2015-04-03 15:42:04 -04:00
installer Bug 1187533 - Change how Gtk+2 plugin-container is started on Gtk+3 builds. r=billm 2015-07-28 08:19:13 +09:00
locales Merge inbound to m-c. a=merge 2015-07-27 15:34:42 -04:00
modules Merge inbound to m-c. a=merge 2015-07-27 15:34:42 -04:00
themes Bug 1187631 - Reduce caption button height to normal native size. r=jaws 2015-07-26 12:06:21 -07:00
app-rules.mk Bug 1039866 - Rip out a bunch of metro-only code. r=jimm,gavin,rstrong 2015-04-23 15:10:30 -04:00
app.mozbuild
build.mk Bug 1039866 - Rip out a bunch of metro-only code. r=jimm,gavin,rstrong 2015-04-23 15:10:30 -04:00
confvars.sh Bug 1176533 - Rename the variable MOZ_APP_VERSION_ABOUT for something more general r=glandium 2015-07-11 19:37:54 -06:00
defs.mk
LICENSE
Makefile.in
moz.build Bug 1039866 - Rip out a bunch of metro-only code. r=jimm,gavin,rstrong 2015-04-23 15:10:30 -04:00