3rd January 2003 by Derek Kite

This Week...

This week some optimizations, Konstruct, Atlantik and Kalzium. Many bug fixes and new features.
Errata: In last week's digest, the cvs commits were attributed to the wrong person. Off by one bug. It should be fixed in the next few days. More layout changes. Getting close to satisfactory. I have tried to indicate which patches were backported to earlier releases.
I asked Dirk "From my meager understanding of C++, I think this means there are fewer relocations required by the linker?" Dirk responded:
Several changes. I've fixed "namespace breakages" of several libs. We have a rule that every class/namespace'd symbol should start with a K and every nonmangled symbol with "kde_". Unfortunately this was broken in a few places, which could cause symbol clashes and therefore in theory crashes and misbehaviour. There were also some shared libs installed which shouldn't be installed, or installed in a wrong place, or with wrong flags..

making helper methods etc which should not really be part of the ABI the libs export static avoids similiar problems and also makes calling of these functions faster.

the version map is a method to reduce the PLT entries. Unfortunately it does not or only in a very small amount reduce the relocations, but its still a performance gain, as it removes the PLT overhead and therefore improves startup and runtime performance. It also hides methods and functions that are not part of the public API, to avoid misuse by applications and in consequences binary compatibility breakages after a KDE update.
One comment Dirk made after a commit was "libkhtml went down from 7248 to 3271 PLTs". To better understand what this means, refer to this paper entitled "Faster C++ program startups by improving runtime linking efficiency".

No commits found