make/solaris/makefiles/defs.make

Mon, 28 Jul 2014 15:06:38 -0700

author
fzhinkin
date
Mon, 28 Jul 2014 15:06:38 -0700
changeset 6997
dbb05f6d93c4
parent 4942
f36e073d56a4
child 6876
710a3c8b516e
child 7354
8c76e844a7f9
permissions
-rw-r--r--

8051344: JVM crashed in Compile::start() during method parsing w/ UseRTMDeopt turned on
Summary: call rtm_deopt() only if there were no compilation bailouts before.
Reviewed-by: kvn

     1 #
     2 # Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
     3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4 #
     5 # This code is free software; you can redistribute it and/or modify it
     6 # under the terms of the GNU General Public License version 2 only, as
     7 # published by the Free Software Foundation.
     8 #
     9 # This code is distributed in the hope that it will be useful, but WITHOUT
    10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    11 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    12 # version 2 for more details (a copy is included in the LICENSE file that
    13 # accompanied this code).
    14 #
    15 # You should have received a copy of the GNU General Public License version
    16 # 2 along with this work; if not, write to the Free Software Foundation,
    17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    18 #
    19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20 # or visit www.oracle.com if you need additional information or have any
    21 # questions.
    22 #
    23 #
    25 # The common definitions for hotspot solaris builds.
    26 # Include the top level defs.make under make directory instead of this one.
    27 # This file is included into make/defs.make.
    29 # Need PLATFORM (os-arch combo names) for jdk and hotspot, plus libarch name
    30 SLASH_JAVA ?= /java
    31 ARCH:=$(shell uname -p)
    32 PATH_SEP = :
    33 ifeq ($(LP64), 1)
    34   ARCH_DATA_MODEL=64
    35 else
    36   ARCH_DATA_MODEL=32
    37 endif
    39 ifeq ($(ARCH),sparc)
    40   ifeq ($(ARCH_DATA_MODEL), 64)
    41     MAKE_ARGS += LP64=1
    42     PLATFORM=solaris-sparcv9
    43     VM_PLATFORM=solaris_sparcv9
    44   else
    45     PLATFORM=solaris-sparc
    46     VM_PLATFORM=solaris_sparc
    47   endif
    48   HS_ARCH=sparc
    49 else
    50   ifeq ($(ARCH_DATA_MODEL), 64)
    51     MAKE_ARGS += LP64=1
    52     PLATFORM=solaris-amd64
    53     VM_PLATFORM=solaris_amd64
    54     HS_ARCH=x86
    55   else
    56     PLATFORM=solaris-i586
    57     VM_PLATFORM=solaris_i486
    58     HS_ARCH=x86
    59   endif
    60 endif
    62 # On 32 bit solaris we build server and client, on 64 bit just server.
    63 ifeq ($(JVM_VARIANTS),)
    64   ifeq ($(ARCH_DATA_MODEL), 32)
    65     JVM_VARIANTS:=client,server
    66     JVM_VARIANT_CLIENT:=true
    67     JVM_VARIANT_SERVER:=true
    68   else
    69     JVM_VARIANTS:=server
    70     JVM_VARIANT_SERVER:=true
    71   endif
    72 endif
    74 # determine if HotSpot is being built in JDK6 or earlier version
    75 JDK6_OR_EARLIER=0
    76 ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
    77   # if the longer variable names (newer build style) are set, then check those
    78   ifeq "$(shell expr \( $(JDK_MAJOR_VERSION) = 1 \& $(JDK_MINOR_VERSION) \< 7 \))" "1"
    79     JDK6_OR_EARLIER=1
    80   endif
    81 else
    82   # the longer variables aren't set so check the shorter variable names
    83   ifeq "$(shell expr \( '$(JDK_MAJOR_VER)' = 1 \& '$(JDK_MINOR_VER)' \< 7 \))" "1"
    84     JDK6_OR_EARLIER=1
    85   endif
    86 endif
    88 ifeq ($(JDK6_OR_EARLIER),0)
    89   # Full Debug Symbols is supported on JDK7 or newer.
    90   # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
    91   # builds is enabled with debug info files ZIP'ed to save space. For
    92   # BUILD_FLAVOR != product builds, FDS is always enabled, after all a
    93   # debug build without debug info isn't very useful.
    94   # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
    95   #
    96   # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
    97   # disabled for a BUILD_FLAVOR == product build.
    98   #
    99   # Note: Use of a different variable name for the FDS override option
   100   # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
   101   # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
   102   # in options via environment variables, use of distinct variables
   103   # prevents strange behaviours. For example, in a BUILD_FLAVOR !=
   104   # product build, the FULL_DEBUG_SYMBOLS environment variable will be
   105   # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
   106   # the same variable name is used, then different values can be picked
   107   # up by different parts of the build. Just to be clear, we only need
   108   # two variable names because the incoming option value can be
   109   # overridden in some situations, e.g., a BUILD_FLAVOR != product
   110   # build.
   112   # Due to the multiple sub-make processes that occur this logic gets
   113   # executed multiple times. We reduce the noise by at least checking that
   114   # BUILD_FLAVOR has been set.
   115   ifneq ($(BUILD_FLAVOR),)
   116     ifeq ($(BUILD_FLAVOR), product)
   117       FULL_DEBUG_SYMBOLS ?= 1
   118       ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
   119     else
   120       # debug variants always get Full Debug Symbols (if available)
   121       ENABLE_FULL_DEBUG_SYMBOLS = 1
   122     endif
   123     _JUNK_ := $(shell \
   124       echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
   125     # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
   127     ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   128       # Default OBJCOPY comes from the SUNWbinutils package:
   129       DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
   130       OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
   131       ifneq ($(ALT_OBJCOPY),)
   132         _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
   133         OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
   134       endif
   136       ifeq ($(OBJCOPY),)
   137         _JUNK_ := $(shell \
   138           echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
   139         ENABLE_FULL_DEBUG_SYMBOLS=0
   140         _JUNK_ := $(shell \
   141           echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
   142       else
   143         _JUNK_ := $(shell \
   144           echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
   146         # Library stripping policies for .debuginfo configs:
   147         #   all_strip - strips everything from the library
   148         #   min_strip - strips most stuff from the library; leaves minimum symbols
   149         #   no_strip  - does not strip the library at all
   150         #
   151         # Oracle security policy requires "all_strip". A waiver was granted on
   152         # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
   153         #
   154         # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled.
   155         #
   156         STRIP_POLICY ?= min_strip
   158         _JUNK_ := $(shell \
   159           echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
   161         ZIP_DEBUGINFO_FILES ?= 1
   163         _JUNK_ := $(shell \
   164           echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
   165       endif
   166     endif # ENABLE_FULL_DEBUG_SYMBOLS=1
   167   endif # BUILD_FLAVOR
   168 endif # JDK_6_OR_EARLIER
   170 JDK_INCLUDE_SUBDIR=solaris
   172 # Library suffix
   173 LIBRARY_SUFFIX=so
   175 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
   177 # client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX)
   178 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
   179 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   180   ifeq ($(ZIP_DEBUGINFO_FILES),1)
   181     EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz
   182   else
   183     EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
   184   endif
   185 endif
   187 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
   188 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
   190 ifeq ($(JVM_VARIANT_SERVER),true)
   191   EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
   192   EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
   193   EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
   194   EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
   195   ifeq ($(ARCH_DATA_MODEL),32)
   196     EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
   197     EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
   198   endif
   199   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   200     ifeq ($(ZIP_DEBUGINFO_FILES),1)
   201       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz
   202       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.diz
   203       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.diz
   204       ifeq ($(ARCH_DATA_MODEL),32)
   205         EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.diz
   206         EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.diz
   207       endif
   208     else
   209       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
   210       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo
   211       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo
   212       ifeq ($(ARCH_DATA_MODEL),32)
   213         EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.debuginfo
   214         EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.debuginfo
   215       endif
   216     endif
   217   endif
   218 endif
   219 ifeq ($(JVM_VARIANT_CLIENT),true)
   220   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
   221   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
   222   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
   223   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
   224   ifeq ($(ARCH_DATA_MODEL),32)
   225     EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
   226     EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
   227   endif
   228   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   229     ifeq ($(ZIP_DEBUGINFO_FILES),1)
   230       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz
   231       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.diz
   232       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.diz
   233       ifeq ($(ARCH_DATA_MODEL),32)
   234         EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.diz
   235         EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.diz
   236       endif
   237     else
   238       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
   239       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo
   240       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo
   241       ifeq ($(ARCH_DATA_MODEL),32)
   242         EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo
   243         EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo
   244       endif
   245     endif
   246   endif
   247 endif
   249 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX)
   250 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   251   ifeq ($(ZIP_DEBUGINFO_FILES),1)
   252     EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
   253   else
   254     EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
   255   endif
   256 endif
   257 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar

mercurial