[PATCH] Enable debug info on all libraries for OpenJDK builds

Erik Joelsson erik.joelsson at oracle.com
Wed Apr 3 08:25:51 UTC 2013

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.


More information about the build-dev mailing list