RESOLVED FIXED 25996
[Qt] Dead-code stripping for unix
https://bugs.webkit.org/show_bug.cgi?id=25996
Summary [Qt] Dead-code stripping for unix
Laszlo Gombos
Reported 2009-05-24 13:08:07 PDT
Turn on dead-code stripping for the Qt port - Unix (no Mac) and GCC only. In default configuration, this change reduced the binary size by ~6% (with 1.23 Mb); removed ~3900 dead symbols (statistics based on r44115)
Attachments
Turn on GCC dead-code stripping flags for Unix (1.07 KB, patch)
2009-05-24 13:12 PDT, Laszlo Gombos
zecke: review+
List of dead symbols - Qt port on Linux (263.13 KB, text/plain)
2009-05-25 11:34 PDT, Laszlo Gombos
no flags
Regenerated dead symbol list for r44682 (273.60 KB, text/plain)
2009-06-17 07:13 PDT, Laszlo Gombos
no flags
Laszlo Gombos
Comment 1 2009-05-24 13:12:37 PDT
Created attachment 30633 [details] Turn on GCC dead-code stripping flags for Unix
Laszlo Gombos
Comment 2 2009-05-24 22:01:06 PDT
(In reply to comment #0) > Turn on dead-code stripping for the Qt port - Unix (no Mac) and GCC only. > In default configuration, this change reduced the binary size by ~6% (with 1.23 > Mb); removed ~3900 dead symbols (statistics based on r44115) Cross the dead symbol statistics, it should be less than the number I gave..
Holger Freyther
Comment 3 2009-05-24 22:26:58 PDT
Do you have a list of dead symbols?
Laszlo Gombos
Comment 4 2009-05-25 11:34:25 PDT
Created attachment 30654 [details] List of dead symbols - Qt port on Linux ~ 3400 dead symbols; my initial numbers were not far off; Interesting list to scan trough.
Holger Freyther
Comment 5 2009-05-26 21:21:07 PDT
Comment on attachment 30633 [details] Turn on GCC dead-code stripping flags for Unix I'm a bit sad. I had the hope that the linker would remove these symbols... the other sad part is linking time will be slighly increased now?
Holger Freyther
Comment 6 2009-05-26 23:36:39 PDT
Landed in r44179. Thanks.
Simon Hausmann
Comment 7 2009-06-17 00:42:52 PDT
On the top of the list of the dead symbols is _NPN_IntFromIdentifier, which is used right in PluginPackage.cpp (the address of the symbol is taken, so it can't be inlined). How did you generate the list? Was it generated on a build without netscape plugin support?
Laszlo Gombos
Comment 8 2009-06-17 07:13:35 PDT
Created attachment 31411 [details] Regenerated dead symbol list for r44682
Laszlo Gombos
Comment 9 2009-06-17 07:22:19 PDT
(In reply to comment #7) > On the top of the list of the dead symbols is _NPN_IntFromIdentifier, which is > used right in PluginPackage.cpp (the address of the symbol is taken, so it > can't be inlined). How did you generate the list? Was it generated on a build > without netscape plugin support? I regenerated the dead symbol list (QtWebKit release build on Linux) and _NPN_IntFromIdentifier no longer shows up as dead symbol (I do not have an explanation how the _NPN_IntFromIdentifier symbol ended up in the previous list). Here is a brief explanation on how I generated the list: - Make two builds; one with dead symbol stripping, one without it - Get all the defined symbols in each .so by running nm --defined-only - Get the delta of from the two symbol list and demangle the symbols with c++filt
Note You need to log in before you can comment on or make changes to this bug.