[fedora-java] interpreter mystery

Anthony Green green at redhat.com
Mon Aug 28 04:27:10 UTC 2006


On Sun, 2006-08-27 at 15:02 -0600, Tom Tromey wrote:
> One way to check is to run gij with -verbose:class and look at the
> output.  It will tell you which classes are defined "BC-compiled",
> which are interpreted, etc.

This output looks very suspicious to me:
[Loaded (bytecode) org.bouncycastle.jce.provider.BouncyCastleProvider from (file:/usr/share/java/gcj-endorsed/bcprov-1.33.ja\r <no certificates>)]
[Loaded (BC-compiled) org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers from (file:/usr/share/java/gcj-endorsed/bcprov-1.33.j\ar <no certificates>)]
[Loaded (BC-compiled) org.bouncycastle.asn1.DERObjectIdentifier from (file:/usr/share/java/gcj-endorsed/bcprov-1.33.jar <no \certificates>)]
[Loaded (BC-compiled) org.bouncycastle.asn1.DERObject from (file:/usr/share/java/gcj-endorsed/bcprov-1.33.jar <no certificat\es>)]
[Loaded (BC-compiled) org.bouncycastle.asn1.ASN1Encodable from (file:/usr/share/java/gcj-endorsed/bcprov-1.33.jar <no certif\icates>)]
[Loaded (pre-compiled) org.bouncycastle.asn1.DEREncodable from (file:/usr/share/java/gcj-endorsed/bcprov-1.33.jar <no certif\icates>)]
[Loaded (pre-compiled) org.bouncycastle.asn1.DERTags from (file:/usr/share/java/gcj-endorsed/bcprov-1.33.jar <no certificate\s>)]

This is all from the same .jar that was built to a .so using our
standard mechanism.

Similarly, it looks as though some Azureus and SWT classes are
"BC-compiled" and some are "bytecode".

BTW, I also noticed in an ant run that ant was executing natively, while
the Eclipse compiler it invokes is being interpreted.  Builds are
noticeable slower than on my FC5 machine.

> I don't think there is a super-easy way to check the contents of a
> .jar against a given .db -- but you could make a new .db using the SWT
> .jar, then dump both the installed .db and the new one, and compare
> class signatures using a script.  Maybe the installed .db is corrupted
> or made from an old SWT or something.

Gah.. this is the problem.  Somewhere along the line aot-compile-rpm is
creating partial classmap.db files.  For instance, bcprov-1.33.jar.db
only contains 331 entries but bcprov-1.33.jar has over 800 classes.

I'll file a bug (against java-1.4.2-gcj-compat-devel I suppose) and copy
relevant people.

AG





More information about the fedora-devel-java-list mailing list