Andrew Haley wrote:
l.civinini@xxxxxxxxx wrote:
Hi all,
I'm trying to make static linking in order to obtain a java executable
to use on a device with few hardisk space.
I created a simple java that made
only a "System.out.println" and after c
ompiling I obtained am executable file
of 29 MB. Is it possibile to
shrink the size of executable? Am I doing
something worng?
This is the command that I'm using.
gcc -o Foo Foo.o Foomain.
i -shared-libgcc -Wl,-non_shared -lgcj -Wl,-call_shared -lsupc++ -Wl,--as-
needed -lz -lgcc_s -lpthread -lc -lm -ldl -Wl,--no-as-needed
It's difficult. The nature of the Java library is such that a lot of
stuff is required, and you'll find it gets linked in. SOme folks on the
gcc list have done work in this area, but it's tricky.
You can use -static-libgcj since GCC-4.2.
Also you can try the patches I posted to java-patches@ recently to try
to reduce the size of the statically linked applications.
The best I have been able to achieve on GCC-4.3.4 is about 10MB.
David Daney