RFR(M) : 7104565 : trim jprt build targets

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Apr 9 14:26:01 PDT 2013


Thank you, Davis

This looks good.

One note: in frame_sparc.cpp remove 'jvmg' in the line you modified 
since we will not build jvmg.

And question: did you use mercurial commands to remove and rename 
jvm.make and debug.make? We need to use hg commands to preserve changes 
history for jvmg.make (it has more changesets then old debug.make).

I just want to confirm because sometimes webrev may not show correctly 
what was done to sources. I mean you need to do:

hg remove debug.make
hg rename jvmg.make debug.make

and then edit debug.make

Thanks,
Vladimir

On 4/9/13 1:30 PM, David Chase wrote:
> http://cr.openjdk.java.net/~drchase/7104565/webrev.05/
>
> All issues below addressed.
> Diffs brought up-to-date with more recent version of hotspot.
> (re-)tested on JPRT, manually verified that MacOS debug build was in fact debuggable and that effects of -D ASSERT were seen (set breakpoints in methods that would have been inlined otherwise).
>
>
> On 2013-04-06, at 1:22 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>
>> make/Makefile:
>>
>> Instead of VM_SUBDIR=debug use what in other targets: VM_SUBDIR=$(@:export_%=%) (and $(@:export_%_jdk=%)) since name now matches.
>>
>> make/bsd/makefiles/fastdebug.make: why did not changed?
>>
>> make/solaris/makefiles/fastdebug.make: why you did next change? We should not low optimization level:
>>
>> < OPT_CFLAGS/DEFAULT= $(OPT_CFLAGS)
>> ---
>>> OPT_CFLAGS/DEFAULT= $(OPT_CFLAGS/SLOWER)
>>
>> All old debug.make should be removed and jvmg.make renamed to debug.make without changing its content. In other word, don't remove -D_NMT_NOINLINE_, it is needed.
>>
>> On related NMT note: in src/share/vm/memory/allocation.hpp replace _DEBUG_ with _NMT_NOINLINE_.
>>
>> In windows .dsp files remove /D "DEBUG"
>>
>> ./src/share/tools/hsdis/Makefile: remove that commented line.
>>
>> Thanks,
>> Vladimir
>>
>> On 4/6/13 7:56 AM, David Chase wrote:
>>> Wider list, more testing
>>>
>>> Recap (for hs-dev minus hs-compiler-dev):
>>>
>>>>> webrev: http://cr.openjdk.java.net/~drchase/7104565/webrev.02/
>>>>>
>>>>> Problem:
>>>>> Debug builds are inconsistently named, and are not needed for usual JPRT testing, and consume lots of space and time.
>>>>> #ifdef conventions are a little dubious (I'm just paraphrasing from the bug here).
>>>>>
>>>>> Fix:
>>>>> Pick up Tom Rodriguez's work towards a fix (95+% complete),
>>>>> translate forward in time to current build, check for omissions and changes.
>>>>>
>>>>> Fix includes:
>>>>> replace #ifdef DEBUG and #ifdef FASTDEBUG with #ifdef ASSERT
>>>>> consistently name the debug build "debug" instead of "jvmg"
>>>>> remove "debug" targets from JPRT properties files.
>>>>>
>>>>> Testing:
>>>>> Jtreg locally
>>>>> JPRT of usual compiler tests
>>>>> Cross-checked old diffs with new diffs
>>>>> JPRT of compiler regression tests
>>>>> Manually check that appropriate -DASSERT flag is passed to compilations.
>>>>>
>>>>> Noticeable changes:
>>>>> "make debug", not "make jvmg"
>>>>> JPRT of compiler regression tests is much faster and times out much less often.
>>>
>>>
>>> New webrev:
>>>
>>> http://cr.openjdk.java.net/~drchase/7104565/webrev.04       (new style, corrected script)
>>> http://cr.openjdk.java.net/~drchase/7104565/webrev.04.old (classic)
>>>
>>>
>>> Additional testing:
>>> open-closed new slowdebug build on Solaris10-Sparc, jtreg
>>> open+closed new fastedbug and slowdebug build on MacOS-10.8, jtreg
>>>
>>> JPRT from open+closed+changes build is bug-for-bug compatible with JPRT from open+closed build.
>>> (i.e., same 10 failures in DefaultMethodsTest.java, I assume this is a property of whatever version of jdk8tl and/or hotspot I grabbed)
>>>
>>> Scanned (find+grep) for occurrences of "^#.*DEBUG" in closed, found none.
>>>
>>> Additional changes:
>>> Added rule-with-warning to hotspot/Makefile for jvmg (necessary for new build)
>>> Removed overlooked redundant files.
>>> Corrected copyrights in changed files.
>>> Removed trailing spaces from changed files.
>>>
>>>
>>> Results of other scans:
>>> find . -name * -exec egrep ^#.*[^_A-Z]DEBUG([^_A-Z]|$) /dev/null {} ;
>>> ---------
>>> ./make/windows/projectfiles/compiler2/ADLCompiler.dsp:# ADD CPP /nologo /ML /W3 /WX /Gm /GX /Zi /Od /I "." /I "$(HotSpotWorkSpace)\src\share\vm\opto" /I "..." /D "WIN32" /D "DEBUG" /D "_WINDOWS" /D "ASSERT" /Fr /FD /c
>>>
>>> ./make/windows/projectfiles/tiered/ADLCompiler.dsp:# ADD CPP /nologo /ML /W3 /WX /Gm /GX /Zi /Od /I "." /I "$(HotSpotWorkSpace)\src\share\vm\opto" /I "..." /D "WIN32" /D "DEBUG" /D "_WINDOWS" /D "ASSERT" /Fr /FD /c
>>>
>>> ./src/os/bsd/dtrace/jhelper.d:#define DEBUG
>>> ./src/os/bsd/dtrace/jhelper.d:#ifdef DEBUG
>>> ./src/os/solaris/dtrace/jhelper.d:#define DEBUG
>>> ./src/os/solaris/dtrace/jhelper.d:#ifdef DEBUG
>>>
>>> ./src/share/tools/hsdis/Makefile:#CPPFLAGS	+= /D"WIN32" /D"_WINDOWS" /D"DEBUG" /D"NDEBUG"
>>> ---------
>>> find . -name * -exec egrep "DEBUG" /dev/null {} ;
>>> (that's a search for \"DEBUG\", results are a subset of above)
>>>
>>> The jhelper.d files seem to #define their own DEBUG; lacking other information, I'm leaving them alone.
>>> I am not sure what to make of the windows.dsp files; I suspect those are not comments
>>>
>>> Motivated by above, search for /DEBUG
>>> find . -name * -exec egrep /DEBUG([^_A-Z]|$) /dev/null {} ;
>>> ---------
>>> ./src/share/tools/ProjectCreator/WinGammaPlatformVC10.java:        // We always want the /DEBUG option to get full symbol information in the pdb files
>>> ./src/share/tools/ProjectCreator/WinGammaPlatformVC10.java:        // Empty now that /DEBUG option is used by all configs
>>> ./src/share/tools/ProjectCreator/WinGammaPlatformVC7.java:      addAttr(rv, "GenerateDebugInformation", "TRUE"); // == /DEBUG option
>>> ./src/share/vm/opto/ifnode.cpp:  // bail (or bomb[ASSERT/DEBUG]) if NOT projection-->IfNode-->BoolNode
>>> ---------
>>>
>>> find . -name * -exec egrep  DEBUG( |$) /dev/null {} ;
>>> (nothing significant beyond what is already seen above)
>>>
>>>
>>> QUESTIONS:
>>> 1) What about those Windows files?
>>>
>>> 2) I noticed that there were already both "debug.make" and "jvmg.make" with tiny differences.
>>> The starting point for this work included changes to jvmg.make; it seems like those
>>> should have been made to debug.make instead and jvmg.make deleted.
>>> I experimentally removed all versions of jvmg.make and successfully configured
>>> slow-debug and made images on MacOS.
>>>
>>> for i in {bsd,linux,solaris} ; do diff -U 1 make/$i/makefiles/{jvmg,debug}.make; done
>>> --- make/bsd/makefiles/jvmg.make	2013-04-05 17:18:25.000000000 -0400
>>> +++ make/bsd/makefiles/debug.make	2013-04-05 17:18:25.000000000 -0400
>>> @@ -29,5 +29,3 @@
>>>   DEBUG_CFLAGS/BYFILE = $(DEBUG_CFLAGS/$@)$(DEBUG_CFLAGS/DEFAULT$(DEBUG_CFLAGS/$@))
>>> -
>>> -# _NMT_NOINLINE_ informs NMT that no inlining by Compiler
>>> -CFLAGS += $(DEBUG_CFLAGS/BYFILE) -D_NMT_NOINLINE_
>>> +CFLAGS += $(DEBUG_CFLAGS/BYFILE)
>>>
>>> --- make/linux/makefiles/jvmg.make	2013-04-05 17:18:25.000000000 -0400
>>> +++ make/linux/makefiles/debug.make	2013-04-05 17:18:25.000000000 -0400
>>> @@ -29,5 +29,3 @@
>>>   DEBUG_CFLAGS/BYFILE = $(DEBUG_CFLAGS/$@)$(DEBUG_CFLAGS/DEFAULT$(DEBUG_CFLAGS/$@))
>>> -
>>> -# _NMT_NOINLINE_ informs NMT that no inlining by Compiler
>>> -CFLAGS += $(DEBUG_CFLAGS/BYFILE) -D_NMT_NOINLINE_
>>> +CFLAGS += $(DEBUG_CFLAGS/BYFILE)
>>>
>>> --- make/solaris/makefiles/jvmg.make	2013-04-05 17:18:25.000000000 -0400
>>> +++ make/solaris/makefiles/debug.make	2013-04-05 17:18:25.000000000 -0400
>>> @@ -1,3 +1,3 @@
>>>   #
>>> -# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
>>> +# Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
>>>   # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
>>> @@ -39,4 +39,3 @@
>>>
>>> -# _NMT_NOINLINE_ informs NMT that no inlining by Compiler
>>> -CFLAGS += $(DEBUG_CFLAGS/BYFILE) -D_NMT_NOINLINE_
>>> +CFLAGS += $(DEBUG_CFLAGS/BYFILE)
>>>
>>>
>>>
>>>
>


More information about the hotspot-dev mailing list