About static linking with gcj
David Daney
ddaney@caviumnetworks.com
Thu Sep 24 15:41:00 GMT 2009
Andrew Haley wrote:
> l.civinini@libero.it 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
More information about the Java
mailing list