hotspot/make/solaris/makefiles/fastdebug.make
author ohair
Tue, 27 May 2008 09:47:18 -0700
changeset 584 02175b2b64e6
parent 338 5cf9f61d76f4
child 670 ddf3e9583f2f
permissions -rw-r--r--
6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles) Summary: Allows for building with SS12, no longer requires SS11, warns if not SS11 for now. Once SS12 is validated and performance measurements look ok, SS12 will be the validated compiler. Reviewed-by: sspitsyn, ikrylov
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
     1
#
489c9b5090e2 Initial load
duke
parents:
diff changeset
     2
# Copyright 1998-2005 Sun Microsystems, Inc.  All Rights Reserved.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     4
#
489c9b5090e2 Initial load
duke
parents:
diff changeset
     5
# This code is free software; you can redistribute it and/or modify it
489c9b5090e2 Initial load
duke
parents:
diff changeset
     6
# under the terms of the GNU General Public License version 2 only, as
489c9b5090e2 Initial load
duke
parents:
diff changeset
     7
# published by the Free Software Foundation.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     8
#
489c9b5090e2 Initial load
duke
parents:
diff changeset
     9
# This code is distributed in the hope that it will be useful, but WITHOUT
489c9b5090e2 Initial load
duke
parents:
diff changeset
    10
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
489c9b5090e2 Initial load
duke
parents:
diff changeset
    11
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
489c9b5090e2 Initial load
duke
parents:
diff changeset
    12
# version 2 for more details (a copy is included in the LICENSE file that
489c9b5090e2 Initial load
duke
parents:
diff changeset
    13
# accompanied this code).
489c9b5090e2 Initial load
duke
parents:
diff changeset
    14
#
489c9b5090e2 Initial load
duke
parents:
diff changeset
    15
# You should have received a copy of the GNU General Public License version
489c9b5090e2 Initial load
duke
parents:
diff changeset
    16
# 2 along with this work; if not, write to the Free Software Foundation,
489c9b5090e2 Initial load
duke
parents:
diff changeset
    17
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    18
#
489c9b5090e2 Initial load
duke
parents:
diff changeset
    19
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
489c9b5090e2 Initial load
duke
parents:
diff changeset
    20
# CA 95054 USA or visit www.sun.com if you need additional information or
489c9b5090e2 Initial load
duke
parents:
diff changeset
    21
# have any questions.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    22
#  
489c9b5090e2 Initial load
duke
parents:
diff changeset
    23
#
489c9b5090e2 Initial load
duke
parents:
diff changeset
    24
489c9b5090e2 Initial load
duke
parents:
diff changeset
    25
# Sets make macros for making debug version of VM
489c9b5090e2 Initial load
duke
parents:
diff changeset
    26
489c9b5090e2 Initial load
duke
parents:
diff changeset
    27
# Compiler specific DEBUG_CFLAGS are passed in from gcc.make, sparcWorks.make
584
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    28
# They may also specify FASTDEBUG_CFLAGS, but it defaults to DEBUG_CFLAGS.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    29
489c9b5090e2 Initial load
duke
parents:
diff changeset
    30
FASTDEBUG_CFLAGS$(FASTDEBUG_CFLAGS) = $(DEBUG_CFLAGS)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    31
489c9b5090e2 Initial load
duke
parents:
diff changeset
    32
# Compiler specific OPT_CFLAGS are passed in from gcc.make, sparcWorks.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
    33
OPT_CFLAGS/DEFAULT= $(OPT_CFLAGS)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    34
OPT_CFLAGS/BYFILE = $(OPT_CFLAGS/$@)$(OPT_CFLAGS/DEFAULT$(OPT_CFLAGS/$@))
489c9b5090e2 Initial load
duke
parents:
diff changeset
    35
489c9b5090e2 Initial load
duke
parents:
diff changeset
    36
ifeq ("${Platform_compiler}", "sparcWorks")
489c9b5090e2 Initial load
duke
parents:
diff changeset
    37
