hotspot/make/solaris/makefiles/defs.make
changeset 12503 9df71f999005
parent 12156 fb31de03f649
parent 12502 a37189400e0d
child 12504 7729f0766700
equal deleted inserted replaced
12500:6d00ed2fb2ab 12503:9df71f999005
    84     JDK6_OR_EARLIER=1
    84     JDK6_OR_EARLIER=1
    85   endif
    85   endif
    86 endif
    86 endif
    87 
    87 
    88 ifeq ($(JDK6_OR_EARLIER),0)
    88 ifeq ($(JDK6_OR_EARLIER),0)
    89   # Full Debug Symbols is supported on JDK7 or newer
    89   # Full Debug Symbols is supported on JDK7 or newer.
    90 
    90   # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
    91 ifdef ENABLE_FULL_DEBUG_SYMBOLS
    91   # builds is enabled with debug info files ZIP'ed to save space. For
    92   # Only check for Full Debug Symbols support on Solaris if it is
    92   # BUILD_FLAVOR != product builds, FDS is always enabled, after all a
    93   # specifically enabled. Hopefully, it can be enabled by default
    93   # debug build without debug info isn't very useful.
    94   # once the .debuginfo size issues are worked out.
    94   # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
    95   
    95   #
    96   # Default OBJCOPY comes from the SUNWbinutils package:
    96   # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
    97   DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
    97   # disabled for a BUILD_FLAVOR == product build.
    98   ifeq ($(VM_PLATFORM),solaris_amd64)
    98   #
    99     # On Solaris AMD64/X64, gobjcopy is not happy and fails:
    99   # Note: Use of a different variable name for the FDS override option
   100     #
   100   # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
   101     # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so
   101   # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
   102     # BFD: stKPaiop: Not enough room for program headers, try linking with -N
   102   # in options via environment variables, use of distinct variables
   103     # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
   103   # prevents strange behaviours. For example, in a BUILD_FLAVOR !=
   104     # BFD: stKPaiop: Not enough room for program headers, try linking with -N
   104   # product build, the FULL_DEBUG_SYMBOLS environment variable will be
   105     # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
   105   # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
   106     # BFD: stKPaiop: Not enough room for program headers, try linking with -N
   106   # the same variable name is used, then different values can be picked
   107     # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
   107   # up by different parts of the build. Just to be clear, we only need
   108     _JUNK_ := $(shell \
   108   # two variable names because the incoming option value can be
   109       echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64")
   109   # overridden in some situations, e.g., a BUILD_FLAVOR != product
       
   110   # build.
       
   111 
       
   112   ifeq ($(BUILD_FLAVOR), product)
       
   113     FULL_DEBUG_SYMBOLS ?= 1
       
   114     ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
       
   115   else
       
   116     # debug variants always get Full Debug Symbols (if available)
       
   117     ENABLE_FULL_DEBUG_SYMBOLS = 1
       
   118   endif
       
   119   _JUNK_ := $(shell \
       
   120     echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
       
   121   # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
       
   122 
       
   123   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
       
   124     # Default OBJCOPY comes from the SUNWbinutils package:
       
   125     DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
       
   126     ifeq ($(VM_PLATFORM),solaris_amd64)
       
   127       # On Solaris AMD64/X64, gobjcopy is not happy and fails:
       
   128       #
       
   129       # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so
       
   130       # BFD: stKPaiop: Not enough room for program headers, try linking with -N
       
   131       # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
       
   132       # BFD: stKPaiop: Not enough room for program headers, try linking with -N
       
   133       # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
       
   134       # BFD: stKPaiop: Not enough room for program headers, try linking with -N
       
   135       # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
       
   136       _JUNK_ := $(shell \
       
   137         echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64")
       
   138       OBJCOPY=
       
   139     else
       
   140       OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
       
   141       ifneq ($(ALT_OBJCOPY),)
       
   142         _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
       
   143         OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
       
   144       endif
       
   145     endif
       
   146   else
   110     OBJCOPY=
   147     OBJCOPY=
   111   else
   148   endif
   112     OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
   149 
   113     ifneq ($(ALT_OBJCOPY),)
       
   114       _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
       
   115       # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
       
   116       OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
       
   117     endif
       
   118   endif
       
   119 endif
       
   120   
       
   121   ifeq ($(OBJCOPY),)
   150   ifeq ($(OBJCOPY),)
   122     _JUNK_ := $(shell \
   151     _JUNK_ := $(shell \
   123       echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
   152       echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
       
   153     ENABLE_FULL_DEBUG_SYMBOLS=0
       
   154     _JUNK_ := $(shell \
       
   155       echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
   124   else
   156   else
   125     _JUNK_ := $(shell \
   157     _JUNK_ := $(shell \
   126       echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
   158       echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
   127   
   159 
   128     # Library stripping policies for .debuginfo configs:
   160     # Library stripping policies for .debuginfo configs:
   129     #   all_strip - strips everything from the library
   161     #   all_strip - strips everything from the library
   130     #   min_strip - strips most stuff from the library; leaves minimum symbols
   162     #   min_strip - strips most stuff from the library; leaves minimum symbols
   131     #   no_strip  - does not strip the library at all
   163     #   no_strip  - does not strip the library at all
   132     #
   164     #
   133     # Oracle security policy requires "all_strip". A waiver was granted on
   165     # Oracle security policy requires "all_strip". A waiver was granted on
   134     # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
   166     # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
   135     #
   167     #
   136     DEF_STRIP_POLICY="min_strip"
   168     # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled.
   137     ifeq ($(ALT_STRIP_POLICY),)
   169     #
   138       STRIP_POLICY=$(DEF_STRIP_POLICY)
   170     STRIP_POLICY ?= min_strip
   139     else
   171 
   140       STRIP_POLICY=$(ALT_STRIP_POLICY)
       
   141     endif
       
   142     _JUNK_ := $(shell \
   172     _JUNK_ := $(shell \
   143       echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
   173       echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
       
   174 
       
   175     ZIP_DEBUGINFO_FILES ?= 1
       
   176 
       
   177     _JUNK_ := $(shell \
       
   178       echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
   144   endif
   179   endif
   145 endif
   180 endif
   146 
   181 
   147 JDK_INCLUDE_SUBDIR=solaris
   182 JDK_INCLUDE_SUBDIR=solaris
   148 
   183 
   154 
   189 
   155 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
   190 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
   156 
   191 
   157 # client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX)
   192 # client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX)
   158 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
   193 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
   159 ifneq ($(OBJCOPY),)
   194 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   160   EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
   195   ifeq ($(ZIP_DEBUGINFO_FILES),1)
       
   196     EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz
       
   197   else
       
   198     EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
       
   199   endif
   161 endif
   200 endif
   162 
   201 
   163 EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
   202 EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
   164 
   203 
   165 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
   204 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
   172   EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
   211   EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
   173   ifeq ($(ARCH_DATA_MODEL),32)
   212   ifeq ($(ARCH_DATA_MODEL),32)
   174     EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
   213     EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
   175     EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
   214     EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
   176   endif
   215   endif
   177   ifneq ($(OBJCOPY),)
   216   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   178     EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
   217     ifeq ($(ZIP_DEBUGINFO_FILES),1)
   179     EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo
   218       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz
   180     EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo
   219       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.diz
       
   220       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.diz
       
   221     else
       
   222       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
       
   223       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo
       
   224       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo
       
   225     endif
   181   endif
   226   endif
   182 endif
   227 endif
   183 ifeq ($(JVM_VARIANT_CLIENT),true)
   228 ifeq ($(JVM_VARIANT_CLIENT),true)
   184   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
   229   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
   185   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) 
   230   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) 
   187   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
   232   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
   188   ifeq ($(ARCH_DATA_MODEL),32)
   233   ifeq ($(ARCH_DATA_MODEL),32)
   189     EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
   234     EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
   190     EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
   235     EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
   191   endif
   236   endif
   192   ifneq ($(OBJCOPY),)
   237   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   193     EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
   238     ifeq ($(ZIP_DEBUGINFO_FILES),1)
   194     EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo
   239       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz
   195     EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo
   240       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.diz
   196     ifeq ($(ARCH_DATA_MODEL),32)
   241       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.diz
   197       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo
   242       ifeq ($(ARCH_DATA_MODEL),32)
   198       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo
   243         EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.diz
       
   244         EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.diz
       
   245       endif
       
   246     else
       
   247       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
       
   248       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo
       
   249       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo
       
   250       ifeq ($(ARCH_DATA_MODEL),32)
       
   251         EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo
       
   252         EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo
       
   253       endif
   199     endif
   254     endif
   200   endif
   255   endif
   201 endif
   256 endif
   202 
   257 
   203 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX)
   258 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX)
   204 ifneq ($(OBJCOPY),)
   259 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   205   EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
   260   ifeq ($(ZIP_DEBUGINFO_FILES),1)
       
   261     EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
       
   262   else
       
   263     EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
       
   264   endif
   206 endif
   265 endif
   207 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar 
   266 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar