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