Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001064 [Resin] minor always 04-20-06 06:45 04-11-07 08:57
Reporter sam View Status public  
Assigned To ferg
Priority high Resolution fixed Platform
Status closed   OS
Projection none   OS Version
ETA none Fixed in Version 3.0.19 Product Version 3.0.18
  Product Build
Summary 0001064: IBM JDK 1.5 missing jvmdi.h
Description (rep by B Bothwell)

Hi, we recently started up development again using Resin
(resin-pro-3.0.18), and wanted to use IBM's 1.5 JDK due to its increased
performance over the Sun JDK (I confirmed this with simple benchmarks
myself). However, I am unable to get Resin to compile with IBM's JDK
(ibm-java2-i386-sdk-5.0-1.0) due to some missing JNI library files.

The error with make is:

jni_vfs.c:81:19: error: jvmdi.h: No such file or directory
make[2]: *** [jni_vfs.o] Error 1

The IBM JDK include files are here:

/opt/ibm/java2-i386-50/include/:
jawt.h jawt_md.h jdwpTransport.h jni.h jniport.h jvmpi.h jvmras.h
jvmri.h jvmti.h linux

/opt/ibm/java2-i386-50/include/linux:
jawt.h jawt_md.h jdwpTransport.h jni.h jniport.h jvmpi.h jvmras.h
jvmri.h jvmti.h linux

Note that the jvmdi.h is missing. I installed and configured the Sun
1.5 JDK, and it has the missing file:

/usr/java/jdk1.5.0_06/include/:
jawt.h jdwpTransport.h jni.h jvmdi.h jvmpi.h jvmti.h linux

/usr/java/jdk1.5.0_06/include/linux:
jawt_md.h jni_md.h

I am not sure why IBM doesn't include this file in their 1.5 JDK (they
include it with their older JDKs, inclusing 1.3 and 1.4)

I was able to get the JNI modules to compile in Resin by linking to the
Sun JDK files, but I wasn't sure if this was a good idea to run Resin
under one JDK when it was compiled against another. I also didn't want
to copy over the missing jvmdi.h from another JDK, as this might lead to
other problems.

Here are the compile errors I get:

[root@waldorf resin]# ./configure --enable-jni
--with-jni-include="-I/opt/ibm/java2-i386-50/include
-I/opt/ibm/java2-i386-50/include/linux"
    [/config output cut for brevity, but no errors/warnings occur/]

[root@waldorf resin]# make
(cd modules/c/src; make)
make[1]: Entering directory `/usr/local/resin-pro-3.0.18/modules/c/src'
for dir in common resin resinssl resin_os resin_os; do (cd $dir; make); done
make[2]: Entering directory
`/usr/local/resin-pro-3.0.18/modules/c/src/common'
gcc -c -I/usr/include -g -O2 -DPOLL -DHAS_JVMTI stream.c
gcc -c -I/usr/include -g -O2 -DPOLL -DHAS_JVMTI config.c
gcc -c -I/usr/include -g -O2 -DPOLL -DHAS_JVMTI memory.c
/usr/bin/ld -r -o common.o stream.o config.o memory.o
/usr/local/resin/libtool --silent --mode=compile gcc -o stream.lo -c
-I/usr/include -g -O2 -DPOLL -DHAS_JVMTI stream.c
/usr/local/resin/libtool --silent --mode=compile gcc -o config.lo -c
-I/usr/include -g -O2 -DPOLL -DHAS_JVMTI config.c
/usr/local/resin/libtool --silent --mode=compile gcc -o memory.lo -c
-I/usr/include -g -O2 -DPOLL -DHAS_JVMTI memory.c
make[2]: Leaving directory
`/usr/local/resin-pro-3.0.18/modules/c/src/common'
make[2]: Entering directory
`/usr/local/resin-pro-3.0.18/modules/c/src/resin'
gcc -g -O2 -DPOLL -DHAS_JVMTI -DRESIN_HOME=\"/usr/local/resin\"
-I/usr/include -I/opt/ibm/java2-i386-50/include
-I/opt/ibm/java2-i386-50/include/linux -I../common -DCPU=\"i386\" -DOS=
-D_FILE_OFFSET_BITS=64 -c -o std.o std.c
gcc -g -O2 -DPOLL -DHAS_JVMTI -DRESIN_HOME=\"/usr/local/resin\"
-I/usr/include -I/opt/ibm/java2-i386-50/include
-I/opt/ibm/java2-i386-50/include/linux -I../common -DCPU=\"i386\" -DOS=
-D_FILE_OFFSET_BITS=64 -c -o memory.o memory.c
gcc -g -O2 -DPOLL -DHAS_JVMTI -DRESIN_HOME=\"/usr/local/resin\"
-I/usr/include -I/opt/ibm/java2-i386-50/include
-I/opt/ibm/java2-i386-50/include/linux -I../common -DCPU=\"i386\" -DOS=
-D_FILE_OFFSET_BITS=64 -c -o jni_vfs.o jni_vfs.c
jni_vfs.c:81:19: error: jvmdi.h: No such file or directory
make[2]: *** [jni_vfs.o] Error 1
Steps To Reproduce
Additional Information
Attached Files

- Relationships

- Notes
(0001094)
sam
04-20-06 11:08

(rep by J Woolf)

This may shed some light. As JVMDI is being deprecated, perhaps the
engineers at IBM made the switch early.

http://java.sun.com/j2se/1.5.0/docs/guide/jpda/index.html [^]
 
(0001835)
sam
04-11-07 08:57

The jvmdi.h files is also not available with Java 6.
As a workaround, lines which include jvmdi.h and cause compilation errors can be removed from the C source files.

The lines look like this:

#include "jvmdi.h"
 

- Issue History
Date Modified Username Field Change
04-20-06 06:45 sam New Issue
04-20-06 06:45 sam Priority normal => high
04-20-06 11:08 sam Note Added: 0001094
04-20-06 11:10 anonymous Note Added: 0001095
04-20-06 11:10 anonymous Note Deleted: 0001095
04-21-06 05:03 bbothwell Issue Monitored: bbothwell
05-19-06 13:09 ferg Assigned To  => ferg
05-19-06 13:09 ferg Status new => closed
05-19-06 13:09 ferg Resolution open => fixed
05-19-06 13:09 ferg Fixed in Version  => 3.0.19
09-21-06 06:57 Lucien Issue Monitored: Lucien
04-11-07 08:57 sam Note Added: 0001835


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
37 total queries executed.
29 unique queries executed.
Powered by Mantis Bugtracker