jdk/make/common/Library.gmk
changeset 12853 7bdaa5aefd3d
parent 12427 116544b5a04c
child 13678 5c8001201f98
equal deleted inserted replaced
12852:1582fa1cfa04 12853:7bdaa5aefd3d
   243 
   243 
   244 ifneq ($(PLATFORM), macosx)
   244 ifneq ($(PLATFORM), macosx)
   245   ARFLAGS = -r
   245   ARFLAGS = -r
   246 endif
   246 endif
   247 
   247 
       
   248 ifeq ($(PLATFORM), solaris)
       
   249   ifeq ($(LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS),1)
       
   250 $(ACTUAL_LIBRARY):: $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS)
       
   251   endif
       
   252 endif
       
   253 
   248 $(ACTUAL_LIBRARY):: $(COMPILE_FILES_o) $(FILES_m) $(FILES_reorder)
   254 $(ACTUAL_LIBRARY):: $(COMPILE_FILES_o) $(FILES_m) $(FILES_reorder)
   249 	@$(prep-target)
   255 	@$(prep-target)
   250 	@$(ECHO) "STATS: LIBRARY=$(LIBRARY), PRODUCT=$(PRODUCT), OPTIMIZATION_LEVEL=$(OPTIMIZATION_LEVEL)"
   256 	@$(ECHO) "STATS: LIBRARY=$(LIBRARY), PRODUCT=$(PRODUCT), OPTIMIZATION_LEVEL=$(OPTIMIZATION_LEVEL)"
   251 	@$(ECHO) "Rebuilding $@ because of $?"
   257 	@$(ECHO) "Rebuilding $@ because of $?"
   252 ifeq ($(LIBRARY), fdlibm)
   258 ifeq ($(LIBRARY), fdlibm)
   258 	$(MCS) -d -a "$(FULL_VERSION)" $@
   264 	$(MCS) -d -a "$(FULL_VERSION)" $@
   259 endif # WRITE_LIBVERSION
   265 endif # WRITE_LIBVERSION
   260   ifneq ($(PLATFORM), macosx)
   266   ifneq ($(PLATFORM), macosx)
   261     ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   267     ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   262       ifeq ($(LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS),1)
   268       ifeq ($(LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS),1)
       
   269         ifeq ($(PLATFORM), solaris)
       
   270 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
       
   271 # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from
       
   272 # empty section headers until a fixed $(OBJCOPY) is available.
       
   273 # An empty section header has sh_addr == 0 and sh_size == 0.
       
   274 # This problem has only been seen on Solaris X64, but we call this tool
       
   275 # on all Solaris builds just in case.
       
   276 #
       
   277 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
       
   278 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
   263 	(set -e ; \
   279 	(set -e ; \
   264 	 $(CD) $(@D) ; \
   280 	 $(CD) $(@D) ; \
   265 	 $(OBJCOPY) --only-keep-debug $(@F) $(LIBRARY).debuginfo ; \
   281 	 $(FIX_EMPTY_SEC_HDR_FLAGS) $(@F) ; \
   266 	 $(OBJCOPY) --add-gnu-debuglink=$(LIBRARY).debuginfo $(@F) ; \
   282 	 $(OBJCOPY) --only-keep-debug $(@F) $(LIB_PREFIX)$(LIBRARY).debuginfo ; \
       
   283          $(ADD_GNU_DEBUGLINK) $(LIB_PREFIX)$(LIBRARY).debuginfo $(@F) ; \
   267 	)
   284 	)
       
   285         else # PLATFORM != solaris
       
   286 	(set -e ; \
       
   287 	 $(CD) $(@D) ; \
       
   288 	 $(OBJCOPY) --only-keep-debug $(@F) $(LIB_PREFIX)$(LIBRARY).debuginfo ; \
       
   289 	 $(OBJCOPY) --add-gnu-debuglink=$(LIB_PREFIX)$(LIBRARY).debuginfo $(@F) ; \
       
   290 	)
       
   291         endif # PLATFORM == solaris
   268         ifeq ($(STRIP_POLICY),all_strip)
   292         ifeq ($(STRIP_POLICY),all_strip)
   269 	  $(STRIP) $@
   293 	  $(STRIP) $@
   270         else
   294         else
   271           ifeq ($(STRIP_POLICY),min_strip)
   295           ifeq ($(STRIP_POLICY),min_strip)
   272             ifeq ($(PLATFORM), solaris)
   296             ifeq ($(PLATFORM), solaris)
   279           endif
   303           endif
   280         endif
   304         endif
   281         ifeq ($(ZIP_DEBUGINFO_FILES),1)
   305         ifeq ($(ZIP_DEBUGINFO_FILES),1)
   282 	  (set -e ; \
   306 	  (set -e ; \
   283 	   $(CD) $(@D) ; \
   307 	   $(CD) $(@D) ; \
   284 	   $(ZIPEXE) -q $(LIBRARY).diz $(LIBRARY).debuginfo ; \
   308 	   $(ZIPEXE) -q $(LIB_PREFIX)$(LIBRARY).diz $(LIB_PREFIX)$(LIBRARY).debuginfo ; \
   285 	   $(RM) $(LIBRARY).debuginfo ; \
   309 	   $(RM) $(LIB_PREFIX)$(LIBRARY).debuginfo ; \
   286 	  )
   310 	  )
   287         endif
   311         endif
   288       endif # LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
   312       endif # LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
   289     endif # ENABLE_FULL_DEBUG_SYMBOLS
   313     endif # ENABLE_FULL_DEBUG_SYMBOLS
   290   endif # PLATFORM-!macosx
   314   endif # PLATFORM-!macosx