Native wrapper compilation and LLVM 2.6

Andrew Haley aph at
Wed Oct 28 03:10:56 PDT 2009

Gary Benson wrote:

> This past week or so I've been working on making Shark support
> compilation of native (JNI) method wrappers.  The way HotSpot
> does this has the wrappers being generated outside the compiler
> thread, so you have LLVM calls being made from two different
> threads.
> LLVM < 2.6 doesn't support this, and it's not possible to work
> around this with locking; the compiler thread in HotSpot runs
> _thread_in_native, which means it cannot hold locks.  (And if
> you hack one in there, it deadlocks at the first safepoint ;))
> I'm wondering... is anyone using Shark with LLVM < 2.6?  I have
> two options here:
>  - Write it such that JNI compilation is conditional on
>    LLVM >= 2.6.  This requires lots of #ifdefs but is possible.
>  - Strip out LLVM < 2.6 support.  This is easier (and neater,
>    IMO).  But not really an option if someone depends on it.
> What do people think?

Shark is advanced technology: I don't think it would hurt to require
LLVM >= 2.6.  The only person who might be badly affected is Ed Nevill,
I suspect.


More information about the distro-pkg-dev mailing list