OPT_CFLAGS/SLOWER = -xO2
584
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    38
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    39
# Problem with SS12 compiler, dtrace doesn't like the .o files  (bug 6693876)
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    40
ifeq ($(COMPILER_REV), 5.9)
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    41
  # Not clear this workaround could be skipped in some cases.
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    42
  OPT_CFLAGS/vmGCOperations.o = $(OPT_CFLAGS/SLOWER)
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    43
  OPT_CFLAGS/java.o = $(OPT_CFLAGS/SLOWER)
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    44
  OPT_CFLAGS/jni.o = $(OPT_CFLAGS/SLOWER)
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    45
endif
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    46
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    47
ifeq ($(COMPILER_REV), 5.5)
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    48
# CC 5.5 has bug 4908364 with -xO4  (Fixed in 5.6)
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    49
OPT_CFLAGS/library_call.o = $(OPT_CFLAGS/SLOWER)
584
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    50
endif # COMPILER_REV == 5.5
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    51
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    52
ifeq ($(shell expr $(COMPILER_REV) \<= 5.4), 1)
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    53
# Compilation of *_<arch>.cpp can take an hour or more at O3.  Use O2
489c9b5090e2 Initial load
duke
parents:
diff changeset
    54
# See comments at top of sparc.make.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    55
OPT_CFLAGS/ad_$(Platform_arch).o = $(OPT_CFLAGS/SLOWER)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    56
OPT_CFLAGS/dfa_$(Platform_arch).o = $(OPT_CFLAGS/SLOWER)
584
02175b2b64e6 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 338
diff changeset
    57
endif # COMPILER_REV <= 5.4
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    58
489c9b5090e2 Initial load
duke
parents:
diff changeset
    59
ifeq (${COMPILER_REV}, 5.0)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    60
# Avoid a compiler bug caused by using -xO<level> -g<level>
489c9b5090e2 Initial load
duke
parents:
diff changeset
    61
# Since the bug also occurs with -xO0, use an innocuous value (must not be null)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    62
OPT_CFLAGS/c1_LIROptimizer_i486.o = -c
489c9b5090e2 Initial load
duke
parents:
diff changeset
    63
endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
    64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    65
ifeq ($(shell expr $(COMPILER_REV) \< 5.5), 1)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    66
# Same problem with Solaris/x86 compiler (both 5.0 and 5.2) on ad_i486.cpp.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    67
# CC build time is also too long for ad_i486_{gen,misc}.o
489c9b5090e2 Initial load
duke
parents:
diff changeset
    68
OPT_CFLAGS/ad_i486.o = -c
489c9b5090e2 Initial load
duke
parents:
diff changeset
    69
OPT_CFLAGS/ad_i486_gen.o = -c
489c9b5090e2 Initial load
duke
parents:
diff changeset
    70
OPT_CFLAGS/ad_i486_misc.o = -c
489c9b5090e2 Initial load
duke
parents:
diff changeset
    71
ifeq ($(Platform_arch), i486)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    72
# Same problem for the wrapper roosts: jni.o jvm.o
489c9b5090e2 Initial load
duke
parents:
diff changeset
    73
OPT_CFLAGS/jni.o = -c
489c9b5090e2 Initial load
duke
parents:
diff changeset
    74
OPT_CFLAGS/jvm.o = -c
489c9b5090e2 Initial load
duke
parents:
diff changeset
    75
# Same problem in parse2.o (probably the Big Switch over bytecodes)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    76
OPT_CFLAGS/parse2.o = -c
489c9b5090e2 Initial load
duke
parents:
diff changeset
    77
endif # Platform_arch == i486
489c9b5090e2 Initial load
duke
parents:
diff changeset
    78
endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
    79
489c9b5090e2 Initial load
duke
parents:
diff changeset
    80
# Frame size > 100k  if we allow inlining via -g0!
489c9b5090e2 Initial load
duke
parents:
diff changeset
    81
DEBUG_CFLAGS/bytecodeInterpreter.o = -g
489c9b5090e2 Initial load
duke
parents:
diff changeset
    82
DEBUG_CFLAGS/bytecodeInterpreterWithChecks.o = -g
489c9b5090e2 Initial load
duke
parents:
diff changeset
    83
ifeq ($(Platform_arch), i486)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    84
# ube explodes on x86
489c9b5090e2 Initial load
duke
parents:
diff changeset
    85
OPT_CFLAGS/bytecodeInterpreter.o = -xO1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    86
OPT_CFLAGS/bytecodeInterpreterWithChecks.o =  -xO1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    87
endif # Platform_arch == i486
489c9b5090e2 Initial load
duke
parents:
diff changeset
    88
