You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Peter Samuelson <pe...@p12n.org> on 2008/06/06 06:26:42 UTC

1.5.0-rc9 build failure: javahl using gcj (gcc 4.2, 4.3)

'make javahl' now fails with the default JDK in Debian, gcc 4.2 or 4.3.
(I tested both.)  The trouble seems to stem from the behavior of the
gcc implementation of 'javah'.  While Sun JDK 6 javah produces files
like

    org_tigris_subversion_javahl_ConflictDescriptor_Action.h

...which Subversion expects, gcc javah instead produces

    org_tigris_subversion_javahl_ConflictDescriptor$Action.h

This was not a problem in Subversion 1.4 as nobody was using nested
classes like that.

Can anyone fix the Java bindings to work with the gcc 4.3 JDK?  I'll
try to do what I can, but I am not a Java developer.  If anyone needs a
build log I can produce one, but of course they grow quite large.

Thanks,
-- 
Peter Samuelson | org-tld!p12n!peter | http://p12n.org/

Re: 1.5.0-rc9 build failure: javahl using gcj (gcc 4.2, 4.3)

Posted by Tom Widmer <to...@googlemail.com>.
Peter Samuelson wrote:
> 'make javahl' now fails with the default JDK in Debian, gcc 4.2 or 4.3.
> (I tested both.)  The trouble seems to stem from the behavior of the
> gcc implementation of 'javah'.  While Sun JDK 6 javah produces files
> like
> 
>     org_tigris_subversion_javahl_ConflictDescriptor_Action.h
> 
> ...which Subversion expects, gcc javah instead produces
> 
>     org_tigris_subversion_javahl_ConflictDescriptor$Action.h
> 
> This was not a problem in Subversion 1.4 as nobody was using nested
> classes like that.
> 
> Can anyone fix the Java bindings to work with the gcc 4.3 JDK?  I'll
> try to do what I can, but I am not a Java developer.  If anyone needs a
> build log I can produce one, but of course they grow quite large.

There shouldn't really be any need to run javah as part of the build in 
any case - you do it once to generate the method stubs, then copy them 
into a .c file and forget about the header - it's not like you're going 
to be calling these functions from anywhere except java code, so why 
bother with a header?

So, to fix this, you could just:
1. Remove all lines like:
#include "org_tigris_subversion_javahl_ConflictDescriptor_Action.h"
from their associated .c files (presumably the .h files aren't under 
version control, but the .c files must be).
2. Remove the makefile stuff that calls javah.

Tom


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org