[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gcjwebplugin-devel] LD_PRELOADing libraries
From: |
Michael Koch |
Subject: |
Re: [Gcjwebplugin-devel] LD_PRELOADing libraries |
Date: |
Thu, 7 Aug 2003 13:17:08 +0200 |
User-agent: |
KMail/1.5.2 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Am Mittwoch, 6. August 2003 20:30 schrieb Thomas Fitzsimmons:
> With the help of other gcj hackers, I found the problem.
>
> To understand the problem, it helps to know the relevant shared
> libraries and their dependencies:
>
> Mozilla dlopens libgcjwebplugin.so
>
> libgcjwebplugin.so is linked against libgcj.so
>
> libgcj.so dlopens lib-gnu-java-awt-peer-gtk.so
> sometime after libgcjwebplugin.so is loaded.
>
> lib-gnu-java-awt-peer-gtk.so depends on symbols in libgcj.so
>
> The problem is that Mozilla dlopens libgcjwebplugin.so without
> specifying the RTLD_GLOBAL flag. Because libgcjwebplugin.so
> depends on libgcj.so, libgcj.so is also loaded at this time. Since
> Mozilla doesn't specify RTLD_GLOBAL, libgcj.so's symbols are not
> exported to the global symbol namespace.
>
> When the first AWT component is shown, libgcj.so attempts to dlopen
> lib-gnu-java-awt-peer-gtk.so so that the component's GTK peer may
> be instantiated. However, this dlopen fails with an unresolved
> symbol error for a libgcj.so symbol (_Jv_intClass); libgcj.so is
> already loaded (as a result of Mozilla dlopening
> libgcjwebplugin.so), but its symbols are not globally visible, and
> so are not available to
> lib-gnu-java-awt-peer-gtk.so.
Would it be a good idea to add a configure option to link the gtk peer
into the plugin (e.g. --with-gtk-peer) ? That would of course be a
hack for mozilla.
Michael
- --
Homepage: http://www.worldforge.org/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
iD8DBQE/MjU0WSOgCCdjSDsRAtUvAJ9d5/C0BTrmyHNyg9jdQ9KnaXA02wCfTViJ
n4bQ+tfGP41YY66TBGo7soY=
=fkwM
-----END PGP SIGNATURE-----