dependency_libs

Jeff Sturm jsturm@one-point.com
Wed Apr 4 16:55:00 GMT 2001


On 4 Apr 2001, Alexandre Oliva wrote:
> If libgcj depends on -lpthread being linked in before -lc, it should
> be linked with -lpthread.

AFAIK that's a pthread requirement, not libgcj. Symbols like pthread_self
exist in both libc and libpthread, and applications must link to the
correct one...
Besides, libgcj _is_ linked with -lpthread. It's a matter of getting the
order straight. Somehow libtool gets it wrong.
> dependency_libs is computed based on the
> libraries a library is linked with, including those that are
> implicitly linked in by the compiler.

OK, thanks. Here's how it is linked by libtool:
[jsturm@neptune lib]$ ldd libgcj.so
 libpthread.so.0 => /lib/libpthread.so.0 (0x403f6000)
 libdl.so.2 => /lib/libdl.so.2 (0x4040c000)
 libc.so.6 => /lib/libc.so.6 (0x4040f000)
 libgcc_s.so.0 => /opt/gcc/lib/libgcc_s.so.0 (0x40534000)
 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000)
That's fine. But in libgcj.la we have:
# Libraries that this one depends upon.
dependency_libs=' -L/home/jsturm/gcc-3.0/build/i686-pc-linux-gnu/libjava
-L/home/jsturm/gcc-3.0/build/i686-pc-linux-gnu/libjava/../libstdc++-v3/libsupc++
-L/home/jsturm/gcc-3.0/build/i686-pc-linux-gnu/libstdc++-v3/src
-L/home/jsturm/gcc-3.0/build/i686-pc-linux-gnu/libstdc++-v3/src/.libs -lm
-L/home/jsturm/gcc-3.0/build/gcc
-L/opt/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.0
-L/opt/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.0/../../.. -lc -lgcc_s
-lpthread -ldl '
Which results in gij linked as follows:
[jsturm@neptune .libs]$ ldd gij
 libgcj.so.1 => /opt/gcc/lib/libgcj.so.1 (0x40018000)
 libm.so.6 => /lib/libm.so.6 (0x4040d000)
 libc.so.6 => /lib/libc.so.6 (0x4042d000)
 libgcc_s.so.0 => /opt/gcc/lib/libgcc_s.so.0 (0x40552000)
 libdl.so.2 => /lib/libdl.so.2 (0x4055b000)
 libgcjgc.so.1 => /opt/gcc/lib/libgcjgc.so.1 (0x4055e000)
 libpthread.so.0 => /lib/libpthread.so.0 (0x4057d000)
 libzgcj.so.0 => /opt/gcc/lib/libzgcj.so.0 (0x40594000)
 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
That's a problem. Something changed recently to effect this behavior.
For one thing, I'm now getting `build_libtool_need_lc=yes' from ltconfig.
Jeff


More information about the Java mailing list

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