tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: qt4 library size: much much bigger on amd64 than i386



On Sun, Dec 30, 2007 at 01:52:56PM +0100, Thomas Klausner wrote:
> On Sat, Dec 29, 2007 at 07:07:04PM +0000, David Laight wrote:
> > On Wed, Dec 26, 2007 at 10:47:55AM +0100, Thomas Klausner wrote:
> > > Hi!
> > > 
> > > When I build qt4-libs on 4.99.42/amd64, I get huge static libraries:
> > > 
> > > -rw-r--r--  1 root     wheel  212102348 Dec 22 02:40 qt4/lib/libQtGui.a
> > > 
> > > I.e. the QtGui one is over 200MB big.
> > 
> > Two questions:
> > 
> > 1) what does 'size' say ?
> 
>    text          data     bss     dec     hex filename
>    6994             0       0    6994    1b52 qdrawhelper_mmx.o (ex 
> work.x86_64/qt-x11-opensource-src-4.3.3/lib/.libs/libQtGui.a)
...
>  232373             8       8  232389   38bc5 qrc_qstyle.o (ex 
> work.x86_64/qt-x11-opensource-src-4.3.3/lib/.libs/libQtGui.a)

Adding all the sizes probably only gives a few MB of code+text

> For the .so, it's:
>    text    data     bss     dec     hex filename
> 7976353  294280    6744 8277377  7e4d81 
> work.x86_64/qt-x11-opensource-src-4.3.3/lib/.libs/libQtGui.so.4.3.3
> 
> > 2) are they built with -g ?
> 
> Yes (but the link step doesn't have it):

The difference in the 'file size' v 'code+data' is almost certainly the
'eh_frame' section - which contains the addresses each time the stack offset
changes (needed for C++ exceptions, and used for stack backtraces).
Th 'eh_frame' section is loadable, but not normally paged in. It cannot be
stripped out by 'ld' or 'objcopy' because the section contains symbols
referenced by the code.

> Another weirdness:
> The (not installed) files in the work dir are recognized by file(1):
> # file work.x86_64/qt-x11-opensource-src-4.3.3/lib/.libs/libQtGui.so.4.3.3
> work.x86_64/qt-x11-opensource-src-4.3.3/lib/.libs/libQtGui.so.4.3.3: ELF 
> 64-bit LSB shared object, x86-64, version 1 (SYSV), for NetBSD 4.99.42, not 
> stripped
> # file work.x86_64/qt-x11-opensource-src-4.3.3/lib/.libs/libQtGui.a
> work.x86_64/qt-x11-opensource-src-4.3.3/lib/.libs/libQtGui.a: current ar 
> archive
> 
> The installed ones aren't:
> # file /usr/pkg/qt4/lib/libQtGui.so.4.3.3
> /usr/pkg/qt4/lib/libQtGui.so.4.3.3: data, for NetBSD 4.99.42, not stripped
> # file /usr/pkg/qt4/lib/libQtGui.a
> /usr/pkg/qt4/lib/libQtGui.a: data
> 
> Bug in file(1)?

NFI

        David

-- 
David Laight: david%l8s.co.uk@localhost



Home | Main Index | Thread Index | Old Index