On 2013-04-02 18:56, Andrew Hughes wrote:
With the new build system, the availability of debugging information in the
JDK build is a complete mess, controlled by different flags from those that
control the HotSpot build.
Even when debugging is asked for, it is only turned on for a small number of
libraries on GNU/Linux. On Windows, this is overridden with no real
explanation:
in 7197849: Update new build-infra makefiles.
> From jdk/makefiles/CompileNativeLibraries.gmk:
# Use this variable to set DEBUG_SYMBOLS true on windows for all libraries, but
# not on other platforms.
ifeq ($(OPENJDK_TARGET_OS), windows)
WINDOWS_ONLY := true
endif
and then WINDOWS_ONLY is used as the value for DEBUG_SYMBOLS on most, but not
all,
libraries (those that are Mac or GNU/Linux only are missed).
This webrev:
http://cr.openjdk.java.net/~andrew/build/debugging/webrev.01/
cleans up the situation, adding DEBUG_ALL_BINARIES in place of WINDOWS_ONLY and
adding it to all libraries that don't have DEBUG_SYMBOLS set to true. The
previous
Windows conditional uses this new symbol in place of WINDOWS_ONLY and the
following
is also added:
ifdef OPENJDK
DEBUG_ALL_BINARIES := true
endif
so non-OpenJDK builds will still get the same situation as before, while OpenJDK
builds will get the expected debugging information when it's asked for.
All that's now missing compared with a 7 image is debugging on program binaries
which
I'll look at next.
Does this look ok? And if so, can I have a bug ID for it?
I think this looks fine and I've created
"JDK-8011366: Enable debug info on all libraries for OpenJDK builds"
I think someone more intimately familiar with debugging these libraries
should also comment on this.
Note that by adding the new variable to places where there was no
DEBUG_SYMBOLS before actually will change behavior on windows for non
open builds. Also, at least for release builds, the new system was
deliberately mimicking the old system very closely. This has highlighted
some of the weirdness that was there already. It's good that it can now
be fixed.
/Erik