RFR(M) : 7104565 : trim jprt build targets
Vladimir Kozlov
vladimir.kozlov at oracle.com
Sat Apr 6 10:22:16 PDT 2013
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