-----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



Reply via email to