Mixing BC and CNI in the same executable

Andrew Haley aph@redhat.com
Sat Jan 23 09:53:00 GMT 2010


On 23/01/10 09:32, Bryce McKinlay wrote:

> It looks like the problem here is that antlr-runtime.jar.so was built
> with BC, but the java code in your app binary was not. When using
> BC-ABI (and specifically, -findirect-classes), the class$ symbols are
> hidden.
> 
> Try building the Antlr .so with -findirect-dispatch
> -fno-indirect-classes. This means that it's calls will be made with be
> made with the BC ABI but class references will not - which is probably
> ok most of the time.
> 
> I'd also build the java code in your app binary with
> -findirect-dispatch -fno-indirect-classes.

And the application must be compiled -fpic.  Really important!

Andrew.



More information about the Java mailing list