RFR(M) : 7104565 : trim jprt build targets

David Chase david.r.chase at oracle.com
Sat Apr 6 07:56:12 PDT 2013

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)

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 @@
-# _NMT_NOINLINE_ informs NMT that no inlining by Compiler
--- 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 @@
-# _NMT_NOINLINE_ informs NMT that no inlining by Compiler
--- 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.
@@ -39,4 +39,3 @@
-# _NMT_NOINLINE_ informs NMT that no inlining by Compiler

More information about the hotspot-dev mailing list