--- a/jdk/make/common/Library.gmk Tue Apr 10 23:18:33 2012 -0700
+++ b/jdk/make/common/Library.gmk Wed Apr 11 07:26:35 2012 -0700
@@ -181,8 +181,17 @@
$(CP) $(OBJDIR)/$(@F) $@
@$(call binary_file_verification,$@)
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+ ifeq ($(ZIP_DEBUGINFO_FILES),1)
+ (set -e ; \
+ $(CD) $(OBJDIR) ; \
+ $(ZIPEXE) -q $(LIBRARY).diz $(LIBRARY).map $(LIBRARY).pdb ; \
+ )
+ $(CP) $(OBJDIR)/$(LIBRARY).diz $(@D)
+ $(RM) $(OBJDIR)/$(LIBRARY).map $(OBJDIR)/$(LIBRARY).pdb
+ else
$(CP) $(OBJDIR)/$(LIBRARY).map $(@D)
$(CP) $(OBJDIR)/$(LIBRARY).pdb $(@D)
+ endif
endif
endif # LIBRARY
@@ -248,6 +257,37 @@
ifeq ($(WRITE_LIBVERSION),true)
$(MCS) -d -a "$(FULL_VERSION)" $@
endif # WRITE_LIBVERSION
+ ifneq ($(PLATFORM), macosx)
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+ ifeq ($(LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS),1)
+ (set -e ; \
+ $(CD) $(@D) ; \
+ $(OBJCOPY) --only-keep-debug $(@F) $(LIBRARY).debuginfo ; \
+ $(OBJCOPY) --add-gnu-debuglink=$(LIBRARY).debuginfo $(@F) ; \
+ )
+ ifeq ($(STRIP_POLICY),all_strip)
+ $(STRIP) $@
+ else
+ ifeq ($(STRIP_POLICY),min_strip)
+ ifeq ($(PLATFORM), solaris)
+ $(STRIP) -x $@
+ else
+ # assume Linux
+ $(STRIP) -g $@
+ endif
+ # implied else here is no stripping at all
+ endif
+ endif
+ ifeq ($(ZIP_DEBUGINFO_FILES),1)
+ (set -e ; \
+ $(CD) $(@D) ; \
+ $(ZIPEXE) -q $(LIBRARY).diz $(LIBRARY).debuginfo ; \
+ $(RM) $(LIBRARY).debuginfo ; \
+ )
+ endif
+ endif # LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
+ endif # ENABLE_FULL_DEBUG_SYMBOLS
+ endif # PLATFORM-!macosx
endif # LIBRARY
endif # PLATFORM