Matthijs van de Water wrote:
The only down-side is that the resulting shared library is 24MB big
even after stripping and optimizing. I was expecting a lot less, is
there any chance the compiler is linking in stuff that is not actually
needed?
Yes. Use "-Wl,-Map,/tmp/linkmap.txt" to get the link map.
For instance, you will always end up with the whole AWT (maybe even
Swing) because the SecurityManager imports an AWT class. There are a lot
of other such never needed imports.
You can stub out certain objects. JNC (http://jnc.mtsystems.ch/) does
this for instance for AWT/Swing or JCE. I explained a couple of times on
the list how I do it. So, searching for my name in the archives should
bring up something useful.
Actually, I even created a project named GcjStubber about half a year
ago that takes a statically compiled GCJ and creates a stub for all
objects in libgcj.a. For compilation of applications, you can then add
stubs for objects you don't need and therefore exclude the original
objects. But so far, I didn't really finish it (it's about 90% done).
But you're still invited to check it out in case you are interested:
http://sourceforge.net/svn/?group_id=169793