Merge
authorduke
Wed, 05 Jul 2017 19:19:16 +0200
changeset 21126 1eaf402a9173
parent 21125 07a68f9401e4 (current diff)
parent 21058 566723cf1888 (diff)
child 21134 d613b80f8d78
Merge
--- a/.hgtags-top-repo	Tue Oct 29 14:56:30 2013 -0700
+++ b/.hgtags-top-repo	Wed Jul 05 19:19:16 2017 +0200
@@ -234,3 +234,4 @@
 4faa09c7fe555de086dd9048d3c5cc92317d6f45 jdk8-b110
 d086227bfc45d124f09b3bd72a07956b4073bf71 jdk8-b111
 547316ea137d83d9c63083a9b83db64198fe0c81 jdk8-b112
+6ba4c7cb623ec612031e05cf8bf279d8f407bd1e jdk8-b113
--- a/common/autoconf/basics.m4	Tue Oct 29 14:56:30 2013 -0700
+++ b/common/autoconf/basics.m4	Wed Jul 05 19:19:16 2017 +0200
@@ -656,7 +656,7 @@
   fi
 
   if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
-  BASIC_REQUIRE_PROG(DSYMUTIL, dsymutil)
+    BASIC_REQUIRE_PROG(DSYMUTIL, dsymutil)
     BASIC_REQUIRE_PROG(XATTR, xattr)
     AC_PATH_PROG(CODESIGN, codesign)
     if test "x$CODESIGN" != "x"; then
--- a/common/autoconf/generated-configure.sh	Tue Oct 29 14:56:30 2013 -0700
+++ b/common/autoconf/generated-configure.sh	Wed Jul 05 19:19:16 2017 +0200
@@ -869,6 +869,7 @@
 ZERO_ARCHDEF
 DEFINE_CROSS_COMPILE_ARCH
 LP64
+OPENJDK_TARGET_OS_EXPORT_DIR
 OPENJDK_TARGET_OS_API_DIR
 OPENJDK_TARGET_CPU_JLI_CFLAGS
 OPENJDK_TARGET_CPU_OSARCH
@@ -3864,7 +3865,7 @@
 #CUSTOM_AUTOCONF_INCLUDE
 
 # Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1382540536
+DATE_WHEN_GENERATED=1382702260
 
 ###############################################################################
 #
@@ -7149,6 +7150,13 @@
   fi
 
 
+  if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+      OPENJDK_TARGET_OS_EXPORT_DIR=macosx
+  else
+      OPENJDK_TARGET_OS_EXPORT_DIR=${OPENJDK_TARGET_OS_API_DIR}
+  fi
+
+
   if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
     A_LP64="LP64:="
     # -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in
@@ -29638,7 +29646,7 @@
       -I${JDK_OUTPUTDIR}/include \
       -I${JDK_OUTPUTDIR}/include/$OPENJDK_TARGET_OS \
       -I${JDK_TOPDIR}/src/share/javavm/export \
-      -I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/javavm/export \
+      -I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_EXPORT_DIR/javavm/export \
       -I${JDK_TOPDIR}/src/share/native/common \
       -I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/native/common"
 
@@ -29905,11 +29913,11 @@
   elif test "x$enable_debug_symbols" = "xno"; then
     ENABLE_DEBUG_SYMBOLS=false
   else
-  # Default is on if objcopy is found
-  if test "x$OBJCOPY" != x; then
-    ENABLE_DEBUG_SYMBOLS=true
-  # MacOS X and Windows don't use objcopy but default is on for those OSes
-  elif test "x$OPENJDK_TARGET_OS" = xmacosx || test "x$OPENJDK_TARGET_OS" = xwindows; then
+    # Default is on if objcopy is found
+    if test "x$OBJCOPY" != x; then
+      ENABLE_DEBUG_SYMBOLS=true
+    # MacOS X and Windows don't use objcopy but default is on for those OSes
+    elif test "x$OPENJDK_TARGET_OS" = xmacosx || test "x$OPENJDK_TARGET_OS" = xwindows; then
       ENABLE_DEBUG_SYMBOLS=true
     else
       ENABLE_DEBUG_SYMBOLS=false
