make/solaris/makefiles/dtrace.make

Print this page




  22 #  
  23 #
  24 
  25 # Rules to build jvm_db/dtrace, used by vm.make
  26 
  27 # We build libjvm_dtrace/libjvm_db/dtrace for COMPILER1 and COMPILER2
  28 # but not for CORE or KERNEL configurations.
  29 
  30 ifneq ("${TYPE}", "CORE")
  31 ifneq ("${TYPE}", "KERNEL")
  32 
  33 ifdef USE_GCC
  34 
  35 dtraceCheck:
  36         $(QUIETLY) echo "**NOTICE** Dtrace support disabled for gcc builds"
  37 
  38 else
  39 
  40 JVM_DB = libjvm_db
  41 LIBJVM_DB = libjvm_db.so
  42 LIBJVM_DB_G = libjvm$(G_SUFFIX)_db.so
  43 
  44 LIBJVM_DB_DEBUGINFO   = libjvm_db.debuginfo
  45 LIBJVM_DB_DIZ         = libjvm_db.diz
  46 LIBJVM_DB_G_DEBUGINFO = libjvm$(G_SUFFIX)_db.debuginfo
  47 LIBJVM_DB_G_DIZ       = libjvm$(G_SUFFIX)_db.diz
  48 
  49 JVM_DTRACE = jvm_dtrace
  50 LIBJVM_DTRACE = libjvm_dtrace.so
  51 LIBJVM_DTRACE_G = libjvm$(G_SUFFIX)_dtrace.so
  52 
  53 LIBJVM_DTRACE_DEBUGINFO   = libjvm_dtrace.debuginfo
  54 LIBJVM_DTRACE_DIZ         = libjvm_dtrace.diz
  55 LIBJVM_DTRACE_G_DEBUGINFO = libjvm$(G_SUFFIX)_dtrace.debuginfo
  56 LIBJVM_DTRACE_G_DIZ       = libjvm$(G_SUFFIX)_dtrace.diz
  57 
  58 JVMOFFS = JvmOffsets
  59 JVMOFFS.o = $(JVMOFFS).o
  60 GENOFFS = generate$(JVMOFFS)
  61 
  62 DTRACE_SRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/dtrace
  63 DTRACE = dtrace
  64 DTRACE.o = $(DTRACE).o
  65 
  66 # to remove '-g' option which causes link problems
  67 # also '-z nodefs' is used as workaround
  68 GENOFFS_CFLAGS = $(shell echo $(CFLAGS) | sed -e 's/ -g / /g' -e 's/ -g0 / /g';)
  69 
  70 ifdef LP64
  71 DTRACE_OPTS = -64 -D_LP64
  72 endif
  73 
  74 # making libjvm_db
  75 
  76 # Use mapfile with libjvm_db.so


  79 
  80 # Use mapfile with libjvm_dtrace.so
  81 LIBJVM_DTRACE_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jvm_dtrace
  82 LFLAGS_JVM_DTRACE += $(MAPFLAG:FILENAME=$(LIBJVM_DTRACE_MAPFILE))
  83 
  84 ifdef USE_GCC
  85 LFLAGS_JVM_DB += -D_REENTRANT $(PICFLAG)
  86 LFLAGS_JVM_DTRACE += -D_REENTRANT $(PICFLAG)
  87 else
  88 LFLAGS_JVM_DB += -mt $(PICFLAG) -xnolib
  89 LFLAGS_JVM_DTRACE += -mt $(PICFLAG) -xnolib -ldl
  90 endif
  91 
  92 ISA = $(subst i386,i486,$(shell isainfo -n))
  93 
  94 # Making 64/libjvm_db.so: 64-bit version of libjvm_db.so which handles 32-bit libjvm.so
  95 ifneq ("${ISA}","${BUILDARCH}")
  96 
  97 XLIBJVM_DIR = 64
  98 XLIBJVM_DB = $(XLIBJVM_DIR)/$(LIBJVM_DB)
  99 XLIBJVM_DB_G = $(XLIBJVM_DIR)/$(LIBJVM_DB_G)
 100 XLIBJVM_DTRACE = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE)
 101 XLIBJVM_DTRACE_G = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_G)
 102 
 103 XLIBJVM_DB_DEBUGINFO       = $(XLIBJVM_DIR)/$(LIBJVM_DB_DEBUGINFO)
 104 XLIBJVM_DB_DIZ             = $(XLIBJVM_DIR)/$(LIBJVM_DB_DIZ)
 105 XLIBJVM_DB_G_DEBUGINFO     = $(XLIBJVM_DIR)/$(LIBJVM_DB_G_DEBUGINFO)
 106 XLIBJVM_DB_G_DIZ           = $(XLIBJVM_DIR)/$(LIBJVM_DB_G_DIZ)
 107 XLIBJVM_DTRACE_DEBUGINFO   = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DEBUGINFO)
 108 XLIBJVM_DTRACE_DIZ         = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DIZ)
 109 XLIBJVM_DTRACE_G_DEBUGINFO = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_G_DEBUGINFO)
 110 XLIBJVM_DTRACE_G_DIZ       = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_G_DIZ)
 111 
 112 $(XLIBJVM_DB): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS).h $(LIBJVM_DB_MAPFILE)
 113         @echo Making $@
 114         $(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \
 115         $(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. -I$(GENERATED) \
 116                 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc
 117         [ -f $(XLIBJVM_DB_G) ] || { ln -s $(LIBJVM_DB) $(XLIBJVM_DB_G); }
 118 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 119 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
 120 # Clear the SHF_ALLOC flag (if set) from empty section headers.
 121 # An empty section header has sh_addr == 0 and sh_size == 0.
 122 # This problem has only been seen on Solaris X64, but we call this tool
 123 # on all Solaris builds just in case.
 124         $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 125         $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DB_DEBUGINFO)
 126 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
 127 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
 128 #         $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB) ;
 129 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not
 130 # in the link name:
 131         ( cd $(XLIBJVM_DIR) && $(ADD_GNU_DEBUGLINK) $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB) )
 132   ifeq ($(STRIP_POLICY),all_strip)
 133         $(QUIETLY) $(STRIP) $@
 134   else
 135     ifeq ($(STRIP_POLICY),min_strip)
 136         $(QUIETLY) $(STRIP) -x $@
 137     # implied else here is no stripping at all
 138     endif
 139   endif
 140         [ -f $(XLIBJVM_DB_G_DEBUGINFO) ] || { cd $(XLIBJVM_DIR) && ln -s $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB_G_DEBUGINFO); }
 141   ifeq ($(ZIP_DEBUGINFO_FILES),1)
 142 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not
 143 # in the archived name:
 144         ( cd $(XLIBJVM_DIR) && $(ZIPEXE) -q -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB_G_DEBUGINFO) )
 145         $(RM) $(XLIBJVM_DB_DEBUGINFO) $(XLIBJVM_DB_G_DEBUGINFO)
 146         [ -f $(XLIBJVM_DB_G_DIZ) ] || { cd $(XLIBJVM_DIR) && ln -s $(LIBJVM_DB_DIZ) $(LIBJVM_DB_G_DIZ); }
 147   endif
 148 endif
 149 
 150 $(XLIBJVM_DTRACE): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE)
 151         @echo Making $@
 152         $(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \
 153         $(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. \
 154                 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor
 155         [ -f $(XLIBJVM_DTRACE_G) ] || { ln -s $(LIBJVM_DTRACE) $(XLIBJVM_DTRACE_G); }
 156 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 157 # Clear the SHF_ALLOC flag (if set) from empty section headers.
 158         $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 159         $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DTRACE_DEBUGINFO)
 160 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
 161 #         $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE) ;
 162 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not
 163 # in the link name:
 164         ( cd $(XLIBJVM_DIR) && $(ADD_GNU_DEBUGLINK) $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE) )
 165   ifeq ($(STRIP_POLICY),all_strip)
 166         $(QUIETLY) $(STRIP) $@
 167   else
 168     ifeq ($(STRIP_POLICY),min_strip)
 169         $(QUIETLY) $(STRIP) -x $@
 170     # implied else here is no stripping at all
 171     endif
 172   endif
 173         [ -f $(XLIBJVM_DTRACE_G_DEBUGINFO) ] || { cd $(XLIBJVM_DIR) && ln -s $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE_G_DEBUGINFO); }
 174   ifeq ($(ZIP_DEBUGINFO_FILES),1)
 175 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not
 176 # in the archived name:
 177         ( cd $(XLIBJVM_DIR) && $(ZIPEXE) -q -y $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE_G_DEBUGINFO) )
 178         $(RM) $(XLIBJVM_DTRACE_DEBUGINFO) $(XLIBJVM_DTRACE_G_DEBUGINFO)
 179         [ -f $(XLIBJVM_DTRACE_G_DIZ) ] || { cd $(XLIBJVM_DIR) && ln -s $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_G_DIZ); }
 180   endif
 181 endif
 182 
 183 endif # ifneq ("${ISA}","${BUILDARCH}")
 184 
 185 ifdef USE_GCC
 186 LFLAGS_GENOFFS += -D_REENTRANT
 187 else
 188 LFLAGS_GENOFFS += -mt -xnolib -norunpath
 189 endif
 190 
 191 lib$(GENOFFS).so: $(DTRACE_SRCDIR)/$(GENOFFS).cpp $(DTRACE_SRCDIR)/$(GENOFFS).h \
 192                   $(LIBJVM.o)
 193         $(QUIETLY) $(CXX) $(CXXFLAGS) $(GENOFFS_CFLAGS) $(SHARED_FLAG) $(PICFLAG) \
 194                  $(LFLAGS_GENOFFS) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS).cpp -lc
 195 
 196 $(GENOFFS): $(DTRACE_SRCDIR)/$(GENOFFS)Main.c lib$(GENOFFS).so
 197         $(QUIETLY) $(LINK.CXX) -z nodefs -o $@ $(DTRACE_SRCDIR)/$(GENOFFS)Main.c \
 198                 ./lib$(GENOFFS).so
 199 


 207 # $@.tmp is created first to avoid an empty $(JVMOFFS).h if an error occurs.
 208 $(JVMOFFS).h: $(GENOFFS)
 209         $(QUIETLY) LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ./$(GENOFFS) -header > $@.tmp
 210         $(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET)
 211 
 212 $(JVMOFFS)Index.h: $(GENOFFS)
 213         $(QUIETLY) LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ./$(GENOFFS) -index > $@.tmp
 214         $(QUIETLY)  $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET)
 215 
 216 $(JVMOFFS).cpp: $(GENOFFS) $(JVMOFFS).h $(JVMOFFS)Index.h
 217         $(QUIETLY) LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ./$(GENOFFS) -table > $@.tmp
 218         $(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET)
 219 
 220 $(JVMOFFS.o): $(JVMOFFS).h $(JVMOFFS).cpp 
 221         $(QUIETLY) $(CXX) -c -I. -o $@ $(ARCHFLAG) -D$(TYPE) $(JVMOFFS).cpp
 222 
 223 $(LIBJVM_DB): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS.o) $(XLIBJVM_DB) $(LIBJVM_DB_MAPFILE)
 224         @echo Making $@
 225         $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. -I$(GENERATED) \
 226                 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc
 227         [ -f $(LIBJVM_DB_G) ] || { ln -s $@ $(LIBJVM_DB_G); }
 228 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 229 # Clear the SHF_ALLOC flag (if set) from empty section headers.
 230         $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 231         $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DB_DEBUGINFO)
 232 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
 233 #       $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $@
 234         $(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DB_DEBUGINFO) $@
 235   ifeq ($(STRIP_POLICY),all_strip)
 236         $(QUIETLY) $(STRIP) $@
 237   else
 238     ifeq ($(STRIP_POLICY),min_strip)
 239         $(QUIETLY) $(STRIP) -x $@
 240     # implied else here is no stripping at all
 241     endif
 242   endif
 243         [ -f $(LIBJVM_DB_G_DEBUGINFO) ] || { ln -s $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB_G_DEBUGINFO); }
 244   ifeq ($(ZIP_DEBUGINFO_FILES),1)
 245         $(ZIPEXE) -q -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB_G_DEBUGINFO)
 246         $(RM) $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB_G_DEBUGINFO)
 247         [ -f $(LIBJVM_DB_G_DIZ) ] || { ln -s $(LIBJVM_DB_DIZ) $(LIBJVM_DB_G_DIZ); }
 248   endif
 249 endif
 250 
 251 $(LIBJVM_DTRACE): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(XLIBJVM_DTRACE) $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE)
 252         @echo Making $@
 253         $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I.  \
 254                 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor
 255         [ -f $(LIBJVM_DTRACE_G) ] || { ln -s $@ $(LIBJVM_DTRACE_G); }
 256 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 257 # Clear the SHF_ALLOC flag (if set) from empty section headers.
 258         $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 259         $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DTRACE_DEBUGINFO)
 260 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
 261 #       $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $@
 262         $(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DTRACE_DEBUGINFO) $@
 263   ifeq ($(STRIP_POLICY),all_strip)
 264         $(QUIETLY) $(STRIP) $@
 265   else
 266     ifeq ($(STRIP_POLICY),min_strip)
 267         $(QUIETLY) $(STRIP) -x $@
 268     # implied else here is no stripping at all
 269     endif
 270   endif
 271         [ -f $(LIBJVM_DTRACE_G_DEBUGINFO) ] || { ln -s $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE_G_DEBUGINFO); }
 272   ifeq ($(ZIP_DEBUGINFO_FILES),1)
 273         $(ZIPEXE) -q -y $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE_G_DEBUGINFO)
 274         $(RM) $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE_G_DEBUGINFO)
 275         [ -f $(LIBJVM_DTRACE_G_DIZ) ] || { ln -s $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_G_DIZ); }
 276   endif
 277 endif
 278 
 279 $(DTRACE).d: $(DTRACE_SRCDIR)/hotspot.d $(DTRACE_SRCDIR)/hotspot_jni.d \
 280              $(DTRACE_SRCDIR)/hs_private.d $(DTRACE_SRCDIR)/jhelper.d
 281         $(QUIETLY) cat $^ > $@
 282 
 283 DTraced_Files = ciEnv.o \
 284                 classLoadingService.o \
 285                 compileBroker.o \
 286                 hashtable.o \
 287                 instanceKlass.o \
 288                 java.o \
 289                 jni.o \
 290                 jvm.o \
 291                 memoryManager.o \
 292                 nmethod.o \
 293                 objectMonitor.o \
 294                 runtimeService.o \
 295                 sharedRuntime.o \




  22 #  
  23 #
  24 
  25 # Rules to build jvm_db/dtrace, used by vm.make
  26 
  27 # We build libjvm_dtrace/libjvm_db/dtrace for COMPILER1 and COMPILER2
  28 # but not for CORE or KERNEL configurations.
  29 
  30 ifneq ("${TYPE}", "CORE")
  31 ifneq ("${TYPE}", "KERNEL")
  32 
  33 ifdef USE_GCC
  34 
  35 dtraceCheck:
  36         $(QUIETLY) echo "**NOTICE** Dtrace support disabled for gcc builds"
  37 
  38 else
  39 
  40 JVM_DB = libjvm_db
  41 LIBJVM_DB = libjvm_db.so

  42 
  43 LIBJVM_DB_DEBUGINFO   = libjvm_db.debuginfo
  44 LIBJVM_DB_DIZ         = libjvm_db.diz


  45 
  46 JVM_DTRACE = jvm_dtrace
  47 LIBJVM_DTRACE = libjvm_dtrace.so

  48 
  49 LIBJVM_DTRACE_DEBUGINFO   = libjvm_dtrace.debuginfo
  50 LIBJVM_DTRACE_DIZ         = libjvm_dtrace.diz


  51 
  52 JVMOFFS = JvmOffsets
  53 JVMOFFS.o = $(JVMOFFS).o
  54 GENOFFS = generate$(JVMOFFS)
  55 
  56 DTRACE_SRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/dtrace
  57 DTRACE = dtrace
  58 DTRACE.o = $(DTRACE).o
  59 
  60 # to remove '-g' option which causes link problems
  61 # also '-z nodefs' is used as workaround
  62 GENOFFS_CFLAGS = $(shell echo $(CFLAGS) | sed -e 's/ -g / /g' -e 's/ -g0 / /g';)
  63 
  64 ifdef LP64
  65 DTRACE_OPTS = -64 -D_LP64
  66 endif
  67 
  68 # making libjvm_db
  69 
  70 # Use mapfile with libjvm_db.so


  73 
  74 # Use mapfile with libjvm_dtrace.so
  75 LIBJVM_DTRACE_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jvm_dtrace
  76 LFLAGS_JVM_DTRACE += $(MAPFLAG:FILENAME=$(LIBJVM_DTRACE_MAPFILE))
  77 
  78 ifdef USE_GCC
  79 LFLAGS_JVM_DB += -D_REENTRANT $(PICFLAG)
  80 LFLAGS_JVM_DTRACE += -D_REENTRANT $(PICFLAG)
  81 else
  82 LFLAGS_JVM_DB += -mt $(PICFLAG) -xnolib
  83 LFLAGS_JVM_DTRACE += -mt $(PICFLAG) -xnolib -ldl
  84 endif
  85 
  86 ISA = $(subst i386,i486,$(shell isainfo -n))
  87 
  88 # Making 64/libjvm_db.so: 64-bit version of libjvm_db.so which handles 32-bit libjvm.so
  89 ifneq ("${ISA}","${BUILDARCH}")
  90 
  91 XLIBJVM_DIR = 64
  92 XLIBJVM_DB = $(XLIBJVM_DIR)/$(LIBJVM_DB)

  93 XLIBJVM_DTRACE = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE)

  94 
  95 XLIBJVM_DB_DEBUGINFO       = $(XLIBJVM_DIR)/$(LIBJVM_DB_DEBUGINFO)
  96 XLIBJVM_DB_DIZ             = $(XLIBJVM_DIR)/$(LIBJVM_DB_DIZ)


  97 XLIBJVM_DTRACE_DEBUGINFO   = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DEBUGINFO)
  98 XLIBJVM_DTRACE_DIZ         = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DIZ)


  99 
 100 $(XLIBJVM_DB): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS).h $(LIBJVM_DB_MAPFILE)
 101         @echo Making $@
 102         $(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \
 103         $(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. -I$(GENERATED) \
 104                 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc

 105 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 106 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
 107 # Clear the SHF_ALLOC flag (if set) from empty section headers.
 108 # An empty section header has sh_addr == 0 and sh_size == 0.
 109 # This problem has only been seen on Solaris X64, but we call this tool
 110 # on all Solaris builds just in case.
 111         $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 112         $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DB_DEBUGINFO)
 113 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
 114 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
 115 #         $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB) ;
 116 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not
 117 # in the link name:
 118         ( cd $(XLIBJVM_DIR) && $(ADD_GNU_DEBUGLINK) $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB) )
 119   ifeq ($(STRIP_POLICY),all_strip)
 120         $(QUIETLY) $(STRIP) $@
 121   else
 122     ifeq ($(STRIP_POLICY),min_strip)
 123         $(QUIETLY) $(STRIP) -x $@
 124     # implied else here is no stripping at all
 125     endif
 126   endif

 127   ifeq ($(ZIP_DEBUGINFO_FILES),1)
 128 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not
 129 # in the archived name:
 130         ( cd $(XLIBJVM_DIR) && $(ZIPEXE) -q -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO) )
 131         $(RM) $(XLIBJVM_DB_DEBUGINFO)

 132   endif
 133 endif
 134 
 135 $(XLIBJVM_DTRACE): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE)
 136         @echo Making $@
 137         $(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \
 138         $(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. \
 139                 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor

 140 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 141 # Clear the SHF_ALLOC flag (if set) from empty section headers.
 142         $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 143         $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DTRACE_DEBUGINFO)
 144 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
 145 #         $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE) ;
 146 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not
 147 # in the link name:
 148         ( cd $(XLIBJVM_DIR) && $(ADD_GNU_DEBUGLINK) $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE) )
 149   ifeq ($(STRIP_POLICY),all_strip)
 150         $(QUIETLY) $(STRIP) $@
 151   else
 152     ifeq ($(STRIP_POLICY),min_strip)
 153         $(QUIETLY) $(STRIP) -x $@
 154     # implied else here is no stripping at all
 155     endif
 156   endif

 157   ifeq ($(ZIP_DEBUGINFO_FILES),1)
 158 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not
 159 # in the archived name:
 160         ( cd $(XLIBJVM_DIR) && $(ZIPEXE) -q -y $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_DEBUGINFO))
 161         $(RM) $(XLIBJVM_DTRACE_DEBUGINFO)

 162   endif
 163 endif
 164 
 165 endif # ifneq ("${ISA}","${BUILDARCH}")
 166 
 167 ifdef USE_GCC
 168 LFLAGS_GENOFFS += -D_REENTRANT
 169 else
 170 LFLAGS_GENOFFS += -mt -xnolib -norunpath
 171 endif
 172 
 173 lib$(GENOFFS).so: $(DTRACE_SRCDIR)/$(GENOFFS).cpp $(DTRACE_SRCDIR)/$(GENOFFS).h \
 174                   $(LIBJVM.o)
 175         $(QUIETLY) $(CXX) $(CXXFLAGS) $(GENOFFS_CFLAGS) $(SHARED_FLAG) $(PICFLAG) \
 176                  $(LFLAGS_GENOFFS) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS).cpp -lc
 177 
 178 $(GENOFFS): $(DTRACE_SRCDIR)/$(GENOFFS)Main.c lib$(GENOFFS).so
 179         $(QUIETLY) $(LINK.CXX) -z nodefs -o $@ $(DTRACE_SRCDIR)/$(GENOFFS)Main.c \
 180                 ./lib$(GENOFFS).so
 181 


 189 # $@.tmp is created first to avoid an empty $(JVMOFFS).h if an error occurs.
 190 $(JVMOFFS).h: $(GENOFFS)
 191         $(QUIETLY) LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ./$(GENOFFS) -header > $@.tmp
 192         $(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET)
 193 
 194 $(JVMOFFS)Index.h: $(GENOFFS)
 195         $(QUIETLY) LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ./$(GENOFFS) -index > $@.tmp
 196         $(QUIETLY)  $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET)
 197 
 198 $(JVMOFFS).cpp: $(GENOFFS) $(JVMOFFS).h $(JVMOFFS)Index.h
 199         $(QUIETLY) LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ./$(GENOFFS) -table > $@.tmp
 200         $(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET)
 201 
 202 $(JVMOFFS.o): $(JVMOFFS).h $(JVMOFFS).cpp 
 203         $(QUIETLY) $(CXX) -c -I. -o $@ $(ARCHFLAG) -D$(TYPE) $(JVMOFFS).cpp
 204 
 205 $(LIBJVM_DB): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS.o) $(XLIBJVM_DB) $(LIBJVM_DB_MAPFILE)
 206         @echo Making $@
 207         $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. -I$(GENERATED) \
 208                 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc

 209 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 210 # Clear the SHF_ALLOC flag (if set) from empty section headers.
 211         $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 212         $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DB_DEBUGINFO)
 213 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
 214 #       $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $@
 215         $(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DB_DEBUGINFO) $@
 216   ifeq ($(STRIP_POLICY),all_strip)
 217         $(QUIETLY) $(STRIP) $@
 218   else
 219     ifeq ($(STRIP_POLICY),min_strip)
 220         $(QUIETLY) $(STRIP) -x $@
 221     # implied else here is no stripping at all
 222     endif
 223   endif

 224   ifeq ($(ZIP_DEBUGINFO_FILES),1)
 225         $(ZIPEXE) -q -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO)
 226         $(RM) $(LIBJVM_DB_DEBUGINFO)

 227   endif
 228 endif
 229 
 230 $(LIBJVM_DTRACE): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(XLIBJVM_DTRACE) $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE)
 231         @echo Making $@
 232         $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I.  \
 233                 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor

 234 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 235 # Clear the SHF_ALLOC flag (if set) from empty section headers.
 236         $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 237         $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DTRACE_DEBUGINFO)
 238 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
 239 #       $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $@
 240         $(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DTRACE_DEBUGINFO) $@
 241   ifeq ($(STRIP_POLICY),all_strip)
 242         $(QUIETLY) $(STRIP) $@
 243   else
 244     ifeq ($(STRIP_POLICY),min_strip)
 245         $(QUIETLY) $(STRIP) -x $@
 246     # implied else here is no stripping at all
 247     endif
 248   endif

 249   ifeq ($(ZIP_DEBUGINFO_FILES),1)
 250         $(ZIPEXE) -q -y $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_DEBUGINFO) 
 251         $(RM) $(LIBJVM_DTRACE_DEBUGINFO)

 252   endif
 253 endif
 254 
 255 $(DTRACE).d: $(DTRACE_SRCDIR)/hotspot.d $(DTRACE_SRCDIR)/hotspot_jni.d \
 256              $(DTRACE_SRCDIR)/hs_private.d $(DTRACE_SRCDIR)/jhelper.d
 257         $(QUIETLY) cat $^ > $@
 258 
 259 DTraced_Files = ciEnv.o \
 260                 classLoadingService.o \
 261                 compileBroker.o \
 262                 hashtable.o \
 263                 instanceKlass.o \
 264                 java.o \
 265                 jni.o \
 266                 jvm.o \
 267                 memoryManager.o \
 268                 nmethod.o \
 269                 objectMonitor.o \
 270                 runtimeService.o \
 271                 sharedRuntime.o \