489c9b5090e2 Initial load
duke
parents:
diff changeset
    89
endif # Platform_compiler == sparcWorks
489c9b5090e2 Initial load
duke
parents:
diff changeset
    90
489c9b5090e2 Initial load
duke
parents:
diff changeset
    91
# Workaround for a bug in dtrace.  If ciEnv::post_compiled_method_load_event()
489c9b5090e2 Initial load
duke
parents:
diff changeset
    92
# is inlined, the resulting dtrace object file needs a reference to this
489c9b5090e2 Initial load
duke
parents:
diff changeset
    93
# function, whose symbol name is too long for dtrace.  So disable inlining
489c9b5090e2 Initial load
duke
parents:
diff changeset
    94
# for this method for now. (fix this when dtrace bug 6258412 is fixed)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    95
OPT_CFLAGS/ciEnv.o = $(OPT_CFLAGS) -xinline=no%__1cFciEnvbFpost_compiled_method_load_event6MpnHnmethod__v_
489c9b5090e2 Initial load
duke
parents:
diff changeset
    96
489c9b5090e2 Initial load
duke
parents:
diff changeset
    97
489c9b5090e2 Initial load
duke
parents:
diff changeset
    98
# (OPT_CFLAGS/SLOWER is also available, to alter compilation of buggy files)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    99
489c9b5090e2 Initial load
duke
parents:
diff changeset
   100
# If you set HOTSPARC_GENERIC=yes, you disable all OPT_CFLAGS settings
489c9b5090e2 Initial load
duke
parents:
diff changeset
   101
CFLAGS$(HOTSPARC_GENERIC) += $(OPT_CFLAGS/BYFILE)
489c9b5090e2 Initial load
duke
parents:
diff changeset
   102
489c9b5090e2 Initial load
duke
parents:
diff changeset
   103
# Set the environment variable HOTSPARC_GENERIC to "true"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   104
# to inhibit the effect of the previous line on CFLAGS.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   105
489c9b5090e2 Initial load
duke
parents:
diff changeset
   106
# The following lines are copied from debug.make, except that we
489c9b5090e2 Initial load
duke
parents:
diff changeset
   107
# consult FASTDEBUG_CFLAGS instead of DEBUG_CFLAGS.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   108
# Compiler specific DEBUG_CFLAGS are passed in from gcc.make, sparcWorks.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   109
DEBUG_CFLAGS/DEFAULT= $(FASTDEBUG_CFLAGS)
489c9b5090e2 Initial load
duke
parents:
diff changeset
   110
DEBUG_CFLAGS/BYFILE = $(DEBUG_CFLAGS/$@)$(DEBUG_CFLAGS/DEFAULT$(DEBUG_CFLAGS/$@))
489c9b5090e2 Initial load
duke
parents:
diff changeset
   111
CFLAGS += $(DEBUG_CFLAGS/BYFILE)
489c9b5090e2 Initial load
duke
parents:
diff changeset
   112
489c9b5090e2 Initial load
duke
parents:
diff changeset
   113
# Linker mapfiles
338
5cf9f61d76f4 6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents: 1
diff changeset
   114
MAPFILE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers \
5cf9f61d76f4 6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents: 1
diff changeset
   115
	  $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-debug \
5cf9f61d76f4 6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents: 1
diff changeset
   116
	  $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-nonproduct
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   117
489c9b5090e2 Initial load
duke
parents:
diff changeset
   118
# This mapfile is only needed when compiling with dtrace support, 
489c9b5090e2 Initial load
duke
parents:
diff changeset
   119
# and mustn't be otherwise.
338
5cf9f61d76f4 6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents: 1
diff changeset
   120
MAPFILE_DTRACE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-$(TYPE)
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   121
489c9b5090e2 Initial load
duke
parents:
diff changeset
   122
489c9b5090e2 Initial load
duke
parents:
diff changeset
   123
G_SUFFIX =
489c9b5090e2 Initial load
duke
parents:
diff changeset
   124
VERSION = optimized
489c9b5090e2 Initial load
duke
parents:
diff changeset
   125
SYSDEFS += -DASSERT -DFASTDEBUG -DCHECK_UNHANDLED_OOPS
489c9b5090e2 Initial load
duke
parents:
diff changeset
   126
PICFLAGS = DEFAULT