132 endif # sparcWorks 133 134 ifeq ("${Platform_arch}", "sparc") 135 LIBS += -lkstat 136 endif 137 138 # By default, link the *.o into the library, not the executable. 139 LINK_INTO$(LINK_INTO) = LIBJVM 140 141 JDK_LIBDIR = $(JAVA_HOME)/jre/lib/$(LIBARCH) 142 143 #---------------------------------------------------------------------- 144 # jvm_db & dtrace 145 include $(MAKEFILES_DIR)/dtrace.make 146 147 #---------------------------------------------------------------------- 148 # add_gnu_debuglink tool 149 include $(MAKEFILES_DIR)/add_gnu_debuglink.make 150 151 #---------------------------------------------------------------------- 152 # JVM 153 154 JVM = jvm 155 LIBJVM = lib$(JVM).so 156 LIBJVM_G = lib$(JVM)$(G_SUFFIX).so 157 158 LIBJVM_DEBUGINFO = lib$(JVM).debuginfo 159 LIBJVM_DIZ = lib$(JVM).diz 160 LIBJVM_G_DEBUGINFO = lib$(JVM)$(G_SUFFIX).debuginfo 161 LIBJVM_G_DIZ = lib$(JVM)$(G_SUFFIX).diz 162 163 SPECIAL_PATHS:=adlc c1 dist gc_implementation opto shark libadt 164 165 SOURCE_PATHS=\ 166 $(shell find $(HS_COMMON_SRC)/share/vm/* -type d \! \ 167 \( -name DUMMY $(foreach dir,$(SPECIAL_PATHS),-o -name $(dir)) \)) 168 SOURCE_PATHS+=$(HS_COMMON_SRC)/os/$(Platform_os_family)/vm 169 SOURCE_PATHS+=$(HS_COMMON_SRC)/os/posix/vm 170 SOURCE_PATHS+=$(HS_COMMON_SRC)/cpu/$(Platform_arch)/vm 171 SOURCE_PATHS+=$(HS_COMMON_SRC)/os_cpu/$(Platform_os_arch)/vm 263 LIBJVM_MAPFILE$(LDNOMAP) = mapfile_reorder 264 LFLAGS_VM$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LIBJVM_MAPFILE)) 265 LFLAGS_VM += $(SONAMEFLAG:SONAME=$(LIBJVM)) 266 ifndef USE_GCC 267 LIBS_VM = $(LIBS) 268 else 269 # JVM is statically linked with libgcc[_s] and libstdc++; this is needed to 270 # get around library dependency and compatibility issues. Must use gcc not 271 # g++ to link. 272 LFLAGS_VM += $(STATIC_LIBGCC) 273 LIBS_VM += $(STATIC_STDCXX) $(LIBS) 274 endif 275 endif 276 277 ifdef USE_GCC 278 LINK_VM = $(LINK_LIB.CC) 279 else 280 LINK_VM = $(LINK_LIB.CXX) 281 endif 282 # making the library: 283 $(LIBJVM): $(ADD_GNU_DEBUGLINK) $(LIBJVM.o) $(LIBJVM_MAPFILE) 284 ifeq ($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),) 285 @echo Linking vm... 286 $(QUIETLY) $(LINK_LIB.CXX/PRE_HOOK) 287 $(QUIETLY) $(LINK_VM) $(LFLAGS_VM) -o $@ $(LIBJVM.o) $(LIBS_VM) 288 $(QUIETLY) $(LINK_LIB.CXX/POST_HOOK) 289 $(QUIETLY) rm -f $@.1 && ln -s $@ $@.1 290 $(QUIETLY) [ -f $(LIBJVM_G) ] || ln -s $@ $(LIBJVM_G) 291 $(QUIETLY) [ -f $(LIBJVM_G).1 ] || ln -s $@.1 $(LIBJVM_G).1 292 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 293 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO) 294 # $(OBJCOPY) --add-gnu-debuglink=... corrupts the SUNW_dof section 295 # in libjvm.so. Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) 296 # is available. 297 # $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ 298 $(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DEBUGINFO) $@ 299 ifeq ($(STRIP_POLICY),all_strip) 300 $(QUIETLY) $(STRIP) $@ 301 else 302 ifeq ($(STRIP_POLICY),min_strip) 303 $(QUIETLY) $(STRIP) -x $@ 304 # implied else here is no stripping at all 305 endif 306 endif 307 $(QUIETLY) [ -f $(LIBJVM_G_DEBUGINFO) ] || ln -s $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) 308 ifeq ($(ZIP_DEBUGINFO_FILES),1) 309 $(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) 310 $(RM) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) 311 [ -f $(LIBJVM_G_DIZ) ] || { ln -s $(LIBJVM_DIZ) $(LIBJVM_G_DIZ); } 312 endif 313 endif 314 endif # filter -sbfast -xsbfast 315 316 | 132 endif # sparcWorks 133 134 ifeq ("${Platform_arch}", "sparc") 135 LIBS += -lkstat 136 endif 137 138 # By default, link the *.o into the library, not the executable. 139 LINK_INTO$(LINK_INTO) = LIBJVM 140 141 JDK_LIBDIR = $(JAVA_HOME)/jre/lib/$(LIBARCH) 142 143 #---------------------------------------------------------------------- 144 # jvm_db & dtrace 145 include $(MAKEFILES_DIR)/dtrace.make 146 147 #---------------------------------------------------------------------- 148 # add_gnu_debuglink tool 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 154 155 #---------------------------------------------------------------------- 156 # JVM 157 158 JVM = jvm 159 LIBJVM = lib$(JVM).so 160 LIBJVM_G = lib$(JVM)$(G_SUFFIX).so 161 162 LIBJVM_DEBUGINFO = lib$(JVM).debuginfo 163 LIBJVM_DIZ = lib$(JVM).diz 164 LIBJVM_G_DEBUGINFO = lib$(JVM)$(G_SUFFIX).debuginfo 165 LIBJVM_G_DIZ = lib$(JVM)$(G_SUFFIX).diz 166 167 SPECIAL_PATHS:=adlc c1 dist gc_implementation opto shark libadt 168 169 SOURCE_PATHS=\ 170 $(shell find $(HS_COMMON_SRC)/share/vm/* -type d \! \ 171 \( -name DUMMY $(foreach dir,$(SPECIAL_PATHS),-o -name $(dir)) \)) 172 SOURCE_PATHS+=$(HS_COMMON_SRC)/os/$(Platform_os_family)/vm 173 SOURCE_PATHS+=$(HS_COMMON_SRC)/os/posix/vm 174 SOURCE_PATHS+=$(HS_COMMON_SRC)/cpu/$(Platform_arch)/vm 175 SOURCE_PATHS+=$(HS_COMMON_SRC)/os_cpu/$(Platform_os_arch)/vm 267 LIBJVM_MAPFILE$(LDNOMAP) = mapfile_reorder 268 LFLAGS_VM$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LIBJVM_MAPFILE)) 269 LFLAGS_VM += $(SONAMEFLAG:SONAME=$(LIBJVM)) 270 ifndef USE_GCC 271 LIBS_VM = $(LIBS) 272 else 273 # JVM is statically linked with libgcc[_s] and libstdc++; this is needed to 274 # get around library dependency and compatibility issues. Must use gcc not 275 # g++ to link. 276 LFLAGS_VM += $(STATIC_LIBGCC) 277 LIBS_VM += $(STATIC_STDCXX) $(LIBS) 278 endif 279 endif 280 281 ifdef USE_GCC 282 LINK_VM = $(LINK_LIB.CC) 283 else 284 LINK_VM = $(LINK_LIB.CXX) 285 endif 286 # making the library: 287 $(LIBJVM): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(LIBJVM.o) $(LIBJVM_MAPFILE) 288 ifeq ($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),) 289 @echo Linking vm... 290 $(QUIETLY) $(LINK_LIB.CXX/PRE_HOOK) 291 $(QUIETLY) $(LINK_VM) $(LFLAGS_VM) -o $@ $(LIBJVM.o) $(LIBS_VM) 292 $(QUIETLY) $(LINK_LIB.CXX/POST_HOOK) 293 $(QUIETLY) rm -f $@.1 && ln -s $@ $@.1 294 $(QUIETLY) [ -f $(LIBJVM_G) ] || ln -s $@ $(LIBJVM_G) 295 $(QUIETLY) [ -f $(LIBJVM_G).1 ] || ln -s $@.1 $(LIBJVM_G).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) $@ 303 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO) 304 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. 305 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. 306 # $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ 307 $(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DEBUGINFO) $@ 308 ifeq ($(STRIP_POLICY),all_strip) 309 $(QUIETLY) $(STRIP) $@ 310 else 311 ifeq ($(STRIP_POLICY),min_strip) 312 $(QUIETLY) $(STRIP) -x $@ 313 # implied else here is no stripping at all 314 endif 315 endif 316 $(QUIETLY) [ -f $(LIBJVM_G_DEBUGINFO) ] || ln -s $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) 317 ifeq ($(ZIP_DEBUGINFO_FILES),1) 318 $(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) 319 $(RM) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) 320 [ -f $(LIBJVM_G_DIZ) ] || { ln -s $(LIBJVM_DIZ) $(LIBJVM_G_DIZ); } 321 endif 322 endif 323 endif # filter -sbfast -xsbfast 324 325 |