Customer Note -
Here's a microbenchmark which throws a LinkageError on X86 -server but runs fine with -client and -Xint.
I'm not sure why it throws the LinkageError; it works fine on our version of -server.
I'm not all that sure what the proper behavior should be, but I suspect the LinkageError isn't correct.
I have enclosed their tar file.(see attachments)
Before compiling, in CompileBroker:compile_method(), the server compiler resolves
string constants and loads signature classes. C1 does not do this.
The failure occurs as we prepare to compile from_loader2.gen.
The server compiler is slightly more eager in loading classes than the client
compiler or the interpreter. The function load_signature_classes() called to
resolve classes associated with the signature of the method being compiled.
The test case provided is an example where a LinkageError is thrown on the eager
class loading. See bug 4944478 for a similar case where a ClassNotFoundException
load_signature_classes() should ignore LinkageErrors.