Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8148993

fastdebug with --enable-native-debug-symbols=internal is slowdebug

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 9
    • 9
    • infrastructure
    • 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).

            Unassigned Unassigned
            kbarrett Kim Barrett
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: