I’ll tell you the story of a crashing arts

Today I was really missing my notification sound on new mails on KMail… that because after I updated to 3.5 for the first time, I got arts crashing every time it tried to start. The same gone when I moved back to 3.4, and the same remained with 3.5_beta1.

So tonight I started looking at that, asking around if somebody else had the problem, and then a schema started to come on my mind.
The problem could have caused by GCC4, or by QT 3.3.5, both are masked, but I’m using them.

I looked a bit around, and I found that arts was still building with -fvisibility=hidden .. that was not right. This flag was intended to remove from the resulting objects the symbols for private methods of classes and similar, relieving the loader from loading them and reducing the objects’ sizes. But that flag is broken so its use is discouraged.

Now what the deal with that? Me and Marcus found a problem with that on KDE 3.4.0, kasteroids crashed because dynamic_cast failed, due to RTTI being fooled up by the hidden copy of Qt classes, this was worked around removing visibility support in KDE on Gentoo. This was safe after 3.4.1 and was safe for 3.4.2, mainly.
Now, why the same problem happened again? KDE Bug 109386 shows that Qt still does not like visibility, making its support still unstable. But.. Gentoo should blacklist it, no? Well not exactly, for some reason the check that I designed to remove the visibility support was changed, in kde eclass, so not for kde-meta, to let the visibility support pass on KDE different from 3.4.1.. this was not a problem until now, because the support was disabled as Qt was not patched with a special patch, so the ./configure automatically disabled visibility support for us.
So what, again? There should not be problems about that, right? No.. but I’m using the masked QT 3.3.5 that are recognized as having the patch.

Okay so the problem was due to a masked package, but not for the reason it was masked for, nor the problem was unavoidable, as if the check was left as I designed it, visibility was basically still disabled and the problem wasn’t going to happen.

Well now the problem is finally fixed, I have again sound in gaim, still not on kmail, hope I don’t have to recompile kdelibs from scratch :/