make/solaris/makefiles/rules.make

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

author
fzhinkin
date
Mon, 28 Jul 2014 15:06:38 -0700
changeset 6997
dbb05f6d93c4
parent 4153
b9a9ed0f8eeb
child 6876
710a3c8b516e
child 9858
b985cbb00e68
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

duke@435 1 #
mikael@4153 2 # Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
duke@435 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@435 4 #
duke@435 5 # This code is free software; you can redistribute it and/or modify it
duke@435 6 # under the terms of the GNU General Public License version 2 only, as
duke@435 7 # published by the Free Software Foundation.
duke@435 8 #
duke@435 9 # This code is distributed in the hope that it will be useful, but WITHOUT
duke@435 10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@435 11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@435 12 # version 2 for more details (a copy is included in the LICENSE file that
duke@435 13 # accompanied this code).
duke@435 14 #
duke@435 15 # You should have received a copy of the GNU General Public License version
duke@435 16 # 2 along with this work; if not, write to the Free Software Foundation,
duke@435 17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@435 18 #
trims@1907 19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
trims@1907 20 # or visit www.oracle.com if you need additional information or have any
trims@1907 21 # questions.
duke@435 22 #
duke@435 23 #
duke@435 24
duke@435 25 # Common rules/macros for the vm, adlc.
duke@435 26
duke@435 27 # Tell make that .cpp is important
duke@435 28 .SUFFIXES: .cpp $(SUFFIXES)
duke@435 29
duke@435 30 DEMANGLER = c++filt
duke@435 31 DEMANGLE = $(DEMANGLER) < $@ > .$@ && mv -f .$@ $@
duke@435 32
erikj@3518 33 # $(CC) is the c compiler (cc/gcc), $(CXX) is the c++ compiler (CC/g++).
erikj@3518 34 CC_COMPILE = $(CC) $(CXXFLAGS) $(CFLAGS)
erikj@3518 35 CXX_COMPILE = $(CXX) $(CXXFLAGS) $(CFLAGS)
duke@435 36
duke@435 37 AS.S = $(AS) $(ASFLAGS)
duke@435 38
erikj@3518 39 COMPILE.CC = $(CC_COMPILE) -c
erikj@3518 40 GENASM.CC = $(CC_COMPILE) -S
erikj@3518 41 LINK.CC = $(CC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
erikj@3518 42 LINK_LIB.CC = $(CC) $(LFLAGS) $(SHARED_FLAG)
erikj@3518 43 PREPROCESS.CC = $(CC_COMPILE) -E
duke@435 44
erikj@3518 45 COMPILE.CXX = $(CXX_COMPILE) -c
erikj@3518 46 GENASM.CXX = $(CXX_COMPILE) -S
erikj@3518 47 LINK.CXX = $(CXX) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
erikj@3518 48 LINK_NOPROF.CXX = $(CXX) $(LFLAGS) $(AOUT_FLAGS)
erikj@3518 49 LINK_LIB.CXX = $(CXX) $(LFLAGS) $(SHARED_FLAG)
erikj@3518 50 PREPROCESS.CXX = $(CXX_COMPILE) -E
duke@435 51
duke@435 52 # Effect of REMOVE_TARGET is to delete out-of-date files during "gnumake -k".
duke@435 53 REMOVE_TARGET = rm -f $@
duke@435 54
duke@435 55 # Note use of ALT_BOOTDIR to explicitly specify location of java and
duke@435 56 # javac; this is the same environment variable used in the J2SE build
duke@435 57 # process for overriding the default spec, which is BOOTDIR.
duke@435 58 # Note also that we fall back to using JAVA_HOME if neither of these is
duke@435 59 # specified.
duke@435 60
duke@435 61 ifdef ALT_BOOTDIR
duke@435 62
duke@435 63 RUN.JAVA = $(ALT_BOOTDIR)/bin/java
duke@435 64 RUN.JAVAP = $(ALT_BOOTDIR)/bin/javap
duke@435 65 RUN.JAVAH = $(ALT_BOOTDIR)/bin/javah
duke@435 66 RUN.JAR = $(ALT_BOOTDIR)/bin/jar
duke@435 67 COMPILE.JAVAC = $(ALT_BOOTDIR)/bin/javac
duke@435 68 COMPILE.RMIC = $(ALT_BOOTDIR)/bin/rmic
duke@435 69 BOOT_JAVA_HOME = $(ALT_BOOTDIR)
duke@435 70
duke@435 71 else
duke@435 72
duke@435 73 ifdef BOOTDIR
duke@435 74
duke@435 75 RUN.JAVA = $(BOOTDIR)/bin/java
duke@435 76 RUN.JAVAP = $(BOOTDIR)/bin/javap
duke@435 77 RUN.JAVAH = $(BOOTDIR)/bin/javah
duke@435 78 RUN.JAR = $(BOOTDIR)/bin/jar
duke@435 79 COMPILE.JAVAC = $(BOOTDIR)/bin/javac
duke@435 80 COMPILE.RMIC = $(BOOTDIR)/bin/rmic
duke@435 81 BOOT_JAVA_HOME = $(BOOTDIR)
duke@435 82
duke@435 83 else
duke@435 84
duke@435 85 ifdef JAVA_HOME
duke@435 86
duke@435 87 RUN.JAVA = $(JAVA_HOME)/bin/java
duke@435 88 RUN.JAVAP = $(JAVA_HOME)/bin/javap
duke@435 89 RUN.JAVAH = $(JAVA_HOME)/bin/javah
duke@435 90 RUN.JAR = $(JAVA_HOME)/bin/jar
duke@435 91 COMPILE.JAVAC = $(JAVA_HOME)/bin/javac
duke@435 92 COMPILE.RMIC = $(JAVA_HOME)/bin/rmic
duke@435 93 BOOT_JAVA_HOME = $(JAVA_HOME)
duke@435 94
duke@435 95 else
duke@435 96
duke@435 97 # take from the PATH, if ALT_BOOTDIR, BOOTDIR and JAVA_HOME are not defined
duke@435 98 # note that this is to support hotspot build without SA. To build
duke@435 99 # SA along with hotspot, you need to define ALT_BOOTDIR, BOOTDIR or JAVA_HOME
duke@435 100
duke@435 101 RUN.JAVA = java
duke@435 102 RUN.JAVAP = javap
duke@435 103 RUN.JAVAH = javah
duke@435 104 RUN.JAR = jar
duke@435 105 COMPILE.JAVAC = javac
duke@435 106 COMPILE.RMIC = rmic
duke@435 107
duke@435 108 endif
duke@435 109 endif
duke@435 110 endif
duke@435 111
andrew@1406 112 COMPILE.JAVAC += $(BOOTSTRAP_JAVAC_FLAGS)
andrew@1406 113
duke@435 114 SUM = /usr/bin/sum
duke@435 115
duke@435 116 # 'gmake MAKE_VERBOSE=y' gives all the gory details.
duke@435 117 QUIETLY$(MAKE_VERBOSE) = @
duke@435 118 RUN.JAR$(MAKE_VERBOSE) += >/dev/null
duke@435 119
andrew@1406 120 # Settings for javac
andrew@1406 121 BOOT_SOURCE_LANGUAGE_VERSION = 6
andrew@1406 122 BOOT_TARGET_CLASS_VERSION = 6
andrew@1406 123 JAVAC_FLAGS = -g -encoding ascii
andrew@1406 124 BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
andrew@1406 125
duke@435 126 # With parallel makes, print a message at the end of compilation.
duke@435 127 ifeq ($(findstring j,$(MFLAGS)),j)
duke@435 128 COMPILE_DONE = && { echo Done with $<; }
duke@435 129 endif
duke@435 130
xlu@663 131 # Include NONPIC_OBJ_FILES definition
xlu@663 132 ifndef LP64
xlu@663 133 include $(GAMMADIR)/make/pic.make
xlu@663 134 endif
duke@435 135
kamg@2515 136 include $(GAMMADIR)/make/altsrc.make
kamg@2515 137
duke@435 138 # Sun compiler for 64 bit Solaris does not support building non-PIC object files.
duke@435 139 ifdef LP64
duke@435 140 %.o: %.cpp
duke@435 141 @echo Compiling $<
duke@435 142 $(QUIETLY) $(REMOVE_TARGET)
erikj@3518 143 $(QUIETLY) $(COMPILE.CXX) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
duke@435 144 else
duke@435 145 %.o: %.cpp
duke@435 146 @echo Compiling $<
duke@435 147 $(QUIETLY) $(REMOVE_TARGET)
duke@435 148 $(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
erikj@3518 149 $(subst $(VM_PICFLAG), ,$(COMPILE.CXX)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
erikj@3518 150 $(COMPILE.CXX) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
duke@435 151 endif
duke@435 152
duke@435 153 %.o: %.s
duke@435 154 @echo Assembling $<
duke@435 155 $(QUIETLY) $(REMOVE_TARGET)
duke@435 156 $(QUIETLY) $(AS.S) -o $@ $< $(COMPILE_DONE)
duke@435 157
duke@435 158 %.s: %.cpp
duke@435 159 @echo Generating assembly for $<
erikj@3518 160 $(QUIETLY) $(GENASM.CXX) -o $@ $<
duke@435 161 $(QUIETLY) $(DEMANGLE) $(COMPILE_DONE)
duke@435 162
duke@435 163 # Intermediate files (for debugging macros)
duke@435 164 %.i: %.cpp
duke@435 165 @echo Preprocessing $< to $@
erikj@3518 166 $(QUIETLY) $(PREPROCESS.CXX) $< > $@ $(COMPILE_DONE)
duke@435 167
duke@435 168 # Override gnumake built-in rules which do sccs get operations badly.
duke@435 169 # (They put the checked out code in the current directory, not in the
duke@435 170 # directory of the original file.) Since this is a symptom of a teamware
duke@435 171 # failure, and since not all problems can be detected by gnumake due
duke@435 172 # to incomplete dependency checking... just complain and stop.
duke@435 173 %:: s.%
duke@435 174 @echo "========================================================="
duke@435 175 @echo File $@
duke@435 176 @echo is out of date with respect to its SCCS file.
duke@435 177 @echo This file may be from an unresolved Teamware conflict.
duke@435 178 @echo This is also a symptom of a Teamware bringover/putback failure
duke@435 179 @echo in which SCCS files are updated but not checked out.
duke@435 180 @echo Check for other out of date files in your workspace.
duke@435 181 @echo "========================================================="
duke@435 182 @exit 666
duke@435 183
duke@435 184 %:: SCCS/s.%
duke@435 185 @echo "========================================================="
duke@435 186 @echo File $@
duke@435 187 @echo is out of date with respect to its SCCS file.
duke@435 188 @echo This file may be from an unresolved Teamware conflict.
duke@435 189 @echo This is also a symptom of a Teamware bringover/putback failure
duke@435 190 @echo in which SCCS files are updated but not checked out.
duke@435 191 @echo Check for other out of date files in your workspace.
duke@435 192 @echo "========================================================="
duke@435 193 @exit 666
duke@435 194
duke@435 195 .PHONY: default

mercurial