[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: j2sdk build-depends cannot be satisfied?



[I think this is still topical to both debian-mentors and debian-java.
Someone tell me if they want it moved to one or the other...]

> gcj is supposed to come with a working jni implementation and comes with
> gij (GNU Interpreter for Java) for interpreting bytecode. What exactly
> doesn't work with gcj? Could you please file a bug report?
> http://gcc.gnu.org/bugs.html
> That way we at least know about the issue.
> 
> Also Kaffe, Kissme and SableVM (all part of Debian now) should be able
> to run java byte code and jni code.

Wow.  I'm fairly impressed.  It didn't take a lot of screwing around to
make this work.  I had to go with gcj-3.2, and that forced me to go with
gcc-3.2 as well, and then I used fastjar to build the jarfiles.  I
attempted to use gjdoc for Javadoc, with only limited success (more on
that later).  Anyway, I'm glad you suggested that I look into this. :-)

The gij java runtime would not work for my test case (just some simple
server/client pairs that come with the nbio distribution) but the kaffe
runtime did work.  I haven't yet tried the SableVM runtime.  

The error I got from gij (below my signature) it a little out of my
league.  I'm not exactly sure what bug I would file... perhaps you can
make a suggestion?  I'd be happy to do some more digging if you think
it's worth it.

I have several more questions now (I guess these are debian-mentors
questions):

I'd like to distribute the Javadoc documentation with the package, but
gjdoc doesn't seem to be quite up to the task yet.  I don't know of
another free Javadoc tool.  I've thought that maybe I could pre-generate
the Javadoc documentation using the non-free tool, and include it
in the source distribution as part of the diff.  This way, I won't
need to depend on a non-free tool to generate documentation that won't
change after I build the package, anyway.  I'm not sure what stance
policy takes on things like this.  Good idea?  Bad idea?

Since I now need gcc-3.2 to make this work, I believe it's proper to
list gcc-3.2 as a Build-Depends, at least until it's the default and is
available on all architectures.  Is this correct?

In the original version of my package, I just listed a Depends on
java-common.  Is this still appropriate, even though I know that not
every package that provides java-common will work with my package?

Thanks, all of you, for the help.  Sorry if I'm rambling.  It's 3:00am
and I should stop hacking and go to bed. :-)

KEN

-- 
Kenneth J. Pronovici <pronovic@ieee.org>
Personal Homepage: http://www.skyjammer.com/~pronovic/
"They that can give up essential liberty to obtain a little 
 temporary safety deserve neither liberty nor safety." 
      - Benjamin Franklin, Historical Review of Pennsylvania, 1759 


NBIOClient starting...
Exception in thread "main" java.lang.UnsatisfiedLinkError: NBIO: Cannot
resolve field buf ([B) in nbio_init_fids() -- this is a bug, please
contact <mdw@cs.berkeley.ed
u
   at 0x4017224b: java.lang.Throwable.Throwable(java.lang.String)
(/usr/lib/libgcj.so.2)
   at 0x401687eb: java.lang.Error.Error(java.lang.String)
(/usr/lib/libgcj.so.2)
   at 0x4016a92f: java.lang.LinkageError.LinkageError(java.lang.String)
(/usr/lib/libgcj.so.2)
   at 0x401725a7:
java.lang.UnsatisfiedLinkError.UnsatisfiedLinkError(java.lang.String)
(/usr/lib/libgcj.so.2)
   at 0x40239263: ffi_call_SYSV (/usr/lib/libgcj.so.2)
   at 0x40238f7e: ffi_call (/usr/lib/libgcj.so.2)
   at 0x401605b1: _Jv_CallAnyMethodA(java.lang.Object, java.lang.Class,
_Jv_Method, boolean, java.lang.Class[], jvalue, jvalue)
(/usr/lib/libgcj.so.2)
   at 0x401607c4: _Jv_CallAnyMethodA(java.lang.Object, java.lang.Class,
_Jv_Method, boolean, java.lang.Class[], java.lang.Object[])
(/usr/lib/libgcj.so.2)
   at 0x4015efd5:
java.lang.reflect.Constructor.newInstance(java.lang.Object[])
(/usr/lib/libgcj.so.2)
   at 0x40140b02: ?? (??:0)
   at 0x400139cd: ?? (??:0)
   at 0x40013beb: Java_seda_nbio_NonblockingSocketImpl_nbSocketCreate
(/usr/lib/java/jni-1.2/libNBIO2.so)
   at 0x40239263: ffi_call_SYSV (/usr/lib/libgcj.so.2)
   at 0x4023922b: ffi_raw_call (/usr/lib/libgcj.so.2)
   at 0x40141c22: _Jv_JNIMethod.call(ffi_cif, void, ffi_raw, void)
(/usr/lib/libgcj.so.2)
   at 0x40239118: ?? (??:0)
   at 0x40239263: ffi_call_SYSV (/usr/lib/libgcj.so.2)
   at 0x4023922b: ffi_raw_call (/usr/lib/libgcj.so.2)
   at 0x4014c8db: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation)
(/usr/lib/libgcj.so.2)
   at 0x40150703: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw,
_Jv_InterpMethodInvocation) (/usr/lib/libgcj.so.2)
   at 0x4014c671: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw,
void) (/usr/lib/libgcj.so.2)
   at 0x40239118: ?? (??:0)
   at 0x40239263: ffi_call_SYSV (/usr/lib/libgcj.so.2)
   at 0x4023922b: ffi_raw_call (/usr/lib/libgcj.so.2)
   at 0x4014c8db: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation)
(/usr/lib/libgcj.so.2)
   at 0x40239118: ?? (??:0)
   at 0x40239263: ffi_call_SYSV (/usr/lib/libgcj.so.2)
   at 0x4023922b: ffi_raw_call (/usr/lib/libgcj.so.2)
   at 0x4014c8db: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation)
(/usr/lib/libgcj.so.2)
   at 0x40150703: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw,
_Jv_InterpMethodInvocation) (/usr/lib/libgcj.so.2)
   at 0x4014c671: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw,
void) (/usr/lib/libgcj.so.2)
   at 0x40239118: ?? (??:0)
   at 0x40239263: ffi_call_SYSV (/usr/lib/libgcj.so.2)
   at 0x4023922b: ffi_raw_call (/usr/lib/libgcj.so.2)
   at 0x4014c8db: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation)
(/usr/lib/libgcj.so.2)
   at 0x40150703: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw,
_Jv_InterpMethodInvocation) (/usr/lib/libgcj.so.2)
   at 0x4014c671: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw,
void) (/usr/lib/libgcj.so.2)
   at 0x40239118: ?? (??:0)
   at 0x40239263: ffi_call_SYSV (/usr/lib/libgcj.so.2)
   at 0x4023922b: ffi_raw_call (/usr/lib/libgcj.so.2)
   at 0x4014c8db: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation)
(/usr/lib/libgcj.so.2)
   at 0x40150703: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw,
_Jv_InterpMethodInvocation) (/usr/lib/libgcj.so.2)
   at 0x4014c671: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw,
void) (/usr/lib/libgcj.so.2)
   at 0x4015365f: gnu.gcj.runtime.FirstThread.run()
(/usr/lib/libgcj.so.2)
   at 0x4015db63: java.lang.Thread.run_(java.lang.Object)
(/usr/lib/libgcj.so.2)
   at 0x402386a8: ?? (??:0)
   at 0x403def76: GC_start_routine (/usr/lib/libgcjgc.so.1)
   at 0x403f7048: ?? (??:0)
   at 0x4053d9b4: __clone (/lib/libc.so.6)  



Reply to: