Problems linking against pthreads
Renaud Waldura
renaud+freebsd-java at waldura.com
Sun Jan 25 12:49:24 PST 2004
I'm attempting to write an Icecast stream source in Java. I've got Icecast
2.0 all built up and working, with all its libraries libshout, libvorbis
etc.
I have found this package:
http://benow.ca/index?page=project&project=libshout-java
that allows me to make calls to libshout from a Java program, but I'm having
a hard time getting the library links resolved correctly.
When running a Java program that uses the libshout-java glue, I get:
java.lang.UnsatisfiedLinkError:
/home/renaud/src/libshout-java-0.1-freebsd/native/libshoutjava.so.1.0:
/usr/local/lib/libshout.so.3: Undefined symbol "pthread_cond_signal"
OK, so it looks like libshout needs pthreads. Another program that uses
libshout is linked against both libc and libc_r, thus including pthreads.
work/ices-2.0-Beta2/src/ices:
libshout.so.3 => /usr/local/lib/libshout.so.3 (0x28158000)
libc_r.so.4 => /usr/lib/libc_r.so.4 (0x28343000)
libc.so.4 => /usr/lib/libc.so.4 (0x283fa000)
Yet the Diablo VM I'm using is linked against libc only:
java version "1.3.1"
Java(TM) 2 Runtime Environment, Standard Edition (build diablo-1.3.1-0)
Classic VM (build diablo-1.3.1-0, green threads, nojit)
/usr/local/diablo-jdk1.3.1/jre/bin/i386/green_threads/java:
libhpi.so => not found (0x0)
libc.so.4 => /usr/lib/libc.so.4 (0x28067000)
This is where I get stuck. How can I provide libc_r to my libshout when the
VM doesn't use it? Or is this the wrong approach?
I'm running FreeBSD 4.2-RELEASE. Thanks for any clues!
--Renaud
More information about the freebsd-java
mailing list