[fedora-java] libvirt-java bindings

Andrew Haley aph at redhat.com
Wed Jul 2 10:30:09 UTC 2008


Mary Ellen Foster wrote:
> 2008/7/1 David Walluck <david at zarb.org>:
>> Mary Ellen Foster wrote:
>> | I have one recent package that does this (specifies openjdk on F9+ and
>> | icedtea on F8) and one that doesn't (just wants java >= 1.5). The
>> | first package uses JNI and needs a Sun-like JVM to work (or at least
>> | it took more autotools hacking than I cared to try to make it work),
>> | and if I just put Requires: java it tended to grab gcj. I guess I
>> | could also put java > 1.5, but the issue isn't the 1.5-ness, it's the
>> | Sun-style JNI classes.
>>
>> This is not an issue with the java-devel packages, but rather an issue
>> with either the upstream configure or an issue with the GCJ packaging.
>>
>> If it is lack of JNI support in GCJ, that is one thing. If it is simply
>> that the package is expecting a differnt layout that is another.
> 
> I just did a bit of hacking, and it is possible to build the package
> against gcj instead of openjdk. There were two things to fix:
> - the "configure" script followed symlinks from javac to find the JNI
> include dir. Since the symlinks for gcj ground out at /usr/bin/ecj, it
> ended up looking for /usr/include/jni.h.

Hmm.  This package assumes that the chain of symlinks ends at the installed
binary, which must be in the jdk dir.

/usr/bin/javac -->
/etc/alternatives/javac -->
/usr/lib/jvm/java-1.4.2-gcj/bin/javac -->
/usr/bin/ecj

?

> - It also wanted to hardcode "-ljava -lverify -ljvm" on the gcc line,
> which isn't right for gcj

No.  I'm surprised it's right for Java either; libjvm and libverify
I'd expect.

> But I'm not sure if I want to make these modifications to the package.
> If I build a JNI program against gcj, can the resulting .so be used
> with Sun-like JVMs? How does this work? Is it documented anywhere?

I think so.

Andrew.




More information about the fedora-devel-java-list mailing list