AWT with static gcj

Marco Trudel mtrudel@gmx.ch
Thu Sep 21 08:16:00 GMT 2006


Tom Tromey wrote:
>>>>>> "Marco" == Marco Trudel <mtrudel@gmx.ch> writes:
> 
>>> In a --disable-shared build, there is no libgtkpeer.so that can be
>>> loaded dynamically.
> 
> Marco> So, libgtkpeer.a is for the shared GCJ and libgtkpeer.so for the
> Marco> static? Why isn't libgtkpeer.so built then?
> 
> No... libgtkpeer.a is a static library.  libgtkpeer.so is a dynamic
> library.  In a --disable-shared build, the .so is simply not build.

Ok, then one short time solution will be to do something with libltdl 
and the long term solution would be to fix that in GNU classpath/GCJ so 
that libgtkpeer.so will be built on --disable-shared?
Is this a big thing? Shall I fill in a bugreport?


> However, System.loadLibrary can only load dynamic libraries; static
> libraries simply can't be loaded at runtime.

Ok, now I understand. Thank you.
Stupid question (I'm not familiar with library handling):
Isn't it possible to create the dynamic lib out of this static lib?

The .a file is an ar archive, so I extracted it and got a lot of .o 
files. I compiled these with:
g++ -shared *.o -o libgtkpeer.so -lgtk-X11-2.0 -lgdk-X11-2.0 -lXtst

Worked fine. Now I renamed libgtkpeer.so to libgtkpeer.a and tried again 
(libgtkpeer.so wasn't searched/used). I got a simple "Aborted" Message 
when trying to start a binary that uses AWT...


thanks for your time
Marco



More information about the Java mailing list