kdeinit compiled with gcc 4.0.1 & visibility busted at runtime
Michael Nottebrock
lofi at freebsd.org
Sun Jul 17 12:58:55 BST 2005
On Sunday, 17. July 2005 13:22, Michael Nottebrock wrote:
> On Sunday, 17. July 2005 12:43, Michael Nottebrock wrote:
> > I recently started to do experimental builds of KDE (3.4.1)/QT with gcc
> > 4.0.1 on FreeBSD and got a few errors - the most severe one being a
> > kdeinit that won't run:
> >
> > Could not find kdemain: Undefined symbol "main"
> > kdeinit: Communication error with launcher. Exiting!
>
> After a bit of copying to and fro, I found that the problem is in
> klauncher.so. I nm'd a klauncher.so compiled with gcc 4.0.1 and
> visibility=hidden and a klauncher.so compiled with gcc 3.4.2 (which makes
> kdeinit work when I manually copy it over the gcc4-compiled one) and here's
> the diff:
>
> --- /home/lofi/workingklauncher Sun Jul 17 13:16:34 2005
> +++ /home/lofi/brokenklauncher Sun Jul 17 13:17:15 2005
> @@ -20,9 +20,9 @@
> A _end
> T _fini
> T _init
> -b completed.1
> +b completed.2919
> t frame_dummy
> -T kdeinitmain
> +t kdeinitmain
> U kdemain
> -b object.2
> -d p.0
> +b object.2953
> +d p.2918
>
> It looks like kdeinitmain in klauncher becomes a local symbol only in the
> gcc4/visibility case. Any clue why that happens (and how to fix)?
Found a workaround: Hand-editing the generated klauncher_dummy.cpp and doing
-extern "C" int kdeinitmain(int argc, char* argv[]) { return
kdemain(argc,argv); }
+extern "C" __attribute__ ((visibility("default"))) int kdeinitmain(int argc,
char* argv[]) { return kdemain(argc,argv); }
fixes things. Looks like we need some additional smartness in am_edit re.
KDE_EXPORT? Or perhaps special-casing kdeinit will be enough - I didn't
experience similar problems anywhere else (yet).
--
,_, | Michael Nottebrock | lofi at freebsd.org
(/^ ^\) | FreeBSD - The Power to Serve | http://www.freebsd.org
\u/ | K Desktop Environment on FreeBSD | http://freebsd.kde.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20050717/cd2915cb/attachment.sig>
More information about the kde-core-devel
mailing list