Is there any valid reason that a debug or fastdebug build should define PRODUCT and not ASSERT during compiles?
Derek White
derek.white at oracle.com
Fri Jan 8 22:07:51 UTC 2016
[This is likely a bug, but thought I'd ask it as a question first].
I'm new to jdk builds on windows, and have spent way more time than I'd
like to admit on figuring out why my fastdebug builds did not have
asserts turned on.
The TL;DR; answer is that anyone can build this way on Windows by simply
executing this in cygwin before doing a make:
> export release="Derek is having a fun day"
> bash common/bin/jib.sh make -p windows-x86-debug -- images
(This bug has nothing to do with jib, it's just the actual command line
I used.)
This results in a build with both /D "DEBUG_LEVEL=\"fastdebug\"" and /D
"PRODUCT" set, because nmake.exe uppercases all environment variables as
it imports them (as a convenience to the user).
I'd think that there is no useful purpose to supporting such a
configuration, and it's a bug to attempt it. I suggest doing an "!ifdef
RELEASE" check in windows/makefiles/debug.make and
windows/makefiles/fastdebug.make that either errors or unsets RELEASE
before including vm.make.
Any thoughts on this? Thanks!
- Derek
More information about the build-dev
mailing list