JavaSE 7 build 15 is available at the openjdk.java.net website

Andrew Haley aph at redhat.com
Wed Jul 25 10:59:42 UTC 2007


Andrew John Hughes writes:
 > On Friday 06 July 2007 17:57, Francis Kung wrote:
 > > Hi,
 > >
 > > > The OpenJDK source, Compiler source and Jtreg binary for the promoted
 > > > JavaSE 7 build b15 is available under the openjdk
 > > > https://openjdk.dev.java.net website under Source Code (direct link to
 > > > bundles:  http://download.java.net/openjdk/jdk7 )
 > >
 > > I am seeing a build failure with this release:
 > >
 > > openjdk/hotspot/src/cpu/i486/vm/assembler_i486.hpp:161: error: extra
 > > qualification ?Address::? on member ?Address?
 > >
 > > Applying this patch fixes the issue:
 > > http://icedtea.classpath.org/hg/icedtea/diff/f37ba6246a75/patches/icedtea-buildfix.patch
 > >
 > > Cheers,
 > > Francis
 > 
 > I'm also seeing a failure with b15 on amd64, both building it via IcedTea and 
 > running the downloadable build.
 > 
 > #  Internal Error (relocInfo_amd64.cpp:67), pid=914, tid=1076017504
 > #  Error: ShouldNotReachHere()
 > 
 > It occurs from just running 'java' and the rest of the build fails because 
 > HotSpot can't be used to build j2se.  I've filed a bug report with the full 
 > hs_err file details.

URL, please.

 > This also still occurs with b16.

This is a similar problem to my Assembler::check_relocation patch, and
I suspect it's kernel dependent.  On later kernels, entry points for
some syscalls require a 64-bit offset, so the usual "call foo" form of
an instruction doesn't work.  Instead, you have to do

      mov addr64, %r10
      call *%r10

The logic that generates the 64-bit call is here:

void MacroAssembler::call(AddressLiteral entry) {
  if (reachable(entry)) {
    Assembler::call_literal(entry.target(), entry.rspec());
  } else {
    lea(rscratch1, entry);
    Assembler::call(rscratch1);
  }
}

So, Relocation::pd_call_destination needs to be modified to cope with
this.  It's fairly easy to fix if you can debug the fault, but hard
otherwise.  You just have to add the pattern above to the if..else
chain.

You might like to put a breakpoint on
MacroAssembler::call(AddressLiteral) to see what function is
triggering this.

Andrew.

-- 
Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, UK
Registered in England and Wales No. 3798903



More information about the discuss mailing list