DescriptionNaCl cleanup: Remove now-unneeded initialisation of NaCl libraries (2nd try)
The renderer now no longer uses these NaCl libraries, so we don't need
to initialise them on startup in module_ppapi.cc. This leaves
UrandomFD() unused, so we can remove it too.
This means that, on Linux, the chrome executable no longer pulls in
any code that uses thread-local (TLS) variables (those declared with
"__thread"). This means that it no longer references the function
__tls_get_addr() (or ___tls_get_addr() on i386), which is defined by
ld-linux.so with symbol version "GLIBC_2.3". This means we must
update the symbol version dependency expectations in
chrome/installer/linux/rpm/expected_deps_*.
For example, nacl_log.c is one source file that uses __thread
variables on Linux, and that no longer gets linked into chrome now.
Before the change:
$ objdump -x out/Release/chrome
...
required from ld-linux-x86-64.so.2:
0x09691a75 0x00 47 GLIBC_2.2.5
0x0d696913 0x00 48 GLIBC_2.3
...
$ nm -D out/Release/chrome | grep tls_get
U __tls_get_addr
After the change:
$ objdump -x out/Release/chrome
...
required from ld-linux-x86-64.so.2:
0x09691a75 0x00 47 GLIBC_2.2.5
...
$ nm -D out/Release/chrome | grep tls_get
This is a retry of https://codereview.chromium.org/1646733002/, which
got reverted because the symbol version expectations changed.
BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=2832
TEST=e.g. NaClBrowserTestPnacl.PPAPICore (tests PNaCl translation)
Committed: https://crrev.com/deb5941331e83f0819b0cef08a8adaf9788dc167
Cr-Commit-Position: refs/heads/master@{#372437}
Patch Set 1 #Patch Set 2 : Fix problem that caused revert last time #
Messages
Total messages: 16 (7 generated)
|