This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCJ adoption and improving our "PR"


Erik Poupaert wrote:

$ gcj -static Hello.java -o hello --main=Hello

$ ls -lh hello

-rwxr-xr-x 1 erik users 4.2M Apr 14 20:19 hello

That is: 4,376,645 bytes.
That is: 4,274 KB.
That is: 4.2 MB.

It used to be better, I remember.

By the way, I've been treated to a whole new series of warnings en provenance from
the linker underworld:

/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/libgcj.a(gc_dlopen.o)(.text+0xbc): In
function `GC_dlopen':: warning: Using 'dlopen' in statically linked applications
requires at runtime the shared libraries from the glibc version used for
linking/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/libgcj.a(natRuntime.o)(.text+0xcea):
In function `java::lang::Runtime::insertSystemProperties(java::util::Properties*)'::
warning: Using 'getpwuid_r' in statically linked applications requires at runtime the
shared libraries from the glibc version used for



I suggest linking glibc and others dynamically. Just link libgcj statically. glibc's ABI is stable enough these days that static linking just causes more problems than it solves. Your binary will be smaller too.


Funny, isn't it? "Hello world" is dragging around -- kicking and screaming -- entire
excerpts from java.net.InetAddress with related dependencies.



Such is the nature of Java - it does not lend itself easily to static compilation. But there are ways to improve the situation.


Regards

Bryce


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]