subversion-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Branko ─îibej (JIRA) <j...@apache.org>
Subject [jira] [Resolved] (SVN-4443) New inner classes in javahl JNI interface are not handled correctly by javah from gcj
Date Fri, 22 Apr 2016 06:48:12 GMT

     [ https://issues.apache.org/jira/browse/SVN-4443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Branko ─îibej resolved SVN-4443.
-------------------------------
    Resolution: Won't Fix

Please report a bug in gcj. If it wants to be a drop-in replacement for the "official" Java
SDK, it should have identical behaviour.

> New inner classes in javahl JNI interface are not handled correctly by javah from gcj
> -------------------------------------------------------------------------------------
>
>                 Key: SVN-4443
>                 URL: https://issues.apache.org/jira/browse/SVN-4443
>             Project: Subversion
>          Issue Type: Bug
>          Components: bindings_javahl
>    Affects Versions: 1.8.x
>            Reporter: Dominik Stadler
>             Fix For: ---
>
>
> {noformat:nopanel=true}
> Since 1.8 there is a new class VersionExtended.java in javahl which contains 4
> inner classes, all of them contain native interfaces. 
> The usual steps for handling javahl Java->H generation seems to be to use
> build/generator/gen_make.py to generate the build-outputs.mk file which then
> contains all the necessary dependencies and calls. It seems gen_make.py
> currently expects the inner classes to be automatically generated as part of
> running javah on the outer class, as no special handling is implemented there.
> However on Ubuntu Precise (12.04) when the build uses javah from gcj, I do not
> get the .h files generated for the new inner classes.
> I.e. the following call will generate only one .h, whereas the build expects
> inner classes to be generated as well
> $ /usr/lib/jvm/java-gcj/bin/javah -force -d subversion/bindings/javahl/include
> -classpath subversion/bindings/javahl/classes:
> org.apache.subversion.javahl.types.VersionExtended
> With a different JDK, 4 additional header files will be generated.
> $ /usr/lib/jvm/java-7-oracle/bin/javah -force -d
> subversion/bindings/javahl/include -classpath
> subversion/bindings/javahl/classes:
> org.apache.subversion.javahl.types.VersionExtended
> So it seems javah from gcj expects the inner classes to be specified
> explicetely, when I specify them via
> "org.apache.subversion.javahl.types.VersionExtended$LoadedLib" when calling
> javah, the classes are generated successfully.
> I tried with the following Java versions, only gcj did not generate them,
> Sun/Oracle JDK seems to generate them in all recent major versions:
> $ /usr/lib/jvm/java-gcj/bin/javah -version
> javah (GNU Classpath) 0.98
> => No inner classes are generated
> $ /usr/lib/jvm/java-7-oracle/bin/javah -version
> javah version "1.7.0_45"
> => Inner classes are generated
> $ /usr/lib/jvm/java-1.5.0-sun/bin/javah -version
> javah version "1.5.0_19"
> => Inner classes are generated
> $ /usr/lib/jvm/java-1.6.0-openjdk/bin/javah -version
> javah version "1.6.0_27"
> => Inner classes are generated
> $ /usr/lib/jvm/java-7-openjdk-amd64/bin/javah -version
> javah version "1.7.0_25"
> => Inner classes are generated
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message