This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
LibGCJ static linking trouble
- From: Thomas Womack <twomack at globalphasing dot com>
- To: java at gcc dot gnu dot org
- Date: Wed, 15 Nov 2006 17:40:29 +0000 (GMT)
- Subject: LibGCJ static linking trouble
Hello all.
I'm following the instructions in
http://gcc.gnu.org/wiki/Statically%20linking%20libgcj
for compiling things so that they don't need libgcj.so at runtime.
The final link-it-all-together line in my makefile is (remove carriage
returns as needed)
$(EXECOUT)/%: %-adaptor.o globalphasing/maketnt/%.o $(maketntlibs) $(javalibs)
$(GCJ) -o $(EXECOUT)/$* $^ -shared-libgcc
-Wl,-non_shared -lgcj -Wl,-call_shared -lsupc++ -Wl,--as-needed -lz
-lgcc_s -lpthread -lc -lm -ldl -Wl,--no-as-needed
where %-adaptor.o contains main(), which calls various bits of C code
which do some setup and then calls into the compiled java following the
model of
http://www-ti.informatik.uni-tuebingen.de/~thiele/cni/
Unfortunately, whilst this produces enormous executables
twomack@harker:~> ls -l toadfarm/bin/linux/PDB2TNT
-rwxr-xr-x 1 twomack cdrom 19772164 2006-11-15 17:21 toadfarm/bin/linux/PDB2TNT
twomack@harker:~> strip toadfarm/bin/linux/PDB2TNT
twomack@harker:~> ls -l toadfarm/bin/linux/PDB2TNT
-rwxr-xr-x 1 twomack cdrom 8260516 2006-11-15 17:34 toadfarm/bin/linux/PDB2TNT
they don't appear to be statically linked:
twomack@harker:~> toadfarm/bin/linux/PDB2TNT
toadfarm/bin/linux/PDB2TNT: error while loading shared libraries:
libgcj.so.7: cannot open shared object file: No such file or directory
twomack@harker:~> ldd toadfarm/bin/linux/PDB2TNT
linux-gate.so.1 => (0xffffe000)
libz.so.1 => /lib/libz.so.1 (0x5559b000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x555ae000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x555b9000)
libc.so.6 => /lib/tls/libc.so.6 (0x555cb000)
libdl.so.2 => /lib/libdl.so.2 (0x556ea000)
libgcj.so.7 => not found
libm.so.6 => /lib/tls/libm.so.6 (0x556ef000)
/lib/ld-linux.so.2 (0x55555000)
Can you help?
Thomas Womack, Global Phasing Ltd.