On Tuesday 23 August 2005 22:26, Michael Nottebrock wrote: > On Tuesday, 23. August 2005 21:25, Michael Nottebrock wrote: > > On Tuesday, 23. August 2005 21:20, Michael Nottebrock wrote: > > > On Tuesday, 23. August 2005 14:44, Lauri Watts wrote: > > > > On Tuesday 23 August 2005 13:12, Anthony Ginepro wrote: > > > > > > It already is - if you applied the patch for Qt3 visibility patch from > > > KDE (it's available via bugs.kde.org, I currently cannot remember the > > > bugnumber however) > > > > Looked it up now: It's Bug 109386 and the patch is > > http://bugs.kde.org/attachment.cgi?id=11863&action=view > > And another postscriptum: This patch does *not* make Qt3 itself compatible > with gcc4's -fvisibility options - it just prevents rather obscure runtime > bugs in some KDE applications if KDE is compiled with visibility enabled. > > Do *not* attempt to compile Qt3 itself with visibility flags! Do *not* put > -fvisibility=hidden or similar things into your CFLAGS/CXXFLAGS! > > The quickest way to get a gcc4-compiled & visibility-optimized KDE would be > something like this (and remember what I wrote earlier about the > performance increase you can expect before you embark on that): > > - Install lang/gcc40 or lang/gcc41 (my recommendation would be lang/gcc40, > since KDE is completely untested with gcc41 - on any platform). > > - Set CC to gcc40 and CXX to g++40 - /etc/make.conf is a good place to do > this, but you could also set those on portinstall/portupgrade commandlines > or on make command lines. > > - Reinstall devel/qmake. This is important - x11-toolkits/qt33 will be > compiled with the CC, CXX, CFLAGS and CXXFLAGS set at the time qmake was > compiled, so it's essential to recompile and reinstall it with CC/CXX > already set to gcc40/g++40. > > - make extract in x11-toolkits/qt33 and apply the visibility patch > mentioned above, then go on with make, make deinstall, make install, make > clean to recompile and reinstall Qt3. Again, this step is important - KDE > will refuse to enable the visibility flags if it doesn't detect that Qt3 > has been patched. > > - Then portupgrade -f arts\* kde\*. Again, do *not* force > -fvisibility=anything into CFLAGS/CXXFLAGS yourself. KDE's configure checks > will automatically set those. Check the configure out put for > > checking whether g++40 supports -fvisibility=hidden... > checking if Qt is patched for -fvisibility... > > lines. Both results need to be "yes".
As far as my experiments are, I nearly followed your path until now but I've used gcc41 instead. As you've warned, it's important to NOT put -fvisibility* in CXXFLAGS. KDE automatically checks for it, but I had to patch and play with kdelibs3 port in order to make it work so I think that next time FreeBSD project will upgrade GCC system compiler we won't be able to use KDE except if it's fixed already in 3.5. Now I can clean all the stuff around and check that it's reproducible so I can post some instructions if people want to try or check back later if we need to make freebsd work with kde's visibility feature. Thanks for all your valuable time and help, Anthony. _______________________________________________ kde-freebsd mailing list [email protected] http://freebsd.kde.org/mailman/listinfo/kde-freebsd
