Fwd: Re: Fwd: Re: [PATCH] libkdeinit symbol pruning
Karl Vogel
karl.vogel at seagha.com
Wed Jul 21 02:09:28 CEST 2004
David Faure wrote:
> ---------- Forwarded Message ----------
>
> Subject: Re: Fwd: Re: [PATCH] libkdeinit symbol pruning
> Date: Tuesday 20 July 2004 21:30
> From: Stephan Kulow <coolo at kde.org>
> To: David Faure <faure at kde.org>
>
> That am_edit patch is broken, the unsermake patch should work :)
>
> Greetings, Stephan
>
> -------------------------------------------------------
Great! But I'm wondering what the problem with the am_edit patch was then?!
Anyway.. more goodies.. I just finished testing the GCC visibility patch on QT
(gcc 3.4):
* Normal build
$ objdump -CT libqt-mt.so.3.3.2|egrep "g +DF .text"|wc -l
14019
libqt-mt.so.3.3.2: 41138 relocations, 10177 relative (24%), 9322 PLT entries
* build with visibility patch
$ objdump -CT libqt-mt.so.3.3.2|egrep "g +DF .text"|wc -l
11851
libqt-mt.so.3.3.2:40993 relocations, 14275 relative (34%), 7573 PLT entries
The binary was 980Kb smaller (but both were already extremely large since it
was a debug build).
Non-debug stripped builds give:
$ ls -l libqt-mt.so.3.3.2
-rwxrwxr-x 1 kvo kvo 8225336 Jul 21 01:46 libqt-mt.so.3.3.2
$ ls -l libqt-mt.so.3.3.2
-rwxrwxr-x 1 kvo kvo 8655704 Jul 21 02:00 libqt-mt.so.3.3.2
430Kb saving.
libqt-mt.so.3.3.2: 40966 relocations, 14267 relative (34%), 6291 PLT entries
libqt-mt.so.3.3.2: 41114 relocations, 10174 relative (24%), 8069 PLT entries
1778 PLT entries less.
There was only 1 minor problem.. KDE was using a symbol from QT that wasn't
exported (qt_try_modal in src/kernel/qapplication_x11.cpp). So I added a
Q_EXPORT in front of it.
For the rest, all I did was add the -fvisibility=hidden to QMAKE_CXXFLAGS and
edited qglobal.h to set Q_EXPORT to __attribute__((visibility ("default")))
So looks like promoting the use of KDE_EXPORT is a worthwhile cause.. together
with an autoconf check for the -fvisibility gcc option.
More information about the Kde-optimize
mailing list