Second Zero review request

Tom Rodriguez Thomas.Rodriguez at Sun.COM
Tue Oct 6 14:06:23 PDT 2009


On Oct 2, 2009, at 7:21 AM, Gary Benson wrote:

> 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.

That's a good idea.

tom

>
>> 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