This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: using -static
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.
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.
David Daney