You are currently browsing the daily archive for November 12, 2008.
Today I compiled a 32-bit jsvc daemon tool linked to a 32-bit Java JDK on a 64-bit machine. Turns out I didn’t need it but am recording my notes in case someone else does need it.
I’m using the jsvc source that is bundled with Tomcat and Sun’s Java SE Development Kit 6u10 (jdk-6u10-linux-i586.bin).
$ JAVA_HOME=/usr/java/jdk1.6.0_10-32bit $ cd /usr/local/apache-tomcat-5.5.23/bin/jsvc-src $ CFLAGS=-m32 CPPFLAGS=-m32 CCASFLAGS=-m32 LDFLAGS="-L/usr/lib -L/lib" \ ./configure --build=i686-pc-linux-gnu $ make
make
will error with
gcc -L/usr/java/jdk1.6.0_10-32bit/lib -L/usr/lib -L/lib -ldl -lpthread jsvc-unix.o
libservice.a -o ../jsvc /usr/bin/ld: skipping incompatible /usr/lib/libdl.so when searching for -ldl /usr/bin/ld: skipping incompatible /usr/lib/libdl.a when searching for -ldl ....
Adjust that failing gcc
command with the -m32
switch and compile manually.
$ cd native/ $ gcc -m32 -L/usr/java/jdk1.6.0_10-32bit/lib -L/usr/lib \ -L/lib -ldl -lpthread jsvc-unix.o libservice.a -o ../jsvc
There should now be a 32-bit jsvc
binary in the jsvc-src
directory.
$ file jsvc jsvc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped
Tip of the hat to a Tomcat mailing list thread started by Rob Tanner
Advertisements