comparison make/solaris/makefiles/vm.make @ 6095:9c1709c4c80c

7165598: enable FDS on Solaris X64 when 7165593 is fixed Summary: Work around 'gobjcopy' failure on Solaris X64 by adding a temporary tool that removes the SHF_ALLOC flag from "empty" section headers. Reviewed-by: sspitsyn, acorn
author dcubed
date Thu, 24 May 2012 12:03:42 -0700
parents 7d4e6dabc6bf
children fb8f9ab27c14
comparison
equal deleted inserted replaced
6077:7d4e6dabc6bf 6095:9c1709c4c80c
145 include $(MAKEFILES_DIR)/dtrace.make 145 include $(MAKEFILES_DIR)/dtrace.make
146 146
147 #---------------------------------------------------------------------- 147 #----------------------------------------------------------------------
148 # add_gnu_debuglink tool 148 # add_gnu_debuglink tool
149 include $(MAKEFILES_DIR)/add_gnu_debuglink.make 149 include $(MAKEFILES_DIR)/add_gnu_debuglink.make
150
151 #----------------------------------------------------------------------
152 # fix_empty_sec_hdr_flags tool
153 include $(MAKEFILES_DIR)/fix_empty_sec_hdr_flags.make
150 154
151 #---------------------------------------------------------------------- 155 #----------------------------------------------------------------------
152 # JVM 156 # JVM
153 157
154 JVM = jvm 158 JVM = jvm
278 LINK_VM = $(LINK_LIB.CC) 282 LINK_VM = $(LINK_LIB.CC)
279 else 283 else
280 LINK_VM = $(LINK_LIB.CXX) 284 LINK_VM = $(LINK_LIB.CXX)
281 endif 285 endif
282 # making the library: 286 # making the library:
283 $(LIBJVM): $(ADD_GNU_DEBUGLINK) $(LIBJVM.o) $(LIBJVM_MAPFILE) 287 $(LIBJVM): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(LIBJVM.o) $(LIBJVM_MAPFILE)
284 ifeq ($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),) 288 ifeq ($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),)
285 @echo Linking vm... 289 @echo Linking vm...
286 $(QUIETLY) $(LINK_LIB.CXX/PRE_HOOK) 290 $(QUIETLY) $(LINK_LIB.CXX/PRE_HOOK)
287 $(QUIETLY) $(LINK_VM) $(LFLAGS_VM) -o $@ $(LIBJVM.o) $(LIBS_VM) 291 $(QUIETLY) $(LINK_VM) $(LFLAGS_VM) -o $@ $(LIBJVM.o) $(LIBS_VM)
288 $(QUIETLY) $(LINK_LIB.CXX/POST_HOOK) 292 $(QUIETLY) $(LINK_LIB.CXX/POST_HOOK)
289 $(QUIETLY) rm -f $@.1 && ln -s $@ $@.1 293 $(QUIETLY) rm -f $@.1 && ln -s $@ $@.1
290 $(QUIETLY) [ -f $(LIBJVM_G) ] || ln -s $@ $(LIBJVM_G) 294 $(QUIETLY) [ -f $(LIBJVM_G) ] || ln -s $@ $(LIBJVM_G)
291 $(QUIETLY) [ -f $(LIBJVM_G).1 ] || ln -s $@.1 $(LIBJVM_G).1 295 $(QUIETLY) [ -f $(LIBJVM_G).1 ] || ln -s $@.1 $(LIBJVM_G).1
292 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 296 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
297 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
298 # Clear the SHF_ALLOC flag (if set) from empty section headers.
299 # An empty section header has sh_addr == 0 and sh_size == 0.
300 # This problem has only been seen on Solaris X64, but we call this tool
301 # on all Solaris builds just in case.
302 $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
293 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO) 303 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
294 # $(OBJCOPY) --add-gnu-debuglink=... corrupts the SUNW_dof section 304 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
295 # in libjvm.so. Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) 305 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
296 # is available.
297 # $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ 306 # $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
298 $(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DEBUGINFO) $@ 307 $(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DEBUGINFO) $@
299 ifeq ($(STRIP_POLICY),all_strip) 308 ifeq ($(STRIP_POLICY),all_strip)
300 $(QUIETLY) $(STRIP) $@ 309 $(QUIETLY) $(STRIP) $@
301 else 310 else