DescriptionFix the -fvisibility=hidden settings to work with the linux shlib build.
Inside chromium's src/build/common.gypi, when a shared library build is
specified, the -fvisibility=hidden flag is explicitly removed via a
cflags! exclusion. This overrides all cflags set in lower gyp files. It
is also incorrect for building plugins. To get around this, we use
a gyp pattern list so that the -fvisibility=hidden flag is readded by gyp
after the exclusion is applied.
-fvisibility=hidden is particularly important here because Module::Get()
has a second definition inside chromium that is used by the internal
pepper plugins. Without -fvisibility=hidden, the symbol resolution
gets crossed after the plugin is loaded such that the browser internal
verison of Module::Get() is invoked by ppapi's C++ wrappers even though
the it is the plugin's version of Module::Get() that is initialized.
This usually manifests itself as all externally loaded ppapi plugins that
use the ppapi C++ wrappers failing to load.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=164
Patch Set 1 #
Total comments: 2
Patch Set 2 : '' #
Total comments: 2
Patch Set 3 : '' #Messages
Total messages: 6 (0 generated)
|