using -static

Marco Trudel mtrudel@gmx.ch
Tue Oct 17 15:58:00 GMT 2006


David Daney wrote:
> Andrew Haley wrote:
>> Marco Trudel writes:
>> /home/Marco/.eclipse_workspace/GCC-source/libjava/gnu/classpath/natSystemProperties.cc:97: 
>> > warning: Using 'getpwuid_r' in statically linked applications 
>> requires > at runtime the shared libraries from the glibc version 
>> used for linking
>> > 
>> /home/Marco/Desktop/compile-lin-lin/gcc-4.2.0-lin-lin/lib/gcc/i686-pc-linux-gnu/4.2.0/../../../libgcj.a(natInetAddress.o): 
>> > In function `hidden alias for JArray<java::net::InetAddress*>* > 
>> java::net::InetAddress::lookup(java::lang::String*, > 
>> java::net::InetAddress*, bool)':
>> > java/net/natInetAddress.cc:206: warning: Using 'gethostbyaddr_r' in 
>> > statically linked applications requires at runtime the shared 
>> libraries > from the glibc version used for linking
>> > java/net/natInetAddress.cc:153: warning: Using 'gethostbyname_r' in 
>> > statically linked applications requires at runtime the shared 
>> libraries > from the glibc version used for linking
>> > > This warnings occur when compiling a simple 
>> System.out.println("hello") > application with "-static".
>>>> That's interesting. It tells you that you really shouldn't link
>> statically against libc, but I don't think that's news.
>>> Certainly it is not new news. I might suggest the shiny new (4.2 only) 
> -static-libgcj compile time option as an alternative.

That requires the lib "libgcc_s.so" at runtime, but I think that's fine.
> As time passes, libgcj is doing more and more dynamic linking. A static 
> libc does not work well with dynamic linking. Static linking against 
> libc really only makes sense in the situation where there is only a 
> single executable image running in the entire system (ala busybox). 
> Unless you are working on small embedded systems, it is almost always 
> the wrong thing to do.

I'm not very familiar with this topic, so I don't understand everything 
you and Andrew told me. So I would summarize like this:
I shouldn't use "-static", because it does some nasty dynamic/static 
linking stuff. I could use -static-libgcj, that does more or less the 
same as using a --disable-shared built gcj?!
thanks
Marco


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /