[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: Re: Calling all KDE devs! Autopackage needs your help!
From: Thiago Macieira <thiago () kde ! org>
Date: 2005-05-29 20:31:45
Message-ID: 200505291731.51863.thiago () kde ! org
[Download RAW message or body]
[Attachment #2 (multipart/signed)]
carl wrote:
>> The solution is simple: make sure all C++ programs are compiled with
>> the same g++ ABI and linked to the same libstdc++.
>Unfortunately it's not that simple.
That's the whole problem: it has to be.
A simple solution such as enforcing a single g++ version would solve all
the problems.
This would, of course, not be an acceptable solution, since I wouldn't
want to downgrade my whole *system* to g++ 3.3 just because someone at
autopackage felt 3.3 was best.
>We don't know what version of gcc
> KDELIBS was compiled with.
You can, since it sets specific signatures in the binaries. The first and
foremost is the soname of the libstdc++ that it was linked with:
$ ldd /usr/local/kde3/lib/libkdecore.so.4 | grep stdc++
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb71b7000)
Second, the CXXABI symbol:
$ objdump -p /usr/local/kde3/lib/libkdecore.so.4 | grep CXXABI
0x056bafd3 0x00 02 CXXABI_1.3
Both are evidences of using g++ 3.4, with ABI version 1.3.
> Many different distributions mean many
> different compiler versions which means we can't anticipate which ABI
> to use.
Which means: you can't provide a *single* package that will work in all
installations.
Problem solved: you must create one package for each target ABI.
> The best solution is to use xdeltas to install the proper binaries.
One master package plus xdeltas to change the binary into the proper ABI?
Consider this: each and every C++ package would have to be compiled and
recompiled for each target ABI. Then each resulting binary would have to
be diff'ed into xdeltas. The total package size would probably be twice
as large, or even more.
When the C++ ABI changes, all calling conventions are thrown out of the
window, plus typeinfo nodes, typeinfo names, symbol names, virtual table
layouts, etc. If you were to compare a libkdecore.so.4 compiled with g++
2.95 to one compiled with g++ 3.4, I wouldn't be surprised if there were
nothing in common.
> Mike of autopackage can go into more detail about that than I can. But
> he needs help since he really isn't much of a KDE developer.
--
Thiago Macieira - thiago (AT) macieira (DOT) info
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
4. And æfter se scieppend ingelogode, he wrát "cenn", ac eala! se
rihtendgesamnung andswarode "cenn: ne wát hú cennan 'eall'. Ástynt."
[Attachment #5 (application/pgp-signature)]
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic