Second Zero review request

Gary Benson gbenson at redhat.com
Fri Oct 2 07:21:47 PDT 2009


Tom Rodriguez wrote:
> I'm looking through these changes right now but I finally looked
> into getting the arch into the build directory name.  Basically I
> added an extra variable called VARIANTARCH that is used to override
> BUILDARCH in PLATFORM_DIR and modified the zero build rules to use
> ZERO_LIBARCH for this.  This results in linux_i386_zero for example,
> so it won't use the same arch names as regular hotspot builds since
> they use i486 for historical reasons but it's a more accurate naming
> than zero_zero.

You could do this:

  diff -r c39480d3aae6 hotspot/make/linux/Makefile
  --- a/hotspot/make/linux/Makefile	Fri Oct 02 15:00:09 2009 +0100
  +++ b/hotspot/make/linux/Makefile	Fri Oct 02 15:02:20 2009 +0100
  @@ -257,7 +257,7 @@
   
   $(SUBDIRS_ZERO): $(BUILDTREE_MAKE) platform_zero
   	$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
  -	$(BUILDTREE) VARIANT=zero VARIANTARCH=$(ZERO_LIBARCH)
  +	$(BUILDTREE) VARIANT=zero VARIANTARCH=$(subst i386, i486, $(ZERO_LIBARCH))
   
   platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in
   	$(SED) 's/@ZERO_ARCHDEF@/$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@

That would make it linux_i486_zero.  I think i486 is the only odd one.

> I also found that I couldn't build zero by simply cd'ing to
> make/linux and type make jvmgzero (plus all the required ZERO_ defs)
> as I would expect.  The reason is that the code that generates
> platform_zero refers to OUTPUTDIR which doesn't mean anything unless
> you invoke make from make/Makefile.  It has a value but that value
> isn't the necessarily the actual output directory.  The platform
> makefiles always build in the current directory so simply removing
> $(OUTPUTDIR) for that platform_zero rule allows it to work as
> expected and shouldn't change it's behaviour since OUTPUTDIR is
> always equivalent to pwd.  I've attached a patch that does both the
> VARIANTARCH changes and the platform_zero changes.  I was able to
> build successfully with both make/Makefile and make/linux/Makefile
> producing linux_i386_zero as the build directory.

Thank you.

> Unfortunately the bits crashed when running Queens but that happened  
> with or without my changes.  The make command I issued was:
>
> make ZERO_ARCHDEF=IA32 ZERO_BUILD=true ZERO_LIBARCH=i386  
> ZERO_ENDIANNESS=little ARCH_DATA_MODEL=32 ZERO_ARCHFLAG=-m32 jvmgzero  
> LIBFFI_LIBS=-lffi
>
> This is the crash message.
>
> cd linux_i386_zero/jvmg && ./test_gamma
> java full version "1.6.0_14-b08"
> # To suppress the following error report, specify this argument
> # after -XX: or in .hotspotrc:  SuppressErrorAt=/ bytecodeInterpreter.cpp:427
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  Internal Error (/home/never/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp:427), pid=9886, tid=1082800448
> #  Error: assert(istate->_stack_limit == istate->_thread->last_Java_sp() + 1,"wrong")
> #
> # JRE version: 6.0_14-b08
> # Java VM: OpenJDK Zero VM (17.0-b01-internal-jvmg interpreted mode linux-i386 )
> # An error report file with more information is saved as:
> # /home/never/hotspot/make/linux/linux_i386_zero/jvmg/hs_err_pid9886.log
> #
> # If you would like to submit a bug report, please visit:
> #   http://java.sun.com/webapps/bugreport/crash.jsp
> #
> Current thread is 1082800448
> Dumping core ...
> Aborted
> make: *** [jvmgzero] Error 134

Someone else reported this the other day.  I'll look into it...

Cheers,
Gary

-- 
http://gbenson.net/


More information about the hotspot-dev mailing list