@@ -34245,10 +34253,10 @@
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
     PREV_CXXCFLAGS="$CXXFLAGS"
-    PREV_LDFLAGS="$LDFLAGS"
+    PREV_LIBS="$LIBS"
     PREV_CXX="$CXX"
     CXXFLAGS="$CXXFLAGS $FREETYPE_CFLAGS"
-    LDFLAGS="$LDFLAGS $FREETYPE_LIBS"
+    LIBS="$LIBS $FREETYPE_LIBS"
     CXX="$FIXPATH $CXX"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -34315,7 +34323,7 @@
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
     CXXCFLAGS="$PREV_CXXFLAGS"
-    LDFLAGS="$PREV_LDFLAGS"
+    LIBS="$PREV_LIBS"
     CXX="$PREV_CXX"
     ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
--- a/common/autoconf/jdk-options.m4	Tue Oct 29 14:56:30 2013 -0700
+++ b/common/autoconf/jdk-options.m4	Wed Jul 05 19:19:16 2017 +0200
@@ -516,11 +516,11 @@
   elif test "x$enable_debug_symbols" = "xno"; then
     ENABLE_DEBUG_SYMBOLS=false
   else
-  # Default is on if objcopy is found
-  if test "x$OBJCOPY" != x; then
-    ENABLE_DEBUG_SYMBOLS=true
-  # MacOS X and Windows don't use objcopy but default is on for those OSes
-  elif test "x$OPENJDK_TARGET_OS" = xmacosx || test "x$OPENJDK_TARGET_OS" = xwindows; then
+    # Default is on if objcopy is found
+    if test "x$OBJCOPY" != x; then
+      ENABLE_DEBUG_SYMBOLS=true
+    # MacOS X and Windows don't use objcopy but default is on for those OSes
+    elif test "x$OPENJDK_TARGET_OS" = xmacosx || test "x$OPENJDK_TARGET_OS" = xwindows; then
       ENABLE_DEBUG_SYMBOLS=true
     else
       ENABLE_DEBUG_SYMBOLS=false
--- a/common/autoconf/libraries.m4	Tue Oct 29 14:56:30 2013 -0700
+++ b/common/autoconf/libraries.m4	Wed Jul 05 19:19:16 2017 +0200
@@ -481,10 +481,10 @@
     AC_MSG_CHECKING([if we can compile and link with freetype])
     AC_LANG_PUSH(C++)
     PREV_CXXCFLAGS="$CXXFLAGS"
-    PREV_LDFLAGS="$LDFLAGS"
+    PREV_LIBS="$LIBS"
     PREV_CXX="$CXX"
     CXXFLAGS="$CXXFLAGS $FREETYPE_CFLAGS" 
