-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Greetings!
The inclusion of (backported) -fvisibility [1,2] support for gcc-3.4.x introduced a hard-to-detect BUG on amd64. It was first recognized in BUG #78720 [3]. ld complains that a specific object hasn't been compiled with "-fPIC" compiler flag. As of amd64 POV, this is nonsense as we _need_ our shared objects be compiled with "-fPIC" compiler flag. The ld failure looks like this [3]:
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../x86_64-pc-linux-gnu/ bin/ld: ~ .libs/core.o: relocation R_X86_64_PC32 against std::basic_string<char, ~ std::char_traits<char>, std::allocator<char> >::~basic_string()@@GLIBC ~ XX_3.4' can not be used when making a shared object; recompile with ~ -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../x86_64-pc-linux-gnu/ ~ bin/ld: final link failed: Bad value collect2: ld returned 1 exit status
libstdc++.so is completely sane. However, the object files at hand (in this case those of kde-base/arts-3.4.0_beta1) have been compiled with "-fvisibility=hidden" and "-fvisibility-inlines-hidden". It's not yet clear if these flags cause gcc to produce broken object files or if ld is not ableto link against those object files.
As both "-fvisibility=hidden" and "-fvisibility-inlines-hidden" will be used in coming version of KDE-3.4 and QT-4, it is important to remove them from CFLAGS. There are currently 2 possibilities for this:
a) Comment {KDE,QT}_ENABLE_VISIBILITY_HIDDEN in configure.in and run ~ autoconf. Additionally, "-fvisibility=hidden" and ~ "-fvisibility-inlines-hidden" should be filtered via flag-o-matic in ~ kde.eclass. b) Kill these flags with a specifically taylored gcc SPECS file.
Pappy and /me would like comments on both possible solutions, preferably from the KDE herd ;-)
Danny
[1] http://www.gnu.org/software/gcc/gcc-4.0/changes.html#visibility [2] http://www.nedprod.com/programs/gccvisibility.html [3] http://bugs.gentoo.org/show_bug.cgi?id=78720
- -- Danny van Dyk Gentoo Developer Gentoo/AMD64, Gentoo/Science [EMAIL PROTECTED] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.6 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFB+U90aVNL8NrtU6IRAomnAJ9snXSXR+LS2QWr7JQCDpis4mLmSQCfXT4L YRykrj1Om4RIUJAgHgku/4E= =Z6it -----END PGP SIGNATURE-----
-- gentoo-dev@gentoo.org mailing list