GSOC 2015

Alexander Richardson arichardson.kde at gmail.com
Fri May 29 16:55:47 UTC 2015


2015-05-29 0:07 GMT+01:00 Milian Wolff <mail at milianw.de>:
> On Thursday 28 May 2015 20:23:26 Maciej Poleski wrote:
>> Dnia czwartek, 28 maja 2015 15:54:57 piszesz:
>> > Again, I'm missing again some context. kdev-clang will stick to clang-c,
>> > the libTooling support must be handled somehow separately, e.g. in a
>> > separate process/plugin/library, due to the ABI instability of
>> > libTooling.
>>
>> What does it mean "ABI instability"?
>> C++ does not specify ABI. ABI compatibility between modules in some
>> libraries like Qt is something like "assisted" coincidence, result of
>> thoroughly implemented changes from version to version of library which can
>> free user from need of recompilation on every update of any dependency. But
>> in general we cannot guarantee this.
>>
>> libTooling ABI is not stable (similarly to ABI of many other libraries), but
>> Clang libraries are not DSO (shared libraries). These are in fact archives
>> of object code. This code is (statically) linked into binary by the time of
>> compilation. Even update of Clang shouldn't break already built code.
>>
>> That's why i don't understand why "libTooling must be handled separately...
>> due to the ABI instability". Can You elaborate more on this?
>
> Ah, so libTooling can only be linked statically? Interesting! No ABI issues
> arise then. I was expecting the libraries to be installed as shared libs, but
> indeed that is not the case.
>
That depends on how the distro decides to ship the clang libs.
I have /usr/lib64/libclangTooling.so and
/usr/lib64/libclangToolingCore.so on my openSuSE system.

Alex


More information about the KDevelop-devel mailing list