"[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote:

> On Fri, 12 Apr 2002, Pier Fumagalli wrote:
> 
>>>> Then it won't work... BTW, I hope you guys are not trying to load APR from
>>>> the VM, right? Because if so, I _really_ want to see how you can do it on
>>>> Mach-O kernel based Oses :)
> 
> mod_jk2 is using APR, and on the java side the JNI and Unix socket
> implementations are using APR. In addition we'll use APR to access shm,
> etc.
> 
> The socket transport will allways work - so if a VM can't load APR it can
> use socket transport and ignore the advanced features ( or wait for a
> fixed VM that supports JNI ).

It's not a matter of fixing the VM...

>> And to explain it better, on some Oses, such as Apple's MacOS/X,
>> System.load() will only load MH_BUNDLE libraries in the memory space, not
>> common DYLIBs. So, you'd have to have a MH_BUNDLE containing the dlopen()
>> (or however that function is called), so that you can load something like
>> APR, once that's loaded you register the functions and such, and
>> yadayadayada... Native loader... Way too compicarted...
> 
> So the VM supports JNI, but the JNI functions can't use any library ?
> Sounds like a serious bug. Hopefully we'll find a workaround, or just use
> socket transport from java.

Nope... The VM can load JNI libraries when those are linked as MH_BUNDLE,
which is a great feature of Mach-O: it's basically the separation in concept
of "library" and "plug-in". A plug-in is a MH_BUNDLE, and that gets loaded
within the scope of the VM as RTLD_LOCAL does on dyld systems. Sure that a
plugin can rely on external libraries (DYLIB or RTLD_GLOBAL), but those need
to be read before the VM start to avoid runtime linkage errors (if there's a
dual definition of a symbol, with RTLD_GLOBAL I'm dead, as I'll never know
where my code will crash).

That's why there's that nice environment *_PRELOAD (*=DYLD/LD), which links
the binary at process startup and will not make the process start if
something is not right.

The JVM _is_ behaving correctly, no bug whatsoever, the problem is that you
don't have to confuse a pluging (MH_BUNDLE, RTLD_LOCAL) with a library
(DYLIB, RTLD_GLOBAL)... All nice and clean.

>> believe we were still waiting for Costin to get the approval for
>> SilverEgg's...
> 
> jakarta-commons - I sent the proposal, it got the votes.

Craps another ml to check. :(

    Pier

--
I think that it's extremely foolish to name a server after the current U.S.
President.                                                 B.W. Fitzpatrick



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to