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