-    LDFLAGS="$LDFLAGS $FREETYPE_LIBS"
+    LIBS="$LIBS $FREETYPE_LIBS"
     CXX="$FIXPATH $CXX"
     AC_LINK_IFELSE([AC_LANG_SOURCE([[
           #include<ft2build.h>
@@ -508,7 +508,7 @@
         ]
     )
     CXXCFLAGS="$PREV_CXXFLAGS"
-    LDFLAGS="$PREV_LDFLAGS"
+    LIBS="$PREV_LIBS"
     CXX="$PREV_CXX"
     AC_LANG_POP(C++)
 
--- a/common/autoconf/platform.m4	Tue Oct 29 14:56:30 2013 -0700
+++ b/common/autoconf/platform.m4	Wed Jul 05 19:19:16 2017 +0200
@@ -327,6 +327,13 @@
   fi
   AC_SUBST(OPENJDK_TARGET_OS_API_DIR)
 
+  if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+      OPENJDK_TARGET_OS_EXPORT_DIR=macosx
+  else
+      OPENJDK_TARGET_OS_EXPORT_DIR=${OPENJDK_TARGET_OS_API_DIR}
+  fi
+  AC_SUBST(OPENJDK_TARGET_OS_EXPORT_DIR)
+
   if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
     A_LP64="LP64:="
     # -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in
--- a/common/autoconf/spec.gmk.in	Tue Oct 29 14:56:30 2013 -0700
+++ b/common/autoconf/spec.gmk.in	Wed Jul 05 19:19:16 2017 +0200
@@ -92,6 +92,7 @@
 OPENJDK_TARGET_CPU_OSARCH:=@OPENJDK_TARGET_CPU_OSARCH@
 OPENJDK_TARGET_CPU_JLI_CFLAGS:=@OPENJDK_TARGET_CPU_JLI_CFLAGS@
 OPENJDK_TARGET_OS_API_DIR:=@OPENJDK_TARGET_OS_API_DIR@
+OPENJDK_TARGET_OS_EXPORT_DIR:=@OPENJDK_TARGET_OS_EXPORT_DIR@
 
 # We are building on this build system.
 # When not cross-compiling, it is the same as the target.
--- a/common/autoconf/toolchain.m4	Tue Oct 29 14:56:30 2013 -0700
+++ b/common/autoconf/toolchain.m4	Wed Jul 05 19:19:16 2017 +0200
@@ -942,7 +942,7 @@
       -I${JDK_OUTPUTDIR}/include \
       -I${JDK_OUTPUTDIR}/include/$OPENJDK_TARGET_OS \
       -I${JDK_TOPDIR}/src/share/javavm/export \
-      -I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/javavm/export \
+      -I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_EXPORT_DIR/javavm/export \
       -I${JDK_TOPDIR}/src/share/native/common \
       -I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/native/common"
 
--- a/common/makefiles/JavaCompilation.gmk	Tue Oct 29 14:56:30 2013 -0700
+++ b/common/makefiles/JavaCompilation.gmk	Wed Jul 05 19:19:16 2017 +0200
@@ -506,30 +506,30 @@
 
     $$($1_BIN)/javac_state: $$($1_SRCS) $$($1_DEPENDS)
 	$(MKDIR) -p $$(@D)
-	$$(call ListPathsSafely,$1_SRCS,\n, >> $$($1_BIN)/_the.batch.tmp)
+	$$(call ListPathsSafely,$1_SRCS,\n, >> $$($1_BIN)/_the.$1_batch.tmp)
 	$(ECHO) Compiling $1
 	($$($1_JVM) $$($1_SJAVAC) \
 	    $$($1_REMOTE) \
 	    -j $(JOBS) \
 	    --permit-unidentified-artifacts \
 	    --permit-sources-without-package \
-	    --compare-found-sources $$($1_BIN)/_the.batch.tmp \
+	    --compare-found-sources $$($1_BIN)/_the.$1_batch.tmp \
 	    --log=$(LOG_LEVEL) \
 	    $$($1_SJAVAC_ARGS) \
 	    $$($1_FLAGS) \
 	    $$($1_HEADERS_ARG) \
 	    -d $$($1_BIN) && \
-	$(MV) $$($1_BIN)/_the.batch.tmp $$($1_BIN)/_the.batch)
+	$(MV) $$($1_BIN)/_the.$1_batch.tmp $$($1_BIN)/_the.$1_batch)
   else
     # Using plain javac to batch compile everything.
-    $1 := $$($1_ALL_COPY_TARGETS) $$($1_ALL_COPY_CLEAN_TARGETS) $$($1_BIN)/_the.batch
+    $1 := $$($1_ALL_COPY_TARGETS) $$($1_ALL_COPY_CLEAN_TARGETS) $$($1_BIN)/_the.$1_batch
 
     # When building in batch, put headers in a temp dir to filter out those that actually
     # changed before copying them to the real header dir.
     ifneq (,$$($1_HEADERS))
       $1_HEADERS_ARG := -h $$($1_HEADERS).tmp
 
-      $$($1_HEADERS)/_the.headers: $$($1_BIN)/_the.batch
+      $$($1_HEADERS)/_the.$1_headers: $$($1_BIN)/_the.$1_batch
 		$(MKDIR) -p $$(@D)
 		for f in `ls $$($1_HEADERS).tmp`; do \
 		  if [ ! -f "$$($1_HEADERS)/$$$$f" ] || [ "`$(DIFF) $$($1_HEADERS)/$$$$f $$($1_HEADERS).tmp/$$$$f`" != "" ]; then \
@@ -539,19 +539,19 @@
 		$(RM) -r $$($1_HEADERS).tmp
 		$(TOUCH) $$@
 
-      $1 += $$($1_HEADERS)/_the.headers
+      $1 += $$($1_HEADERS)/_the.$1_headers
     endif
 
     # When not using sjavac, pass along all sources to javac using an @file.
-    $$($1_BIN)/_the.batch: $$($1_SRCS) $$($1_DEPENDS)
+    $$($1_BIN)/_the.$1_batch: $$($1_SRCS) $$($1_DEPENDS)
 	$(MKDIR) -p $$(@D)
-	$(RM) $$($1_BIN)/_the.batch $$($1_BIN)/_the.batch.tmp
-	$$(call ListPathsSafely,$1_SRCS,\n, >> $$($1_BIN)/_the.batch.tmp)
-	$(ECHO) Compiling `$(WC) $$($1_BIN)/_the.batch.tmp | $(TR) -s ' ' | $(CUT) -f 2 -d ' '` files for $1
+	$(RM) $$($1_BIN)/_the.$1_batch $$($1_BIN)/_the.$1_batch.tmp
+	$$(call ListPathsSafely,$1_SRCS,\n, >> $$($1_BIN)/_the.$1_batch.tmp)
+	$(ECHO) Compiling `$(WC) $$($1_BIN)/_the.$1_batch.tmp | $(TR) -s ' ' | $(CUT) -f 2 -d ' '` files for $1
 	($$($1_JVM) $$($1_JAVAC) $$($1_FLAGS) \
 	    -implicit:none -sourcepath "$$($1_SRCROOTSC)" \
-	    -d $$($1_BIN) $$($1_HEADERS_ARG) @$$($1_BIN)/_the.batch.tmp && \
-	$(MV) $$($1_BIN)/_the.batch.tmp $$($1_BIN)/_the.batch)
+	    -d $$($1_BIN) $$($1_HEADERS_ARG) @$$($1_BIN)/_the.$1_batch.tmp && \
+	$(MV) $$($1_BIN)/_the.$1_batch.tmp $$($1_BIN)/_the.$1_batch)
 
   endif
 
--- a/common/makefiles/NativeCompilation.gmk	Tue Oct 29 14:56:30 2013 -0700
+++ b/common/makefiles/NativeCompilation.gmk	Wed Jul 05 19:19:16 2017 +0200
@@ -435,36 +435,36 @@
 		$(CP) $$< $$@
         endif
 
-                ifneq ($(OPENJDK_TARGET_OS), macosx)   # OBJCOPY is not used on MacOS X
-                  ifneq ($(OPENJDK_TARGET_OS), windows)  # nor on Windows
-                    ifeq ($(OPENJDK_TARGET_OS), solaris)
-                        # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
-                        # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from
-                        # empty section headers until a fixed $(OBJCOPY) is available.
-                        # An empty section header has sh_addr == 0 and sh_size == 0.
-                        # This problem has only been seen on Solaris X64, but we call this tool
-                        # on all Solaris builds just in case.
-                        #
-                        # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-                        # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
-                        $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) \
-					    $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK)
-			    $(RM) $$@
-			    $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$<
-			    $(OBJCOPY) --only-keep-debug $$< $$@
-			    $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$<
-                    else # not solaris
-                        $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET)
-			    $(RM) $$@
-			    $(OBJCOPY) --only-keep-debug $$< $$@
-			    $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
-                    endif # Touch to not retrigger rule on rebuild
+        ifneq ($(OPENJDK_TARGET_OS), macosx)   # OBJCOPY is not used on MacOS X
+          ifneq ($(OPENJDK_TARGET_OS), windows)  # nor on Windows
+            ifeq ($(OPENJDK_TARGET_OS), solaris)
+              # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
+              # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from
+              # empty section headers until a fixed $(OBJCOPY) is available.
+              # An empty section header has sh_addr == 0 and sh_size == 0.
+              # This problem has only been seen on Solaris X64, but we call this tool
+              # on all Solaris builds just in case.
+              #
+              # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
+              # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
+              $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) \
+				$(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK)
+		$(RM) $$@
+		$(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$<
+		$(OBJCOPY) --only-keep-debug $$< $$@
+		$(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$<
+            else # not solaris
+              $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET)
+		$(RM) $$@
+		$(OBJCOPY) --only-keep-debug $$< $$@
+		$(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
+            endif # Touch to not retrigger rule on rebuild
 		$(TOUCH) $$@
-                  endif # !windows
-                endif # !macosx
+          endif # !windows
+        endif # !macosx
 
         ifeq ($(ZIP_DEBUGINFO_FILES), true)
-                  ifneq ($(OPENJDK_TARGET_OS), macosx) # no MacOS X support yet
+ifneq ($(OPENJDK_TARGET_OS), macosx) # no MacOS X support yet
           $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz
 
           ifeq ($(OPENJDK_TARGET_OS), windows)
@@ -477,12 +477,12 @@
 		$(CD) $$($1_OBJECT_DIR) \
 		&& $(ZIP) -q $$@ $$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo
           endif
-                  endif # no MacOS X support yet
+endif # no MacOS X support yet
         else
           ifeq ($(OPENJDK_TARGET_OS), windows)
             $1 += $$($1_OUTPUT_DIR)/$$($1_LIBRARY).map \
                 $$($1_OUTPUT_DIR)/$$($1_LIBRARY).pdb
-                    else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo files
+          else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo files
             $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo
           endif
         endif
@@ -519,36 +519,36 @@
 		$(CP) $$< $$@
         endif
 
-                ifneq ($(OPENJDK_TARGET_OS), macosx)   # OBJCOPY is not used on MacOS X
-                  ifneq ($(OPENJDK_TARGET_OS), windows)  # nor on Windows
-                    ifeq ($(OPENJDK_TARGET_OS), solaris)
-                        # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
-                        # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from
-                        # empty section headers until a fixed $(OBJCOPY) is available.
-                        # An empty section header has sh_addr == 0 and sh_size == 0.
-                        # This problem has only been seen on Solaris X64, but we call this tool
-                        # on all Solaris builds just in case.
-                        #
-                        # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-                        # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
-                        $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \
-					    $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK)
-			    $(RM) $$@
-			    $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$<
-			    $(OBJCOPY) --only-keep-debug $$< $$@
-			    $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$<
-                    else # not solaris
-                        $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET)
-			    $(RM) $$@
-			    $(OBJCOPY) --only-keep-debug $$< $$@
-			    $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
-                    endif
-			    $(TOUCH) $$@
-                  endif # !windows
-                endif # !macosx
+        ifneq ($(OPENJDK_TARGET_OS), macosx)   # OBJCOPY is not used on MacOS X
+          ifneq ($(OPENJDK_TARGET_OS), windows)  # nor on Windows
+            ifeq ($(OPENJDK_TARGET_OS), solaris)
+              # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
+              # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from
+              # empty section headers until a fixed $(OBJCOPY) is available.
+              # An empty section header has sh_addr == 0 and sh_size == 0.
+              # This problem has only been seen on Solaris X64, but we call this tool
+              # on all Solaris builds just in case.
+              #
+              # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
+              # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
+              $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \
+				$(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK)
+		$(RM) $$@
+		$(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$<
+		$(OBJCOPY) --only-keep-debug $$< $$@
+		$(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$<
+            else # not solaris
+              $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET)
+		$(RM) $$@
+		$(OBJCOPY) --only-keep-debug $$< $$@
+		$(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
+            endif
+		$(TOUCH) $$@
+          endif # !windows
+        endif # !macosx
 
         ifeq ($(ZIP_DEBUGINFO_FILES), true)
-                  ifneq ($(OPENJDK_TARGET_OS), macosx) # no MacOS X support yet
+ifneq ($(OPENJDK_TARGET_OS), macosx) # no MacOS X support yet
           $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).diz
 
           ifeq ($(OPENJDK_TARGET_OS), windows)
@@ -561,12 +561,12 @@
 		$(CD) $$($1_OBJECT_DIR) \
 		&& $(ZIP) -q $$@ $$($1_PROGRAM).debuginfo
           endif
-                  endif # no MacOS X support yet
+endif # no MacOS X support yet
         else
           ifeq ($(OPENJDK_TARGET_OS), windows)
             $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).map \
                 $$($1_OUTPUT_DIR)/$$($1_PROGRAM).pdb
-                    else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo files
+          else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo files
             $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo
           endif
         endif