[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-30 23:24:47
Message-ID: 200505302024.53406.thiago () kde ! org
[Download RAW message or body]

[Attachment #2 (multipart/signed)]


Hongli Lai wrote:
>LiuCougar wrote:
>> thanks for your info, carl and Hongli Lai (oh, you have a Chinese
>> style name ;) )
>
>I'm Chinese.
>
>> Do gcc 3.2 and 3.3 have compatible ABI?
>
>Yes.

Disregard my email about the ABIs.

After checking the TeXinfo pages and other people, this is what it says:

g++ 2.95 = completely different ABI, and the Autopackage guys don't want 
to support it. Note that KDE 3 officially supports it, but we plan to 
move it to "it would be nice if it worked" for KDE4.

g++ 2.96 = not official g++ release, not compatible to anything

g++ 3.0 = different ABI, no longer supported. Compatible with 3.1.

g++ 3.2 = -fabi-version=1. Compatible with g++ 3.3

g++ 3.4 = -fabi-version=2. Compatible with g++ 4.0

If you have a g++ 3.4 or 4.0, you can just use the -fabi-version= switch 
to tell it to generate an older ABI. So there's no need to have two 
compilers installed in order to link.

However, you need two sets of libraries, one for each ABI. KDE does not 
make that distinction in library sonames nor library paths, so you need 
two completely different KDE prefixes (like /opt/kde3-abi1 
and /opt/kde3-abi2). The datafiles can be shared, but not any of the 
binaries. 

Also consider that KDE uses the "kdeinit" technology, which means it 
preloads some of the libraries. This, in special, means you CANNOT mix 
environments. You cannot run a kdeinit-based application with one ABI if 
your kdeinit was installed with another ABI. Doing so will cause crashes, 
sooner or later.

The end result is that every C++ application must be compiled twice --- 
one for each ABI, for each and every Autopackage package. In other words, 
if you want to make KDE autopackages, you must use g++ 3.4 (because 4.0.0 
miscompiles KDE).

Is that a good solution?

-- 
  Thiago Macieira  -  thiago (AT) macieira (DOT) info
    PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

5. Swa he géanhwearf tó timbran, and hwonne he cóm, lá! Unix cwæð "Hello, 
World". Ǽfre ǽghwilc wæs glæd and seo woruld wæs fréo.

[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