-
Bug
-
Resolution: Fixed
-
P4
-
9
-
None
-
generic
-
generic
Note: This problem appears to apply to other Unix platforms, but I've only carefully looked at the Linux case.
When a jdk build is configured for fastdebug and with --enable-native-debug-symbols=internal, hotspot files are compiled as if for slowdebug.
hotspot/make/linux/makefiles/fastdebug.make defaults FASTDEBUG_CFLAGS to $(DEBUG_CFLAGS), which is wrong, and which happens in the described configuration because code elsewhere doesn't give FASTDEBUG_CFLAGS an earlier value.
common/autoconf/jdk-options.m4 dispatches on the value of NATIVE_DEBUG_SYMBOLS (which captures the --enable-native-debug-symbols value). For most cases this dispatch sets DEBUG_BINARIES=false, but the "internal" case sets DEBUG_BINARIES=true. This is a leftover from an earlier attempt to use DEBUG_BINARIES to control debug info.
As a result of DEBUG_BINARIES being true in the "internal" case, FASTDEBUG_CFLAGS doesn't get assigned a non-empty value in the "Debug flags" part of hotspot/make/linux/makefiles/gcc.make. And as a result, the default from fastdebug.make was applied.
DEBUG_BINARIES was added to allow a user to force debug info for build variants that didn't normally provide it. It should never be assigned by the jdk build infrastructure. (It may be entirely removed eventually -JDK-8148991).
When a jdk build is configured for fastdebug and with --enable-native-debug-symbols=internal, hotspot files are compiled as if for slowdebug.
hotspot/make/linux/makefiles/fastdebug.make defaults FASTDEBUG_CFLAGS to $(DEBUG_CFLAGS), which is wrong, and which happens in the described configuration because code elsewhere doesn't give FASTDEBUG_CFLAGS an earlier value.
common/autoconf/jdk-options.m4 dispatches on the value of NATIVE_DEBUG_SYMBOLS (which captures the --enable-native-debug-symbols value). For most cases this dispatch sets DEBUG_BINARIES=false, but the "internal" case sets DEBUG_BINARIES=true. This is a leftover from an earlier attempt to use DEBUG_BINARIES to control debug info.
As a result of DEBUG_BINARIES being true in the "internal" case, FASTDEBUG_CFLAGS doesn't get assigned a non-empty value in the "Debug flags" part of hotspot/make/linux/makefiles/gcc.make. And as a result, the default from fastdebug.make was applied.
DEBUG_BINARIES was added to allow a user to force debug info for build variants that didn't normally provide it. It should never be assigned by the jdk build infrastructure. (It may be entirely removed eventually -
- relates to
-
JDK-8038957 DEBUG_BINARIES can be removed
-
- Resolved
-
-
JDK-8148991 Remove DEBUG_BINARIES
-
- Closed
-