Bug 498964
Summary: | openjdk-devel does not provide jni.h | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Stepan Kasal <kasal> |
Component: | java-1.6.0-openjdk | Assignee: | Lillian Angel <langel> |
Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | low | ||
Version: | rawhide | CC: | dbhole, langel, lkundrak, mjw, omajid |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i386 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2009-05-11 11:26:15 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Stepan Kasal
2009-05-04 15:44:57 UTC
It does: $ rpm -ql java-1.6.0-openjdk-devel | grep jni /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/include/jni.h /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/include/linux/jni_md.h However, java-1.6.0-openjdk doesnt add it to the default search path. AC_CHECK_HEADER uses cpp to find out if the header is available. So cpp needs to be told about java-1.6.0-openjdk's include dir. This works for me: CPPFLAGS="-I/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/include/linux $CPPFLAGS" CPPFLAGS="-I/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/include $CPPFLAGS" AC_CHECK_HEADER([jni.h],, [AC_ERROR(jni.h not found)]) Please see this for more information: http://sources.redhat.com/ml/automake/2001-05/msg00012.html (In reply to comment #1) > CPPFLAGS="-I/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/include/linux $CPPFLAGS" > CPPFLAGS="-I/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/include $CPPFLAGS" > AC_CHECK_HEADER([jni.h],, [AC_ERROR(jni.h not found)]) I do not think that hardwiring these directories to configure.ac is the right solution. But your advice was the first hint towards the solution; then more hints came from fedora-devel-java-list, see http://thread.gmane.org/gmane.linux.redhat.fedora.java/2993/focus=3007 To sum up: even though gcj has jni.h in the default cpp search path, this is not guaranteed by all java implementations. But every java alternative should place jni.h under the directory /usr/lib/jvm/java, which is maintained by the alternatives utility. The following seems to be the right bit to make *.spec portable to all archs: BuildRequires: java-devel [...] %build for i in -I/usr/lib/jvm/java/include{,/linux}; do java_inc="$java_inc $i" done %configure CPPFLAGS="$java_inc" |