hotspot/make/linux/makefiles/defs.make
changeset 12503 9df71f999005
parent 12156 fb31de03f649
parent 12502 a37189400e0d
child 13529 dc25e69fd16d
equal deleted inserted replaced
12500:6d00ed2fb2ab 12503:9df71f999005
   139     JDK6_OR_EARLIER=1
   139     JDK6_OR_EARLIER=1
   140   endif
   140   endif
   141 endif
   141 endif
   142 
   142 
   143 ifeq ($(JDK6_OR_EARLIER),0)
   143 ifeq ($(JDK6_OR_EARLIER),0)
   144   # Full Debug Symbols is supported on JDK7 or newer
   144   # Full Debug Symbols is supported on JDK7 or newer.
   145 
   145   # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
   146   # Default OBJCOPY comes from GNU Binutils on Linux:
   146   # builds is enabled with debug info files ZIP'ed to save space. For
   147   DEF_OBJCOPY=/usr/bin/objcopy
   147   # BUILD_FLAVOR != product builds, FDS is always enabled, after all a
   148   ifdef CROSS_COMPILE_ARCH
   148   # debug build without debug info isn't very useful.
   149     # don't try to generate .debuginfo files when cross compiling
   149   # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
   150     _JUNK_ := $(shell \
   150   #
   151       echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \
   151   # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
   152         "skipping .debuginfo generation.")
   152   # disabled for a BUILD_FLAVOR == product build.
       
   153   #
       
   154   # Note: Use of a different variable name for the FDS override option
       
   155   # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
       
   156   # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
       
   157   # in options via environment variables, use of distinct variables
       
   158   # prevents strange behaviours. For example, in a BUILD_FLAVOR !=
       
   159   # product build, the FULL_DEBUG_SYMBOLS environment variable will be
       
   160   # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
       
   161   # the same variable name is used, then different values can be picked
       
   162   # up by different parts of the build. Just to be clear, we only need
       
   163   # two variable names because the incoming option value can be
       
   164   # overridden in some situations, e.g., a BUILD_FLAVOR != product
       
   165   # build.
       
   166 
       
   167   ifeq ($(BUILD_FLAVOR), product)
       
   168     FULL_DEBUG_SYMBOLS ?= 1
       
   169     ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
       
   170   else
       
   171     # debug variants always get Full Debug Symbols (if available)
       
   172     ENABLE_FULL_DEBUG_SYMBOLS = 1
       
   173   endif
       
   174   _JUNK_ := $(shell \
       
   175     echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
       
   176   # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
       
   177 
       
   178   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
       
   179     # Default OBJCOPY comes from GNU Binutils on Linux:
       
   180     DEF_OBJCOPY=/usr/bin/objcopy
       
   181     ifdef CROSS_COMPILE_ARCH
       
   182       # don't try to generate .debuginfo files when cross compiling
       
   183       _JUNK_ := $(shell \
       
   184         echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \
       
   185           "skipping .debuginfo generation.")
       
   186       OBJCOPY=
       
   187     else
       
   188       OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
       
   189       ifneq ($(ALT_OBJCOPY),)
       
   190         _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
       
   191         OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
       
   192       endif
       
   193     endif
       
   194   else
   153     OBJCOPY=
   195     OBJCOPY=
   154   else
   196   endif
   155     OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
   197 
   156     ifneq ($(ALT_OBJCOPY),)
       
   157       _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
       
   158       # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
       
   159       OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
       
   160     endif
       
   161   endif
       
   162   
       
   163   ifeq ($(OBJCOPY),)
   198   ifeq ($(OBJCOPY),)
   164     _JUNK_ := $(shell \
   199     _JUNK_ := $(shell \
   165       echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
   200       echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
       
   201     ENABLE_FULL_DEBUG_SYMBOLS=0
       
   202     _JUNK_ := $(shell \
       
   203       echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
   166   else
   204   else
   167     _JUNK_ := $(shell \
   205     _JUNK_ := $(shell \
   168       echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
   206       echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
   169   
   207 
   170     # Library stripping policies for .debuginfo configs:
   208     # Library stripping policies for .debuginfo configs:
   171     #   all_strip - strips everything from the library
   209     #   all_strip - strips everything from the library
   172     #   min_strip - strips most stuff from the library; leaves minimum symbols
   210     #   min_strip - strips most stuff from the library; leaves minimum symbols
   173     #   no_strip  - does not strip the library at all
   211     #   no_strip  - does not strip the library at all
   174     #
   212     #
   175     # Oracle security policy requires "all_strip". A waiver was granted on
   213     # Oracle security policy requires "all_strip". A waiver was granted on
   176     # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
   214     # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
   177     #
   215     #
   178     DEF_STRIP_POLICY="min_strip"
   216     # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled.
   179     ifeq ($(ALT_STRIP_POLICY),)
   217     #
   180       STRIP_POLICY=$(DEF_STRIP_POLICY)
   218     STRIP_POLICY ?= min_strip
   181     else
   219 
   182       STRIP_POLICY=$(ALT_STRIP_POLICY)
       
   183     endif
       
   184   
       
   185     _JUNK_ := $(shell \
   220     _JUNK_ := $(shell \
   186       echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
   221       echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
       
   222 
       
   223     ZIP_DEBUGINFO_FILES ?= 1
       
   224 
       
   225     _JUNK_ := $(shell \
       
   226       echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
   187   endif
   227   endif
   188 endif
   228 endif
   189 
   229 
   190 JDK_INCLUDE_SUBDIR=linux
   230 JDK_INCLUDE_SUBDIR=linux
   191 
   231 
   197 
   237 
   198 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
   238 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
   199 
   239 
   200 # client and server subdirectories have symbolic links to ../libjsig.so
   240 # client and server subdirectories have symbolic links to ../libjsig.so
   201 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
   241 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
   202 ifneq ($(OBJCOPY),)
   242 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   203   EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
   243   ifeq ($(ZIP_DEBUGINFO_FILES),1)
       
   244     EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz
       
   245   else
       
   246     EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
       
   247   endif
   204 endif
   248 endif
   205 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
   249 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
   206 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
   250 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
   207 
   251 
   208 EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
   252 EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
   209 
   253 
   210 ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
   254 ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
   211   EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
   255   EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
   212   EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
   256   EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
   213   ifneq ($(OBJCOPY),)
   257   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   214     EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
   258     ifeq ($(ZIP_DEBUGINFO_FILES),1)
       
   259       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz
       
   260     else
       
   261       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
       
   262     endif
   215   endif
   263   endif
   216 endif
   264 endif
   217 
   265 
   218 ifeq ($(JVM_VARIANT_CLIENT),true)
   266 ifeq ($(JVM_VARIANT_CLIENT),true)
   219   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
   267   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
   220   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
   268   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
   221   ifneq ($(OBJCOPY),)
   269   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   222     EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
   270     ifeq ($(ZIP_DEBUGINFO_FILES),1)
       
   271       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz
       
   272     else
       
   273       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
       
   274     endif
   223   endif 
   275   endif 
   224 endif
   276 endif
   225 
   277 
   226 # Serviceability Binaries
   278 # Serviceability Binaries
   227 # No SA Support for PPC, IA64, ARM or zero
   279 # No SA Support for PPC, IA64, ARM or zero
   228 ADD_SA_BINARIES/x86   = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
   280 ADD_SA_BINARIES/x86   = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
   229                         $(EXPORT_LIB_DIR)/sa-jdi.jar 
   281                         $(EXPORT_LIB_DIR)/sa-jdi.jar 
   230 ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
   282 ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
   231                         $(EXPORT_LIB_DIR)/sa-jdi.jar 
   283                         $(EXPORT_LIB_DIR)/sa-jdi.jar 
   232 ifneq ($(OBJCOPY),)
   284 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   233   ADD_SA_BINARIES/x86   += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
   285   ifeq ($(ZIP_DEBUGINFO_FILES),1)
   234   ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
   286     ADD_SA_BINARIES/x86   += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
       
   287     ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
       
   288   else
       
   289     ADD_SA_BINARIES/x86   += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
       
   290     ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
       
   291   endif
   235 endif
   292 endif
   236 ADD_SA_BINARIES/ppc   = 
   293 ADD_SA_BINARIES/ppc   = 
   237 ADD_SA_BINARIES/ia64  = 
   294 ADD_SA_BINARIES/ia64  = 
   238 ADD_SA_BINARIES/arm   = 
   295 ADD_SA_BINARIES/arm   = 
   239 ADD_SA_BINARIES/zero  = 
   296 ADD_SA_BINARIES/zero  =