RFR(M) : 7104565 : trim jprt build targets

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Apr 9 21:41:49 PDT 2013

On 4/9/13 9:09 PM, David Holmes wrote:
> On 10/04/2013 1:09 PM, Vladimir Kozlov wrote:
>> For both debug/fastdebug builds ASSERT is set. So this replacement is
>> correct.
> It is equivalent based on the present setting of flags, but code added
> for debugging purposes and code added for assertions are quite distinct
> things. I think many people will be surprised to find that we have:

I think everyone working on Hotspot already knows this and will not 
surprise. Yes, we use #ifdef ASSERT to produce debug outputs and for 

> #ifdef ASSERT
> #define DEBUG_ONLY(code) code
> #define NOT_DEBUG(code)
> and not
> #if defined(DEBUG) || defined(FASTDEBUG)
> #define DEBUG_ONLY(code) code
> #define NOT_DEBUG(code)

Yes, we had very long discussion before about this and decided to keep 
it as it is. I would like to avoid such discussion again.

>>> Ditto for src/share/vm/classfile/stackMapFrame.hpp - that code is not
>>> assert related but debugging related. Further you have now added that
>> It is assert related! VM will assert (I hope) somewhere where we check
>> values in wrong place on stack or VM dies (SEGV) which is also good
>> since it is incorrect to use invalid values.
> Even if ultimately this code relies on assertions to flag errors it is
> still fundamentally additional debugging code. It is an extra level of
> checking/verification that we did not want to do for either product
> builds or fastdebug builds. But now it is in fastdebug. Is that a
> problem? can't say for sure as I don't do anything that relies on
> fastdebug being fast. If no one cares then maybe we can kill fastdebug
> too? Afterall it already has all that DEBUG_ONLY code in it so not as
> fast as one might assume.

David, the only difference between debug and fastdebug VM builds should 
be optimization level. The fastdebug VM uses the same -O4 (or -O3) as 
product build which forces inlining and other optimization and helps 
with VM speed. Debug VM compiled without any optimizations and does not 
inline (we need this to be able debug). It is a lot slower then 
fastdebug VM and because of that can't be used for testing. There should 
be no other differences between debug and fastdebug VM.

All checks done in debug VM should be done in fastdebug VM, period!

>>> The changes in src/share/vm/shark/llvmHeaders.hpp need to be confirmed
>>> by the shark folk (if they haven't already). (And of course depend on
>>> -DDEBUG being eradicated.)
>> Oracle is not supporting shark! They are on this mailing alias. We
>> discussing this for long time already. We hear nothing from them. If
>> they find problems later they will send a patch and we use it.
> As long as this shouldn't break their build (which it shouldn't). But
> based on that view you could have simply left this untouched.

It looks like that code tries to preserve our DEBUG across llvm include 
files. Yes, you are right - we can leave it.

David C., please, undo changes in llvmHeaders.hpp.


> Thanks,
> David
>> Thanks,
>> Vladimir
>>> Thanks,
>>> David
>>> -----
>>> On 10/04/2013 9:01 AM, David Chase wrote:
>>>> On 2013-04-09, at 5:26 PM, Vladimir Kozlov
>>>> <vladimir.kozlov at oracle.com> wrote:
>>>>> One note: in frame_sparc.cpp remove 'jvmg' in the line you modified
>>>>> since we will not build jvmg.
>>>> done
>>>>> 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
>>>> To be sure:
>>>> 10009  hg revert make/{solaris,bsd,linux}/makefiles/jvmg.make
>>>> 10010  zip -9 ../safemakes.zip
>>>> make/{solaris,bsd,linux}/makefiles/debug.make
>>>> 10011  hg revert make/{solaris,bsd,linux}/makefiles/debug.make
>>>> 10012  hg remove make/{solaris,bsd,linux}/makefiles/debug.make
>>>> 10013  for i in solaris bsd linux ; do hg rename
>>>> make/$i/makefiles/{jvmg,debug}.make; done
>>>> 10014  unzip -l ../safemakes.zip
>>>> 10015  unzip ../safemakes.zip
>>>> And the new-and-improved diffs:
>>>> http://cr.openjdk.java.net/~drchase/7104565/webrev.06-new/

More information about the hotspot-dev mailing list