This Time Self-Hosted
dark mode light mode Search

Small and big updates

Okay time for some updates, some of them are small, some a bit bigger.

First of all, I decided the time came to give a try to KDE’s hidden visibility support again. I fought with it a lot in the past, and my readers since then should remember it 🙂

But many things changed since that, GCC 4.1 is now released, support is official and (mostly) stable for C++ as well as C, and KDE had enough time to fix the missing symbols during this year, so I decided to start working to allow choice to enable it for testing without messing around too much. Wasn’t that good the fact that I found another bug with GCC 4.1.1_pre with #pragma GCC visibility…

So here it is the first update: kde eclass now has supports for a kdehiddenvisibility useflag, that can be enabled with GCC 4.1 and will enable the hidden symbols in KDE. Note that before to enable this flag you need to have GCC 4.1 selected and you need to rebuild Qt 3.3.6-r1 with the visibility patch (always with GCC 4.1).

The reason for which this is an useflag is not easy to explain, but trust me, right now you don’t want to use other ways to reach this. First of all, you cannot pass -fvisibility=hidden to KDE without informing it that you want hidden symbols, or it won’t export the symbols at all and you’ll have useless libraries. Then you can’t enable -fvisibility=hidden for every package, as you’ll end up with many broken libraries as they won’t export the symbols anymore (really just a few packages are ready for that — if you want to improve the situation, remember to send the patches upstream, not to us directly). Also, I don’t trust that support enough to just enable it for everybody, not just yet at least.

This situation might change in the future, if hidden visibility is proving stable, so that it will always be enabled if GCC 4.1 is found, but this is not yet the time, so please don’t push on this just yet.

The second update is related to Gentoo/FreeBSD. Thanks to Steve’s KVM, I was able to get defiant up and running, and it’s now going to be my X11 and related testing box, with distcc over the other boxes to make compile process take less time. At this point, I found some time yesterday between pauses with work to test Quake3 as asked me by arachnist, and also xine-ui to confirm that it worked well, now you’ll see more games and multimedia packages marked ~x86-fbsd 🙂

I also added a few packages to the tree to complete the FreeBSD support, like eject-bsd, bsnmp, smbfs and getopt-long. Some of them are packages extrapolated from base sources, so that they can be used with other ports, too (bsnmp should work on Linux too if I’m able to complete the port), others are external but specific to FreeBSD or to BSD userland in general. In particular getopt-long was added by coincidence as it is needed by xmlto that is a new dependency of opensp.

Now, considering I started adding specific packages to the main tree, that I’m keywording games & multimedia… I can think that Gentoo/FreeBSD is proceeding well 🙂

Follow my next entry for some thoughts on Google’s Summer of Code 😉

Update: wrong revision, qt is just 3.3.6-r1 🙂

Comments 5
  1. Visibility makes _theorically_ faster the load of KDE applications, and make them occupy less space.In practice, I don’t see a big improvement yet.

  2. I tried kde with hidden visibility (thanks to nxsty qt ebuild on f.g.o and with a bit of tweaking of the kde eclass) and it works without problem… though I have KOffice 1.5 crashes – not sure if this is related.Thanks for your work !

  3. Look like to me that that it’s a huge improvement in startup time, not of kde itself (kdeinit) but of it’s applications.k{pdf,onsole,ate,onqueror} jump up istantly, the system was already built with aggressive LD_FLAGS and the improvement is still huge.Keep the good work Diego!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.