Mercurial > hg > truffle
annotate make/solaris/makefiles/dtrace.make @ 8804:91bf0bdae37b
8008217: CDS: Class data sharing limits the malloc heap on Solaris
Summary: In 64bit VM move CDS archive address to 32G on all platforms using new flag SharedBaseAddress. In 32bit VM set CDS archive address to 3Gb on Linux and let other OSs pick the address.
Reviewed-by: kvn, dcubed, zgu, hseigel
author | coleenp |
---|---|
date | Wed, 20 Mar 2013 08:04:54 -0400 |
parents | 8b46b0196eb0 |
children | c661fa2e5189 |
rev | line source |
---|---|
0 | 1 # |
7951 | 2 # Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. |
0 | 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 # | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1123
diff
changeset
|
19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1123
diff
changeset
|
20 # or visit www.oracle.com if you need additional information or have any |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1123
diff
changeset
|
21 # questions. |
0 | 22 # |
23 # | |
24 | |
25 # Rules to build jvm_db/dtrace, used by vm.make | |
26 | |
1123
167c2986d91b
6843629: Make current hotspot build part of jdk5 control build
phh
parents:
443
diff
changeset
|
27 # We build libjvm_dtrace/libjvm_db/dtrace for COMPILER1 and COMPILER2 |
7951 | 28 # but not for CORE configuration. |
0 | 29 |
30 ifneq ("${TYPE}", "CORE") | |
31 | |
32 ifdef USE_GCC | |
33 | |
34 dtraceCheck: | |
35 $(QUIETLY) echo "**NOTICE** Dtrace support disabled for gcc builds" | |
36 | |
37 else | |
38 | |
39 JVM_DB = libjvm_db | |
1123
167c2986d91b
6843629: Make current hotspot build part of jdk5 control build
phh
parents:
443
diff
changeset
|
40 LIBJVM_DB = libjvm_db.so |
0 | 41 |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
42 LIBJVM_DB_DEBUGINFO = libjvm_db.debuginfo |
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
43 LIBJVM_DB_DIZ = libjvm_db.diz |
3954 | 44 |
0 | 45 JVM_DTRACE = jvm_dtrace |
1123
167c2986d91b
6843629: Make current hotspot build part of jdk5 control build
phh
parents:
443
diff
changeset
|
46 LIBJVM_DTRACE = libjvm_dtrace.so |
0 | 47 |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
48 LIBJVM_DTRACE_DEBUGINFO = libjvm_dtrace.debuginfo |
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
49 LIBJVM_DTRACE_DIZ = libjvm_dtrace.diz |
3954 | 50 |
0 | 51 JVMOFFS = JvmOffsets |
52 JVMOFFS.o = $(JVMOFFS).o | |
53 GENOFFS = generate$(JVMOFFS) | |
54 | |
55 DTRACE_SRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/dtrace | |
56 DTRACE = dtrace | |
57 DTRACE.o = $(DTRACE).o | |
58 | |
59 # to remove '-g' option which causes link problems | |
60 # also '-z nodefs' is used as workaround | |
61 GENOFFS_CFLAGS = $(shell echo $(CFLAGS) | sed -e 's/ -g / /g' -e 's/ -g0 / /g';) | |
62 | |
63 ifdef LP64 | |
64 DTRACE_OPTS = -64 -D_LP64 | |
65 endif | |
66 | |
67 # making libjvm_db | |
68 | |
69 # Use mapfile with libjvm_db.so | |
70 LIBJVM_DB_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jvm_db | |
71 LFLAGS_JVM_DB += $(MAPFLAG:FILENAME=$(LIBJVM_DB_MAPFILE)) | |
72 | |
73 # Use mapfile with libjvm_dtrace.so | |
74 LIBJVM_DTRACE_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jvm_dtrace | |
75 LFLAGS_JVM_DTRACE += $(MAPFLAG:FILENAME=$(LIBJVM_DTRACE_MAPFILE)) | |
76 | |
77 ifdef USE_GCC | |
78 LFLAGS_JVM_DB += -D_REENTRANT $(PICFLAG) | |
79 LFLAGS_JVM_DTRACE += -D_REENTRANT $(PICFLAG) | |
80 else | |
81 LFLAGS_JVM_DB += -mt $(PICFLAG) -xnolib | |
1123
167c2986d91b
6843629: Make current hotspot build part of jdk5 control build
phh
parents:
443
diff
changeset
|
82 LFLAGS_JVM_DTRACE += -mt $(PICFLAG) -xnolib -ldl |
0 | 83 endif |
84 | |
85 ISA = $(subst i386,i486,$(shell isainfo -n)) | |
86 | |
87 # Making 64/libjvm_db.so: 64-bit version of libjvm_db.so which handles 32-bit libjvm.so | |
88 ifneq ("${ISA}","${BUILDARCH}") | |
89 | |
6167
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
90 XLIBJVM_DIR = 64 |
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
91 XLIBJVM_DB = $(XLIBJVM_DIR)/$(LIBJVM_DB) |
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
92 XLIBJVM_DTRACE = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE) |
0 | 93 |
6167
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
94 XLIBJVM_DB_DEBUGINFO = $(XLIBJVM_DIR)/$(LIBJVM_DB_DEBUGINFO) |
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
95 XLIBJVM_DB_DIZ = $(XLIBJVM_DIR)/$(LIBJVM_DB_DIZ) |
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
96 XLIBJVM_DTRACE_DEBUGINFO = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DEBUGINFO) |
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
97 XLIBJVM_DTRACE_DIZ = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DIZ) |
3954 | 98 |
6095
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
99 $(XLIBJVM_DB): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS).h $(LIBJVM_DB_MAPFILE) |
0 | 100 @echo Making $@ |
6167
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
101 $(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \ |
433
c1345e85f901
6767659: Conversion from i486 to x86 missed some entries in makefiles
kvn
parents:
196
diff
changeset
|
102 $(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. -I$(GENERATED) \ |
0 | 103 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
104 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
6095
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
105 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. |
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
106 # Clear the SHF_ALLOC flag (if set) from empty section headers. |
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
107 # An empty section header has sh_addr == 0 and sh_size == 0. |
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
108 # This problem has only been seen on Solaris X64, but we call this tool |
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
109 # on all Solaris builds just in case. |
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
110 $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@ |
3954 | 111 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DB_DEBUGINFO) |
6095
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
112 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. |
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
113 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. |
6167
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
114 # $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB) ; |
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
115 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not |
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
116 # in the link name: |
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
117 ( cd $(XLIBJVM_DIR) && $(ADD_GNU_DEBUGLINK) $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB) ) |
3954 | 118 ifeq ($(STRIP_POLICY),all_strip) |
119 $(QUIETLY) $(STRIP) $@ | |
120 else | |
121 ifeq ($(STRIP_POLICY),min_strip) | |
122 $(QUIETLY) $(STRIP) -x $@ | |
123 # implied else here is no stripping at all | |
124 endif | |
125 endif | |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
126 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
6167
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
127 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not |
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
128 # in the archived name: |
7408
892acf0431ef
7153050: remove crufty '_g' support from HotSpot repo makefiles
dcubed
parents:
6845
diff
changeset
|
129 ( cd $(XLIBJVM_DIR) && $(ZIPEXE) -q -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO) ) |
892acf0431ef
7153050: remove crufty '_g' support from HotSpot repo makefiles
dcubed
parents:
6845
diff
changeset
|
130 $(RM) $(XLIBJVM_DB_DEBUGINFO) |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
131 endif |
3954 | 132 endif |
1123
167c2986d91b
6843629: Make current hotspot build part of jdk5 control build
phh
parents:
443
diff
changeset
|
133 |
6095
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
134 $(XLIBJVM_DTRACE): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE) |
0 | 135 @echo Making $@ |
6167
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
136 $(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \ |
433
c1345e85f901
6767659: Conversion from i486 to x86 missed some entries in makefiles
kvn
parents:
196
diff
changeset
|
137 $(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. \ |
0 | 138 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
139 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
6095
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
140 # Clear the SHF_ALLOC flag (if set) from empty section headers. |
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
141 $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@ |
3954 | 142 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DTRACE_DEBUGINFO) |
6095
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
143 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. |
6167
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
144 # $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE) ; |
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
145 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not |
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
146 # in the link name: |
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
147 ( cd $(XLIBJVM_DIR) && $(ADD_GNU_DEBUGLINK) $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE) ) |
3954 | 148 ifeq ($(STRIP_POLICY),all_strip) |
149 $(QUIETLY) $(STRIP) $@ | |
150 else | |
151 ifeq ($(STRIP_POLICY),min_strip) | |
152 $(QUIETLY) $(STRIP) -x $@ | |
153 # implied else here is no stripping at all | |
154 endif | |
155 endif | |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
156 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
6167
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
157 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not |
d1b0644d6acf
7175255: symlinks are wrong, which caused jdk8-promote-2 to fail (client/64/64 directories in debuginfo zips)
dcubed
parents:
6095
diff
changeset
|
158 # in the archived name: |
7408
892acf0431ef
7153050: remove crufty '_g' support from HotSpot repo makefiles
dcubed
parents:
6845
diff
changeset
|
159 ( cd $(XLIBJVM_DIR) && $(ZIPEXE) -q -y $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_DEBUGINFO)) |
892acf0431ef
7153050: remove crufty '_g' support from HotSpot repo makefiles
dcubed
parents:
6845
diff
changeset
|
160 $(RM) $(XLIBJVM_DTRACE_DEBUGINFO) |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
161 endif |
3954 | 162 endif |
1123
167c2986d91b
6843629: Make current hotspot build part of jdk5 control build
phh
parents:
443
diff
changeset
|
163 |
0 | 164 endif # ifneq ("${ISA}","${BUILDARCH}") |
165 | |
166 ifdef USE_GCC | |
167 LFLAGS_GENOFFS += -D_REENTRANT | |
168 else | |
169 LFLAGS_GENOFFS += -mt -xnolib -norunpath | |
170 endif | |
171 | |
172 lib$(GENOFFS).so: $(DTRACE_SRCDIR)/$(GENOFFS).cpp $(DTRACE_SRCDIR)/$(GENOFFS).h \ | |
1972 | 173 $(LIBJVM.o) |
4891
719f7007c8e8
7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents:
3954
diff
changeset
|
174 $(QUIETLY) $(CXX) $(CXXFLAGS) $(GENOFFS_CFLAGS) $(SHARED_FLAG) $(PICFLAG) \ |
0 | 175 $(LFLAGS_GENOFFS) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS).cpp -lc |
176 | |
177 $(GENOFFS): $(DTRACE_SRCDIR)/$(GENOFFS)Main.c lib$(GENOFFS).so | |
4891
719f7007c8e8
7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents:
3954
diff
changeset
|
178 $(QUIETLY) $(LINK.CXX) -z nodefs -o $@ $(DTRACE_SRCDIR)/$(GENOFFS)Main.c \ |
0 | 179 ./lib$(GENOFFS).so |
180 | |
440
96c6da8f095c
6769128: failure to run generateJvmOffsets is ignored
jcoomes
parents:
196
diff
changeset
|
181 CONDITIONALLY_UPDATE_JVMOFFS_TARGET = \ |
96c6da8f095c
6769128: failure to run generateJvmOffsets is ignored
jcoomes
parents:
196
diff
changeset
|
182 cmp -s $@ $@.tmp; \ |
96c6da8f095c
6769128: failure to run generateJvmOffsets is ignored
jcoomes
parents:
196
diff
changeset
|
183 case $$? in \ |
96c6da8f095c
6769128: failure to run generateJvmOffsets is ignored
jcoomes
parents:
196
diff
changeset
|
184 0) rm -f $@.tmp;; \ |
96c6da8f095c
6769128: failure to run generateJvmOffsets is ignored
jcoomes
parents:
196
diff
changeset
|
185 *) rm -f $@ && mv $@.tmp $@ && echo Updated $@;; \ |
96c6da8f095c
6769128: failure to run generateJvmOffsets is ignored
jcoomes
parents:
196
diff
changeset
|
186 esac |
96c6da8f095c
6769128: failure to run generateJvmOffsets is ignored
jcoomes
parents:
196
diff
changeset
|
187 |
96c6da8f095c
6769128: failure to run generateJvmOffsets is ignored
jcoomes
parents:
196
diff
changeset
|
188 # $@.tmp is created first to avoid an empty $(JVMOFFS).h if an error occurs. |
0 | 189 $(JVMOFFS).h: $(GENOFFS) |
6845
9024b6b53ec2
8000485: Hotspot build fails in Solaris Studio IDE when building dtrace
vlivanov
parents:
6190
diff
changeset
|
190 $(QUIETLY) LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ./$(GENOFFS) -header > $@.tmp |
440
96c6da8f095c
6769128: failure to run generateJvmOffsets is ignored
jcoomes
parents:
196
diff
changeset
|
191 $(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET) |
0 | 192 |
193 $(JVMOFFS)Index.h: $(GENOFFS) | |
6845
9024b6b53ec2
8000485: Hotspot build fails in Solaris Studio IDE when building dtrace
vlivanov
parents:
6190
diff
changeset
|
194 $(QUIETLY) LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ./$(GENOFFS) -index > $@.tmp |
440
96c6da8f095c
6769128: failure to run generateJvmOffsets is ignored
jcoomes
parents:
196
diff
changeset
|
195 $(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET) |
0 | 196 |
197 $(JVMOFFS).cpp: $(GENOFFS) $(JVMOFFS).h $(JVMOFFS)Index.h | |
6845
9024b6b53ec2
8000485: Hotspot build fails in Solaris Studio IDE when building dtrace
vlivanov
parents:
6190
diff
changeset
|
198 $(QUIETLY) LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ./$(GENOFFS) -table > $@.tmp |
440
96c6da8f095c
6769128: failure to run generateJvmOffsets is ignored
jcoomes
parents:
196
diff
changeset
|
199 $(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET) |
0 | 200 |
201 $(JVMOFFS.o): $(JVMOFFS).h $(JVMOFFS).cpp | |
4891
719f7007c8e8
7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents:
3954
diff
changeset
|
202 $(QUIETLY) $(CXX) -c -I. -o $@ $(ARCHFLAG) -D$(TYPE) $(JVMOFFS).cpp |
0 | 203 |
6095
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
204 $(LIBJVM_DB): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS.o) $(XLIBJVM_DB) $(LIBJVM_DB_MAPFILE) |
0 | 205 @echo Making $@ |
206 $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. -I$(GENERATED) \ | |
207 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc | |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
208 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
6095
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
209 # Clear the SHF_ALLOC flag (if set) from empty section headers. |
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
210 $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@ |
3954 | 211 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DB_DEBUGINFO) |
6095
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
212 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. |
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
213 # $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $@ |
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
214 $(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DB_DEBUGINFO) $@ |
3954 | 215 ifeq ($(STRIP_POLICY),all_strip) |
216 $(QUIETLY) $(STRIP) $@ | |
217 else | |
218 ifeq ($(STRIP_POLICY),min_strip) | |
219 $(QUIETLY) $(STRIP) -x $@ | |
220 # implied else here is no stripping at all | |
221 endif | |
222 endif | |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
223 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
7408
892acf0431ef
7153050: remove crufty '_g' support from HotSpot repo makefiles
dcubed
parents:
6845
diff
changeset
|
224 $(ZIPEXE) -q -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO) |
892acf0431ef
7153050: remove crufty '_g' support from HotSpot repo makefiles
dcubed
parents:
6845
diff
changeset
|
225 $(RM) $(LIBJVM_DB_DEBUGINFO) |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
226 endif |
3954 | 227 endif |
0 | 228 |
6095
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
229 $(LIBJVM_DTRACE): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(XLIBJVM_DTRACE) $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE) |
0 | 230 @echo Making $@ |
231 $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. \ | |
232 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor | |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
233 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
6095
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
234 # Clear the SHF_ALLOC flag (if set) from empty section headers. |
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
235 $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@ |
3954 | 236 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DTRACE_DEBUGINFO) |
6095
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
237 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. |
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
238 # $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $@ |
9c1709c4c80c
7165598: enable FDS on Solaris X64 when 7165593 is fixed
dcubed
parents:
6020
diff
changeset
|
239 $(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DTRACE_DEBUGINFO) $@ |
3954 | 240 ifeq ($(STRIP_POLICY),all_strip) |
241 $(QUIETLY) $(STRIP) $@ | |
242 else | |
243 ifeq ($(STRIP_POLICY),min_strip) | |
244 $(QUIETLY) $(STRIP) -x $@ | |
245 # implied else here is no stripping at all | |
246 endif | |
247 endif | |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
248 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
7408
892acf0431ef
7153050: remove crufty '_g' support from HotSpot repo makefiles
dcubed
parents:
6845
diff
changeset
|
249 $(ZIPEXE) -q -y $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_DEBUGINFO) |
892acf0431ef
7153050: remove crufty '_g' support from HotSpot repo makefiles
dcubed
parents:
6845
diff
changeset
|
250 $(RM) $(LIBJVM_DTRACE_DEBUGINFO) |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
4891
diff
changeset
|
251 endif |
3954 | 252 endif |
0 | 253 |
254 $(DTRACE).d: $(DTRACE_SRCDIR)/hotspot.d $(DTRACE_SRCDIR)/hotspot_jni.d \ | |
255 $(DTRACE_SRCDIR)/hs_private.d $(DTRACE_SRCDIR)/jhelper.d | |
256 $(QUIETLY) cat $^ > $@ | |
257 | |
1972 | 258 DTraced_Files = ciEnv.o \ |
259 classLoadingService.o \ | |
260 compileBroker.o \ | |
261 hashtable.o \ | |
262 instanceKlass.o \ | |
263 java.o \ | |
264 jni.o \ | |
265 jvm.o \ | |
266 memoryManager.o \ | |
267 nmethod.o \ | |
268 objectMonitor.o \ | |
269 runtimeService.o \ | |
270 sharedRuntime.o \ | |
271 synchronizer.o \ | |
272 thread.o \ | |
273 unsafe.o \ | |
274 vmThread.o \ | |
275 vmCMSOperations.o \ | |
276 vmPSOperations.o \ | |
277 vmGCOperations.o \ | |
278 | |
0 | 279 # Dtrace is available, so we build $(DTRACE.o) |
280 $(DTRACE.o): $(DTRACE).d $(JVMOFFS).h $(JVMOFFS)Index.h $(DTraced_Files) | |
281 @echo Compiling $(DTRACE).d | |
282 | |
1799
4094f07967ca
6974813: JVM needs to use demand loading for its DTrace probes
kamg
parents:
1552
diff
changeset
|
283 $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -G -xlazyload -o $@ -s $(DTRACE).d \ |
0 | 284 $(DTraced_Files) ||\ |
285 STATUS=$$?;\ | |
286 if [ x"$$STATUS" = x"1" -a \ | |
287 x`uname -r` = x"5.10" -a \ | |
288 x`uname -p` = x"sparc" ]; then\ | |
289 echo "*****************************************************************";\ | |
290 echo "* If you are building server compiler, and the error message is ";\ | |
291 echo "* \"incorrect ELF machine type...\", you have run into solaris bug ";\ | |
292 echo "* 6213962, \"dtrace -G doesn't work on sparcv8+ object files\".";\ | |
293 echo "* Either patch/upgrade your system (>= S10u1_15), or set the ";\ | |
294 echo "* environment variable HOTSPOT_DISABLE_DTRACE_PROBES to disable ";\ | |
295 echo "* dtrace probes for this build.";\ | |
296 echo "*****************************************************************";\ | |
297 fi;\ | |
298 exit $$STATUS | |
299 # Since some DTraced_Files are in LIBJVM.o and they are touched by this | |
300 # command, and libgenerateJvmOffsets.so depends on LIBJVM.o, 'make' will | |
301 # think it needs to rebuild libgenerateJvmOffsets.so and thus JvmOffsets* | |
302 # files, but it doesn't, so we touch the necessary files to prevent later | |
303 # recompilation. Note: we only touch the necessary files if they already | |
304 # exist in order to close a race where an empty file can be created | |
305 # before the real build rule is executed. | |
306 # But, we can't touch the *.h files: This rule depends | |
307 # on them, and that would cause an infinite cycle of rebuilding. | |
308 # Neither the *.h or *.ccp files need to be touched, since they have | |
309 # rules which do not update them when the generator file has not | |
310 # changed their contents. | |
311 $(QUIETLY) if [ -f lib$(GENOFFS).so ]; then touch lib$(GENOFFS).so; fi | |
312 $(QUIETLY) if [ -f $(GENOFFS) ]; then touch $(GENOFFS); fi | |
313 $(QUIETLY) if [ -f $(JVMOFFS.o) ]; then touch $(JVMOFFS.o); fi | |
314 | |
315 .PHONY: dtraceCheck | |
316 | |
116
018d5b58dd4f
6537506: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
91
diff
changeset
|
317 SYSTEM_DTRACE_H = /usr/include/dtrace.h |
0 | 318 SYSTEM_DTRACE_PROG = /usr/sbin/dtrace |
319 PATCH_DTRACE_PROG = /opt/SUNWdtrd/sbin/dtrace | |
320 systemDtraceFound := $(wildcard ${SYSTEM_DTRACE_PROG}) | |
321 patchDtraceFound := $(wildcard ${PATCH_DTRACE_PROG}) | |
116
018d5b58dd4f
6537506: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
91
diff
changeset
|
322 systemDtraceHdrFound := $(wildcard $(SYSTEM_DTRACE_H)) |
018d5b58dd4f
6537506: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
91
diff
changeset
|
323 |
018d5b58dd4f
6537506: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
91
diff
changeset
|
324 ifneq ("$(systemDtraceHdrFound)", "") |
018d5b58dd4f
6537506: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
91
diff
changeset
|
325 CFLAGS += -DHAVE_DTRACE_H |
018d5b58dd4f
6537506: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
91
diff
changeset
|
326 endif |
0 | 327 |
328 ifneq ("$(patchDtraceFound)", "") | |
329 DTRACE_PROG=$(PATCH_DTRACE_PROG) | |
330 DTRACE_INCL=-I/opt/SUNWdtrd/include | |
331 else | |
332 ifneq ("$(systemDtraceFound)", "") | |
333 DTRACE_PROG=$(SYSTEM_DTRACE_PROG) | |
334 else | |
335 | |
336 endif # ifneq ("$(systemDtraceFound)", "") | |
337 endif # ifneq ("$(patchDtraceFound)", "") | |
338 | |
339 ifneq ("${DTRACE_PROG}", "") | |
340 ifeq ("${HOTSPOT_DISABLE_DTRACE_PROBES}", "") | |
341 | |
342 DTRACE_OBJS = $(DTRACE.o) $(JVMOFFS.o) | |
343 CFLAGS += $(DTRACE_INCL) -DDTRACE_ENABLED | |
344 MAPFILE_DTRACE_OPT = $(MAPFILE_DTRACE) | |
345 | |
346 dtraceCheck: | |
347 | |
348 else # manually disabled | |
349 | |
350 dtraceCheck: | |
351 $(QUIETLY) echo "**NOTICE** Dtrace support disabled via environment variable" | |
352 | |
353 endif # ifeq ("${HOTSPOT_DISABLE_DTRACE_PROBES}", "") | |
354 | |
355 else # No dtrace program found | |
356 | |
357 dtraceCheck: | |
358 $(QUIETLY) echo "**NOTICE** Dtrace support disabled: not supported by system" | |
359 | |
360 endif # ifneq ("${dtraceFound}", "") | |
361 | |
362 endif # ifdef USE_GCC | |
363 | |
364 else # CORE build | |
365 | |
366 dtraceCheck: | |
367 $(QUIETLY) echo "**NOTICE** Dtrace support disabled for CORE builds" | |
368 | |
369 endif # ifneq ("${TYPE}", "CORE") |