Mon, 06 Feb 2012 09:14:22 +0100
7141242: build-infra merge: Rename CPP->CXX and LINK->LD
Summary: Cleaned up make variables for compilers and linker to consistently use CXX for C++ compiler, CC for C compiler and LD for linker.
Reviewed-by: dholmes, ohrstrom
1 #
2 # Copyright (c) 2006, 2011, 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 # determine if HotSpot is being built in JDK6 or earlier version
63 JDK6_OR_EARLIER=0
64 ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
65 # if the longer variable names (newer build style) are set, then check those
66 ifeq "$(shell expr \( $(JDK_MAJOR_VERSION) = 1 \& $(JDK_MINOR_VERSION) \< 7 \))" "1"
67 JDK6_OR_EARLIER=1
68 endif
69 else
70 # the longer variables aren't set so check the shorter variable names
71 ifeq "$(shell expr \( '$(JDK_MAJOR_VER)' = 1 \& '$(JDK_MINOR_VER)' \< 7 \))" "1"
72 JDK6_OR_EARLIER=1
73 endif
74 endif
76 ifeq ($(JDK6_OR_EARLIER),0)
77 # Full Debug Symbols is supported on JDK7 or newer
79 ifdef ENABLE_FULL_DEBUG_SYMBOLS
80 # Only check for Full Debug Symbols support on Solaris if it is
81 # specifically enabled. Hopefully, it can be enabled by default
82 # once the .debuginfo size issues are worked out.
84 # Default OBJCOPY comes from the SUNWbinutils package:
85 DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
86 ifeq ($(VM_PLATFORM),solaris_amd64)
87 # On Solaris AMD64/X64, gobjcopy is not happy and fails:
88 #
89 # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so
90 # BFD: stKPaiop: Not enough room for program headers, try linking with -N
91 # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
92 # BFD: stKPaiop: Not enough room for program headers, try linking with -N
93 # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
94 # BFD: stKPaiop: Not enough room for program headers, try linking with -N
95 # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
96 _JUNK_ := $(shell \
97 echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64")
98 OBJCOPY=
99 else
100 OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
101 ifneq ($(ALT_OBJCOPY),)
102 _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
103 # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
104 OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
105 endif
106 endif
107 endif
109 ifeq ($(OBJCOPY),)
110 _JUNK_ := $(shell \
111 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
112 else
113 _JUNK_ := $(shell \
114 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
116 # Library stripping policies for .debuginfo configs:
117 # all_strip - strips everything from the library
118 # min_strip - strips most stuff from the library; leaves minimum symbols
119 # no_strip - does not strip the library at all
120 #
121 # Oracle security policy requires "all_strip". A waiver was granted on
122 # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
123 #
124 DEF_STRIP_POLICY="min_strip"
125 ifeq ($(ALT_STRIP_POLICY),)
126 STRIP_POLICY=$(DEF_STRIP_POLICY)
127 else
128 STRIP_POLICY=$(ALT_STRIP_POLICY)
129 endif
130 _JUNK_ := $(shell \
131 echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
132 endif
133 endif
135 JDK_INCLUDE_SUBDIR=solaris
137 # Library suffix
138 LIBRARY_SUFFIX=so
140 # FIXUP: The subdirectory for a debug build is NOT the same on all platforms
141 VM_DEBUG=jvmg
143 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
145 # client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX)
146 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
147 ifneq ($(OBJCOPY),)
148 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
149 endif
151 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
152 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
154 ifneq ($(BUILD_CLIENT_ONLY),true)
155 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
156 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
157 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
158 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
159 ifneq ($(OBJCOPY),)
160 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
161 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo
162 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo
163 endif
164 endif
165 ifeq ($(ARCH_DATA_MODEL), 32)
166 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
167 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
168 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
169 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
170 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
171 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
172 ifneq ($(OBJCOPY),)
173 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
174 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo
175 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo
176 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo
177 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo
178 endif
179 ifneq ($(BUILD_CLIENT_ONLY), true)
180 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
181 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
182 ifneq ($(OBJCOPY),)
183 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.debuginfo
184 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.debuginfo
185 endif
186 endif
187 endif
189 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX)
190 ifneq ($(OBJCOPY),)
191 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
192 endif
193 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar