On 2012-12-28 02:47, Mani Sarkar wrote:
Hi guys,
I have been following this thread and would like to see some examples
on using the below (-g and/or DEBUG_CLASSFILES=true options when
running the make command with the new build-infra system).
This variable only works with the old build system. The question was
directed at jdk7 so I didn't include information about the new build
system in the answer.
I have also come across a blog on java.net which talks about fastdebug and
product builds and suggests to do the following
*SKIP_DEBUG_BUILD=true SKIP_FASTDEBUG_BUILD=false DEBUG_NAME=fastdebug* for
a fastdebug build
and
*SKIP_DEBUG_BUILD=true SKIP_FASTDEBUG_BUILD=true* for a product build
To build fastdebug or what used to be called "debug" with the new build
system, you give the parameter --with-debug-level=slowdebug/fastdebug to
configure. The default is "release". There is a shorthand --enable-debug
which does fastdebug. Any debug level except release will enable -g for
javac. For native code, this is what the debuglevels do:
# release: no debug information, all optimizations, no asserts.
# fastdebug: debug information (-g), all optimizations, all asserts
# slowdebug: debug information (-g), no optimizations, all asserts
As I understand it, slowdebug is too slow to be usable so it's rarely
used. Fastdebug is what developers typically build.
There is currently no specific parameter to enable -g just for java
code. One way to achieve it is to add JAVAC_FLAGS=-g to the configure line.
bash configure JAVAC_FLAGS=-g
Are they flags still valid with the new build-infra system, should they be
accompanied by any other settings (any configure related commands). Where
should we expect the build artefacts to be created? Are there any flags to
build a full debug of the Hotspot? Examples on how to use these flags to
achieve the three respective types of builds would definitely be helpful.
No, the old variables are not valid. If you configure with a different
debuglevel, the build output will by default end up in a different
directory. Example:
build/linux-x86_64-normal-server-release
build/linux-x86_64-normal-server-fastdebug
The debuglevel also affects hotspot.
Examples and help can be found here:
http://openjdk.java.net/projects/build-infra/guide.html
Whats the difference between a full debug, fastdebug and product build in
terms of the build process and the end-output?
See above.
/Erik
Miten, if you are still following this thread, please feel free to join the
Adopt OpenJDK project as suggested by Ben by going to
http://java.net/projects/adoptopenjdk. The wiki and other links should help
you get started.
Thanks,
Mani