Mercurial > hg > openjdk > jdk8u > jdk
changeset 14180:885f7ab464de
8252395: [8u] --with-native-debug-symbols=external doesn't include debuginfo files for binaries
Summary: ensure debuginfo files get properly copied to the images directory
Reviewed-by: andrew, aph
author | sgehwolf |
---|---|
date | Fri, 28 Aug 2020 12:15:31 +0200 |
parents | 3fbfec3d8646 |
children | 251407c9665e |
files | make/CompileLaunchers.gmk make/Images.gmk |
diffstat | 2 files changed, 37 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/make/CompileLaunchers.gmk Thu Aug 20 05:16:24 2020 -0700 +++ b/make/CompileLaunchers.gmk Fri Aug 28 12:15:31 2020 +0200 @@ -231,7 +231,25 @@ $(RM) $@ $(CP) $(JDK_OUTPUTDIR)/objs/java_objs$(OUTPUT_SUBDIR)/java$(EXE_SUFFIX) $@ +ifeq ($(ZIP_DEBUGINFO_FILES), true) + DEBUGINFO_EXT := .diz +else ifeq ($(OPENJDK_TARGET_OS), macosx) + DEBUGINFO_EXT := .dSYM +else ifeq ($(OPENJDK_TARGET_OS), windows) + DEBUGINFO_EXT := .pdb +else + DEBUGINFO_EXT := .debuginfo +endif + +$(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/java$(DEBUGINFO_EXT): $(BUILD_LAUNCHER_java) + $(MKDIR) -p $(@D) + $(RM) $@ + $(CP) $(JDK_OUTPUTDIR)/objs/java_objs$(OUTPUT_SUBDIR)/java$(DEBUGINFO_EXT) $@ + BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/java$(EXE_SUFFIX) +ifeq ($(ENABLE_DEBUG_SYMBOLS), true) + BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/java$(DEBUGINFO_EXT) +endif ifeq ($(OPENJDK_TARGET_OS), windows) $(eval $(call SetupLauncher,javaw, \ @@ -533,7 +551,13 @@ $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/unpack200$(EXE_SUFFIX): $(BUILD_UNPACKEXE) $(call install-file) +$(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/unpack200$(DEBUGINFO_EXT): $(BUILD_UNPACKEXE) + $(call install-file) + BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/unpack200$(EXE_SUFFIX) +ifeq ($(ENABLE_DEBUG_SYMBOLS), true) + BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/unpack200$(DEBUGINFO_EXT) +endif ##########################################################################################
--- a/make/Images.gmk Thu Aug 20 05:16:24 2020 -0700 +++ b/make/Images.gmk Fri Aug 28 12:15:31 2020 +0200 @@ -77,6 +77,16 @@ $4 += $2/$$($2_$3_FILE) endef +ifeq ($(ZIP_DEBUGINFO_FILES), true) + DEBUGINFO_EXT := .diz +else ifeq ($(OPENJDK_TARGET_OS), macosx) + DEBUGINFO_EXT := .dSYM +else ifeq ($(OPENJDK_TARGET_OS), windows) + DEBUGINFO_EXT := .pdb +else + DEBUGINFO_EXT := .debuginfo +endif + ################################################################################ # # JRE and JDK build rules @@ -129,6 +139,7 @@ clhsdb$(EXE_SUFFIX) \ hsdb$(EXE_SUFFIX) \ jfr$(EXE_SUFFIX) + NOT_JRE_DEBUGINFO_FILES := $(patsubst %$(EXE_SUFFIX),%$(DEBUGINFO_EXT),$(NOT_JRE_BIN_FILES)) endif WINDOWS_JDK_BIN_FILES = \ @@ -146,11 +157,7 @@ # Prevent sjavac from entering the images. ALL_BIN_LIST := $(filter-out %/sjavac, $(ALL_BIN_LIST)) -# For unknown reason the debuginfo files for executables are not put into images -# e.g filter them out -ifneq ($(OPENJDK_TARGET_OS), windows) - ALL_BIN_LIST := $(filter-out %.debuginfo %.diz, $(ALL_BIN_LIST)) -else +ifeq ($(OPENJDK_TARGET_OS), windows) # On windows, the libraries are in the bin dir, only filter out debuginfo files # for executables. "java" is both a library and executable. ALL_BIN_EXEC_FILES := $(filter-out java.exe, $(notdir $(filter %.exe, $(ALL_BIN_LIST)))) @@ -160,7 +167,7 @@ endif JDKJRE_BIN_LIST := $(filter-out $(addprefix %, $(NOT_JRE_BIN_FILES)), $(ALL_BIN_LIST)) -JRE_BIN_LIST := $(filter-out $(addprefix %, $(WINDOWS_JDKJRE_BIN_FILES)), $(JDKJRE_BIN_LIST)) +JRE_BIN_LIST := $(filter-out $(addprefix %, $(WINDOWS_JDKJRE_BIN_FILES)) $(addprefix %, $(NOT_JRE_DEBUGINFO_FILES)), $(JDKJRE_BIN_LIST)) ifeq ($(OPENJDK_TARGET_OS), windows) JDK_BIN_LIST := $(filter $(addprefix %, $(WINDOWS_JDK_BIN_FILES)), $(ALL_BIN_LIST))