Fri, 06 Sep 2013 20:08:29 +0200
8023034: PPC64 (part 14): Implement AIX/PPC64 support in HotSpot makefiles
Reviewed-by: kvn
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/make/aix/Makefile Fri Sep 06 20:08:29 2013 +0200 1.3 @@ -0,0 +1,377 @@ 1.4 +# 1.5 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 1.6 +# Copyright 2012, 2013 SAP AG. All rights reserved. 1.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 +# 1.9 +# This code is free software; you can redistribute it and/or modify it 1.10 +# under the terms of the GNU General Public License version 2 only, as 1.11 +# published by the Free Software Foundation. 1.12 +# 1.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 1.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1.16 +# version 2 for more details (a copy is included in the LICENSE file that 1.17 +# accompanied this code). 1.18 +# 1.19 +# You should have received a copy of the GNU General Public License version 1.20 +# 2 along with this work; if not, write to the Free Software Foundation, 1.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 1.22 +# 1.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 1.24 +# or visit www.oracle.com if you need additional information or have any 1.25 +# questions. 1.26 +# 1.27 +# 1.28 + 1.29 +# This makefile creates a build tree and lights off a build. 1.30 +# You can go back into the build tree and perform rebuilds or 1.31 +# incremental builds as desired. Be sure to reestablish 1.32 +# environment variable settings for LD_LIBRARY_PATH and JAVA_HOME. 1.33 + 1.34 +# The make process now relies on java and javac. These can be 1.35 +# specified either implicitly on the PATH, by setting the 1.36 +# (JDK-inherited) ALT_BOOTDIR environment variable to full path to a 1.37 +# JDK in which bin/java and bin/javac are present and working (e.g., 1.38 +# /usr/local/java/jdk1.3/solaris), or via the (JDK-inherited) 1.39 +# default BOOTDIR path value. Note that one of ALT_BOOTDIR 1.40 +# or BOOTDIR has to be set. We do *not* search javac, javah, rmic etc. 1.41 +# from the PATH. 1.42 +# 1.43 +# One can set ALT_BOOTDIR or BOOTDIR to point to a jdk that runs on 1.44 +# an architecture that differs from the target architecture, as long 1.45 +# as the bootstrap jdk runs under the same flavor of OS as the target 1.46 +# (i.e., if the target is linux, point to a jdk that runs on a linux 1.47 +# box). In order to use such a bootstrap jdk, set the make variable 1.48 +# REMOTE to the desired remote command mechanism, e.g., 1.49 +# 1.50 +# make REMOTE="rsh -l me myotherlinuxbox" 1.51 + 1.52 +# Along with VM, Serviceability Agent (SA) is built for SA/JDI binding. 1.53 +# JDI binding on SA produces two binaries: 1.54 +# 1. sa-jdi.jar - This is built before building libjvm.so 1.55 +# Please refer to ./makefiles/sa.make 1.56 +# 2. libsa.so - Native library for SA - This is built after 1.57 +# libjsig.so (signal interposition library) 1.58 +# Please refer to ./makefiles/vm.make 1.59 +# If $(GAMMADIR)/agent dir is not present, SA components are not built. 1.60 + 1.61 +# No tests on Aix. 1.62 +TEST_IN_BUILD=false 1.63 + 1.64 +ifeq ($(GAMMADIR),) 1.65 +include ../../make/defs.make 1.66 +else 1.67 +include $(GAMMADIR)/make/defs.make 1.68 +endif 1.69 +include $(GAMMADIR)/make/$(OSNAME)/makefiles/rules.make 1.70 + 1.71 +ifndef CC_INTERP 1.72 + ifndef FORCE_TIERED 1.73 + FORCE_TIERED=1 1.74 + endif 1.75 +endif 1.76 + 1.77 +ifdef LP64 1.78 + ifeq ("$(filter $(LP64_ARCH),$(BUILDARCH))","") 1.79 + _JUNK_ := $(shell echo >&2 \ 1.80 + $(OSNAME) $(ARCH) "*** ERROR: this platform does not support 64-bit compilers!") 1.81 + @exit 1 1.82 + endif 1.83 +endif 1.84 + 1.85 +# we need to set up LP64 correctly to satisfy sanity checks in adlc 1.86 +ifneq ("$(filter $(LP64_ARCH),$(BUILDARCH))","") 1.87 + MFLAGS += " LP64=1 " 1.88 +endif 1.89 + 1.90 +# pass USE_SUNCC further, through MFLAGS 1.91 +ifdef USE_SUNCC 1.92 + MFLAGS += " USE_SUNCC=1 " 1.93 +endif 1.94 + 1.95 +# The following renders pathnames in generated Makefiles valid on 1.96 +# machines other than the machine containing the build tree. 1.97 +# 1.98 +# For example, let's say my build tree lives on /files12 on 1.99 +# exact.east.sun.com. This logic will cause GAMMADIR to begin with 1.100 +# /net/exact/files12/... 1.101 +# 1.102 +# We only do this on SunOS variants, for a couple of reasons: 1.103 +# * It is extremely rare that source trees exist on other systems 1.104 +# * It has been claimed that the Linux automounter is flakey, so 1.105 +# changing GAMMADIR in a way that exercises the automounter could 1.106 +# prove to be a source of unreliability in the build process. 1.107 +# Obviously, this Makefile is only relevant on SunOS boxes to begin 1.108 +# with, but the SunOS conditionalization will make it easier to 1.109 +# combine Makefiles in the future (assuming we ever do that). 1.110 + 1.111 +ifeq ($(OSNAME),solaris) 1.112 + 1.113 + # prepend current directory to relative pathnames. 1.114 + NEW_GAMMADIR := \ 1.115 + $(shell echo $(GAMMADIR) | \ 1.116 + sed -e "s=^\([^/].*\)=$(shell pwd)/\1=" \ 1.117 + ) 1.118 + unexport NEW_GAMMADIR 1.119 + 1.120 + # If NEW_GAMMADIR doesn't already start with "/net/": 1.121 + ifeq ($(strip $(filter /net/%,$(NEW_GAMMADIR))),) 1.122 + # prepend /net/$(HOST) 1.123 + # remove /net/$(HOST) if name already began with /home/ 1.124 + # remove /net/$(HOST) if name already began with /java/ 1.125 + # remove /net/$(HOST) if name already began with /lab/ 1.126 + NEW_GAMMADIR := \ 1.127 + $(shell echo $(NEW_GAMMADIR) | \ 1.128 + sed -e "s=^\(.*\)=/net/$(HOST)\1=" \ 1.129 + -e "s=^/net/$(HOST)/home/=/home/=" \ 1.130 + -e "s=^/net/$(HOST)/java/=/java/=" \ 1.131 + -e "s=^/net/$(HOST)/lab/=/lab/=" \ 1.132 + ) 1.133 + # Don't use the new value for GAMMADIR unless a file with the new 1.134 + # name actually exists. 1.135 + ifneq ($(wildcard $(NEW_GAMMADIR)),) 1.136 + GAMMADIR := $(NEW_GAMMADIR) 1.137 + endif 1.138 + endif 1.139 + 1.140 +endif 1.141 + 1.142 +# BUILDARCH is set to "zero" for Zero builds. VARIANTARCH 1.143 +# is used to give the build directories meaningful names. 1.144 +VARIANTARCH = $(subst i386,i486,$(ZERO_LIBARCH)) 1.145 + 1.146 +# There is a (semi-) regular correspondence between make targets and actions: 1.147 +# 1.148 +# Target Tree Type Build Dir 1.149 +# 1.150 +# debug compiler2 <os>_<arch>_compiler2/debug 1.151 +# fastdebug compiler2 <os>_<arch>_compiler2/fastdebug 1.152 +# optimized compiler2 <os>_<arch>_compiler2/optimized 1.153 +# product compiler2 <os>_<arch>_compiler2/product 1.154 +# 1.155 +# debug1 compiler1 <os>_<arch>_compiler1/debug 1.156 +# fastdebug1 compiler1 <os>_<arch>_compiler1/fastdebug 1.157 +# optimized1 compiler1 <os>_<arch>_compiler1/optimized 1.158 +# product1 compiler1 <os>_<arch>_compiler1/product 1.159 +# 1.160 +# debugcore core <os>_<arch>_core/debug 1.161 +# fastdebugcore core <os>_<arch>_core/fastdebug 1.162 +# optimizedcore core <os>_<arch>_core/optimized 1.163 +# productcore core <os>_<arch>_core/product 1.164 +# 1.165 +# debugzero zero <os>_<arch>_zero/debug 1.166 +# fastdebugzero zero <os>_<arch>_zero/fastdebug 1.167 +# optimizedzero zero <os>_<arch>_zero/optimized 1.168 +# productzero zero <os>_<arch>_zero/product 1.169 +# 1.170 +# debugshark shark <os>_<arch>_shark/debug 1.171 +# fastdebugshark shark <os>_<arch>_shark/fastdebug 1.172 +# optimizedshark shark <os>_<arch>_shark/optimized 1.173 +# productshark shark <os>_<arch>_shark/product 1.174 +# 1.175 +# fastdebugminimal1 minimal1 <os>_<arch>_minimal1/fastdebug 1.176 +# productminimal1 minimal1 <os>_<arch>_minimal1/product 1.177 +# 1.178 +# What you get with each target: 1.179 +# 1.180 +# debug* - debug compile with asserts enabled 1.181 +# fastdebug* - optimized compile, but with asserts enabled 1.182 +# optimized* - optimized compile, no asserts 1.183 +# product* - the shippable thing: optimized compile, no asserts, -DPRODUCT 1.184 + 1.185 +# This target list needs to be coordinated with the usage message 1.186 +# in the build.sh script: 1.187 +TARGETS = debug fastdebug optimized product 1.188 + 1.189 +ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true) 1.190 + SUBDIR_DOCS = $(OSNAME)_$(VARIANTARCH)_docs 1.191 +else 1.192 + SUBDIR_DOCS = $(OSNAME)_$(BUILDARCH)_docs 1.193 +endif 1.194 +SUBDIRS_C1 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler1/,$(TARGETS)) 1.195 +SUBDIRS_C2 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler2/,$(TARGETS)) 1.196 +SUBDIRS_TIERED = $(addprefix $(OSNAME)_$(BUILDARCH)_tiered/,$(TARGETS)) 1.197 +SUBDIRS_CORE = $(addprefix $(OSNAME)_$(BUILDARCH)_core/,$(TARGETS)) 1.198 +SUBDIRS_ZERO = $(addprefix $(OSNAME)_$(VARIANTARCH)_zero/,$(TARGETS)) 1.199 +SUBDIRS_SHARK = $(addprefix $(OSNAME)_$(VARIANTARCH)_shark/,$(TARGETS)) 1.200 +SUBDIRS_MINIMAL1 = $(addprefix $(OSNAME)_$(BUILDARCH)_minimal1/,$(TARGETS)) 1.201 + 1.202 +TARGETS_C2 = $(TARGETS) 1.203 +TARGETS_C1 = $(addsuffix 1,$(TARGETS)) 1.204 +TARGETS_TIERED = $(addsuffix tiered,$(TARGETS)) 1.205 +TARGETS_CORE = $(addsuffix core,$(TARGETS)) 1.206 +TARGETS_ZERO = $(addsuffix zero,$(TARGETS)) 1.207 +TARGETS_SHARK = $(addsuffix shark,$(TARGETS)) 1.208 +TARGETS_MINIMAL1 = $(addsuffix minimal1,$(TARGETS)) 1.209 + 1.210 +BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make 1.211 +BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) 1.212 +BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION) 1.213 +BUILDTREE_VARS += ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS) OBJCOPY=$(OBJCOPY) STRIP_POLICY=$(STRIP_POLICY) ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES) ZIPEXE=$(ZIPEXE) 1.214 + 1.215 +BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS) 1.216 + 1.217 +#------------------------------------------------------------------------------- 1.218 + 1.219 +# Could make everything by default, but that would take a while. 1.220 +all: 1.221 + @echo "Try '$(MAKE) <target> ...' where <target> is one or more of" 1.222 + @echo " $(TARGETS_C2)" 1.223 + @echo " $(TARGETS_C1)" 1.224 + @echo " $(TARGETS_CORE)" 1.225 + @echo " $(TARGETS_ZERO)" 1.226 + @echo " $(TARGETS_SHARK)" 1.227 + @echo " $(TARGETS_MINIMAL1)" 1.228 + 1.229 +checks: check_os_version check_j2se_version 1.230 + 1.231 +# We do not want people accidentally building on old systems (e.g. Linux 2.2.x, 1.232 +# Solaris 2.5.1, 2.6). 1.233 +# Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok. 1.234 + 1.235 +SUPPORTED_OS_VERSION = AIX 1.236 +OS_VERSION := $(shell uname -a) 1.237 +EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION)) 1.238 + 1.239 +check_os_version: 1.240 +ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),) 1.241 + $(QUIETLY) >&2 echo "*** This OS is not supported:" `uname -a`; exit 1; 1.242 +endif 1.243 + 1.244 +# jvmti.make requires XSLT (J2SE 1.4.x or newer): 1.245 +XSLT_CHECK = $(REMOTE) $(RUN.JAVAP) javax.xml.transform.TransformerFactory 1.246 +# If not found then fail fast. 1.247 +check_j2se_version: 1.248 + $(QUIETLY) $(XSLT_CHECK) > /dev/null 2>&1; \ 1.249 + if [ $$? -ne 0 ]; then \ 1.250 + $(REMOTE) $(RUN.JAVA) -version; \ 1.251 + echo "*** An XSLT processor (J2SE 1.4.x or newer) is required" \ 1.252 + "to bootstrap this build" 1>&2; \ 1.253 + exit 1; \ 1.254 + fi 1.255 + 1.256 +$(SUBDIRS_TIERED): $(BUILDTREE_MAKE) 1.257 + $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 1.258 + $(BUILDTREE) VARIANT=tiered 1.259 + 1.260 +$(SUBDIRS_C2): $(BUILDTREE_MAKE) 1.261 +ifeq ($(FORCE_TIERED),1) 1.262 + $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 1.263 + $(BUILDTREE) VARIANT=tiered FORCE_TIERED=1 1.264 +else 1.265 + $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 1.266 + $(BUILDTREE) VARIANT=compiler2 1.267 +endif 1.268 + 1.269 +$(SUBDIRS_C1): $(BUILDTREE_MAKE) 1.270 + $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 1.271 + $(BUILDTREE) VARIANT=compiler1 1.272 + 1.273 +$(SUBDIRS_CORE): $(BUILDTREE_MAKE) 1.274 + $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 1.275 + $(BUILDTREE) VARIANT=core 1.276 + 1.277 +$(SUBDIRS_ZERO): $(BUILDTREE_MAKE) platform_zero 1.278 + $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 1.279 + $(BUILDTREE) VARIANT=zero VARIANTARCH=$(VARIANTARCH) 1.280 + 1.281 +$(SUBDIRS_SHARK): $(BUILDTREE_MAKE) platform_zero 1.282 + $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 1.283 + $(BUILDTREE) VARIANT=shark VARIANTARCH=$(VARIANTARCH) 1.284 + 1.285 +$(SUBDIRS_MINIMAL1): $(BUILDTREE_MAKE) 1.286 + $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 1.287 + $(BUILDTREE) VARIANT=minimal1 1.288 + 1.289 + 1.290 +platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in 1.291 + $(SED) 's/@ZERO_ARCHDEF@/$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@ 1.292 + 1.293 +# Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME 1.294 + 1.295 +$(TARGETS_C2): $(SUBDIRS_C2) 1.296 + cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && $(MAKE) $(MFLAGS) 1.297 +ifdef INSTALL 1.298 + cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && $(MAKE) $(MFLAGS) install 1.299 +endif 1.300 + 1.301 +$(TARGETS_TIERED): $(SUBDIRS_TIERED) 1.302 + cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && $(MAKE) $(MFLAGS) 1.303 +ifdef INSTALL 1.304 + cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && $(MAKE) $(MFLAGS) install 1.305 +endif 1.306 + 1.307 +$(TARGETS_C1): $(SUBDIRS_C1) 1.308 + cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && $(MAKE) $(MFLAGS) 1.309 +ifdef INSTALL 1.310 + cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && $(MAKE) $(MFLAGS) install 1.311 +endif 1.312 + 1.313 +$(TARGETS_CORE): $(SUBDIRS_CORE) 1.314 + cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) 1.315 +ifdef INSTALL 1.316 + cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) install 1.317 +endif 1.318 + 1.319 +$(TARGETS_ZERO): $(SUBDIRS_ZERO) 1.320 + cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS) 1.321 +ifdef INSTALL 1.322 + cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS) install 1.323 +endif 1.324 + 1.325 +$(TARGETS_SHARK): $(SUBDIRS_SHARK) 1.326 + cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && $(MAKE) $(MFLAGS) 1.327 +ifdef INSTALL 1.328 + cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && $(MAKE) $(MFLAGS) install 1.329 +endif 1.330 + 1.331 +$(TARGETS_MINIMAL1): $(SUBDIRS_MINIMAL1) 1.332 + cd $(OSNAME)_$(BUILDARCH)_minimal1/$(patsubst %minimal1,%,$@) && $(MAKE) $(MFLAGS) 1.333 +ifdef INSTALL 1.334 + cd $(OSNAME)_$(BUILDARCH)_minimal1/$(patsubst %minimal1,%,$@) && $(MAKE) $(MFLAGS) install 1.335 +endif 1.336 + 1.337 +# Just build the tree, and nothing else: 1.338 +tree: $(SUBDIRS_C2) 1.339 +tree1: $(SUBDIRS_C1) 1.340 +treecore: $(SUBDIRS_CORE) 1.341 +treezero: $(SUBDIRS_ZERO) 1.342 +treeshark: $(SUBDIRS_SHARK) 1.343 +treeminimal1: $(SUBDIRS_MINIMAL1) 1.344 + 1.345 +# Doc target. This is the same for all build options. 1.346 +# Hence create a docs directory beside ...$(ARCH)_[...] 1.347 +# We specify 'BUILD_FLAVOR=product' so that the proper 1.348 +# ENABLE_FULL_DEBUG_SYMBOLS value is used. 1.349 +docs: checks 1.350 + $(QUIETLY) mkdir -p $(SUBDIR_DOCS) 1.351 + $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) BUILD_FLAVOR=product jvmtidocs 1.352 + 1.353 +# Synonyms for win32-like targets. 1.354 +compiler2: debug product 1.355 + 1.356 +compiler1: debug1 product1 1.357 + 1.358 +core: debugcore productcore 1.359 + 1.360 +zero: debugzero productzero 1.361 + 1.362 +shark: debugshark productshark 1.363 + 1.364 +clean_docs: 1.365 + rm -rf $(SUBDIR_DOCS) 1.366 + 1.367 +clean_compiler1 clean_compiler2 clean_core clean_zero clean_shark clean_minimal1: 1.368 + rm -rf $(OSNAME)_$(BUILDARCH)_$(subst clean_,,$@) 1.369 + 1.370 +clean: clean_compiler2 clean_compiler1 clean_core clean_zero clean_shark clean_minimal1 clean_docs 1.371 + 1.372 +include $(GAMMADIR)/make/cscope.make 1.373 + 1.374 +#------------------------------------------------------------------------------- 1.375 + 1.376 +.PHONY: $(TARGETS_C2) $(TARGETS_C1) $(TARGETS_CORE) $(TARGETS_ZERO) $(TARGETS_SHARK) $(TARGETS_MINIMAL1) 1.377 +.PHONY: tree tree1 treecore treezero treeshark 1.378 +.PHONY: all compiler1 compiler2 core zero shark 1.379 +.PHONY: clean clean_compiler1 clean_compiler2 clean_core clean_zero clean_shark docs clean_docs 1.380 +.PHONY: checks check_os_version check_j2se_version
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/make/aix/adlc_updater Fri Sep 06 20:08:29 2013 +0200 2.3 @@ -0,0 +1,20 @@ 2.4 +#! /bin/sh 2.5 +# 2.6 +# This file is used by adlc.make to selectively update generated 2.7 +# adlc files. Because source and target diretories are relative 2.8 +# paths, this file is copied to the target build directory before 2.9 +# use. 2.10 +# 2.11 +# adlc-updater <file> <source-dir> <target-dir> 2.12 +# 2.13 +fix_lines() { 2.14 + # repair bare #line directives in $1 to refer to $2 2.15 + awk < $1 > $1+ ' 2.16 + /^#line 999999$/ {print "#line " (NR+1) " \"" F2 "\""; next} 2.17 + {print} 2.18 + ' F2=$2 2.19 + mv $1+ $1 2.20 +} 2.21 +fix_lines $2/$1 $3/$1 2.22 +[ -f $3/$1 ] && cmp -s $2/$1 $3/$1 || \ 2.23 +( [ -f $3/$1 ] && echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/make/aix/makefiles/adjust-mflags.sh Fri Sep 06 20:08:29 2013 +0200 3.3 @@ -0,0 +1,87 @@ 3.4 +#! /bin/sh 3.5 +# 3.6 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 3.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3.8 +# 3.9 +# This code is free software; you can redistribute it and/or modify it 3.10 +# under the terms of the GNU General Public License version 2 only, as 3.11 +# published by the Free Software Foundation. 3.12 +# 3.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 3.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 3.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 3.16 +# version 2 for more details (a copy is included in the LICENSE file that 3.17 +# accompanied this code). 3.18 +# 3.19 +# You should have received a copy of the GNU General Public License version 3.20 +# 2 along with this work; if not, write to the Free Software Foundation, 3.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 3.22 +# 3.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 3.24 +# or visit www.oracle.com if you need additional information or have any 3.25 +# questions. 3.26 +# 3.27 +# 3.28 + 3.29 +# This script is used only from top.make. 3.30 +# The macro $(MFLAGS-adjusted) calls this script to 3.31 +# adjust the "-j" arguments to take into account 3.32 +# the HOTSPOT_BUILD_JOBS variable. The default 3.33 +# handling of the "-j" argument by gnumake does 3.34 +# not meet our needs, so we must adjust it ourselves. 3.35 + 3.36 +# This argument adjustment applies to two recursive 3.37 +# calls to "$(MAKE) $(MFLAGS-adjusted)" in top.make. 3.38 +# One invokes adlc.make, and the other invokes vm.make. 3.39 +# The adjustment propagates the desired concurrency 3.40 +# level down to the sub-make (of the adlc or vm). 3.41 +# The default behavior of gnumake is to run all 3.42 +# sub-makes without concurrency ("-j1"). 3.43 + 3.44 +# Also, we use a make variable rather than an explicit 3.45 +# "-j<N>" argument to control this setting, so that 3.46 +# the concurrency setting (which must be tuned separately 3.47 +# for each MP system) can be set via an environment variable. 3.48 +# The recommended setting is 1.5x to 2x the number of available 3.49 +# CPUs on the MP system, which is large enough to keep the CPUs 3.50 +# busy (even though some jobs may be I/O bound) but not too large, 3.51 +# we may presume, to overflow the system's swap space. 3.52 + 3.53 +set -eu 3.54 + 3.55 +default_build_jobs=4 3.56 + 3.57 +case $# in 3.58 +[12]) true;; 3.59 +*) >&2 echo "Usage: $0 ${MFLAGS} ${HOTSPOT_BUILD_JOBS}"; exit 2;; 3.60 +esac 3.61 + 3.62 +MFLAGS=$1 3.63 +HOTSPOT_BUILD_JOBS=${2-} 3.64 + 3.65 +# Normalize any -jN argument to the form " -j${HBJ}" 3.66 +MFLAGS=` 3.67 + echo "$MFLAGS" \ 3.68 + | sed ' 3.69 + s/^-/ -/ 3.70 + s/ -\([^ ][^ ]*\)j/ -\1 -j/ 3.71 + s/ -j[0-9][0-9]*/ -j/ 3.72 + s/ -j\([^ ]\)/ -j -\1/ 3.73 + s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/ 3.74 + ' ` 3.75 + 3.76 +case ${HOTSPOT_BUILD_JOBS} in \ 3.77 + 3.78 +'') case ${MFLAGS} in 3.79 + *\ -j*) 3.80 + >&2 echo "# Note: -jN is ineffective for setting parallelism in this makefile." 3.81 + >&2 echo "# please set HOTSPOT_BUILD_JOBS=${default_build_jobs} in the command line or environment." 3.82 + esac;; 3.83 + 3.84 +?*) case ${MFLAGS} in 3.85 + *\ -j*) true;; 3.86 + *) MFLAGS="-j${HOTSPOT_BUILD_JOBS} ${MFLAGS}";; 3.87 + esac;; 3.88 +esac 3.89 + 3.90 +echo "${MFLAGS}"
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/make/aix/makefiles/adlc.make Fri Sep 06 20:08:29 2013 +0200 4.3 @@ -0,0 +1,233 @@ 4.4 +# 4.5 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 4.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4.7 +# 4.8 +# This code is free software; you can redistribute it and/or modify it 4.9 +# under the terms of the GNU General Public License version 2 only, as 4.10 +# published by the Free Software Foundation. 4.11 +# 4.12 +# This code is distributed in the hope that it will be useful, but WITHOUT 4.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 4.14 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 4.15 +# version 2 for more details (a copy is included in the LICENSE file that 4.16 +# accompanied this code). 4.17 +# 4.18 +# You should have received a copy of the GNU General Public License version 4.19 +# 2 along with this work; if not, write to the Free Software Foundation, 4.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 4.21 +# 4.22 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 4.23 +# or visit www.oracle.com if you need additional information or have any 4.24 +# questions. 4.25 +# 4.26 +# 4.27 + 4.28 +# This makefile (adlc.make) is included from the adlc.make in the 4.29 +# build directories. 4.30 +# It knows how to compile, link, and run the adlc. 4.31 + 4.32 +include $(GAMMADIR)/make/$(Platform_os_family)/makefiles/rules.make 4.33 + 4.34 +# ######################################################################### 4.35 + 4.36 +# OUTDIR must be the same as AD_Dir = $(GENERATED)/adfiles in top.make: 4.37 +GENERATED = ../generated 4.38 +OUTDIR = $(GENERATED)/adfiles 4.39 + 4.40 +ARCH = $(Platform_arch) 4.41 +OS = $(Platform_os_family) 4.42 + 4.43 +SOURCE.AD = $(OUTDIR)/$(OS)_$(Platform_arch_model).ad 4.44 + 4.45 +ifeq ("${Platform_arch_model}", "${Platform_arch}") 4.46 + SOURCES.AD = \ 4.47 + $(call altsrc-replace,$(HS_COMMON_SRC)/cpu/$(ARCH)/vm/$(Platform_arch_model).ad) \ 4.48 + $(call altsrc-replace,$(HS_COMMON_SRC)/os_cpu/$(OS)_$(ARCH)/vm/$(OS)_$(Platform_arch_model).ad) 4.49 +else 4.50 + SOURCES.AD = \ 4.51 + $(call altsrc-replace,$(HS_COMMON_SRC)/cpu/$(ARCH)/vm/$(Platform_arch_model).ad) \ 4.52 + $(call altsrc-replace,$(HS_COMMON_SRC)/cpu/$(ARCH)/vm/$(Platform_arch).ad) \ 4.53 + $(call altsrc-replace,$(HS_COMMON_SRC)/os_cpu/$(OS)_$(ARCH)/vm/$(OS)_$(Platform_arch_model).ad) 4.54 +endif 4.55 + 4.56 +EXEC = $(OUTDIR)/adlc 4.57 + 4.58 +# set VPATH so make knows where to look for source files 4.59 +Src_Dirs_V += $(GAMMADIR)/src/share/vm/adlc 4.60 +VPATH += $(Src_Dirs_V:%=%:) 4.61 + 4.62 +# set INCLUDES for C preprocessor 4.63 +Src_Dirs_I += $(GAMMADIR)/src/share/vm/adlc $(GENERATED) 4.64 +INCLUDES += $(Src_Dirs_I:%=-I%) 4.65 + 4.66 +# set flags for adlc compilation 4.67 +CXXFLAGS = $(SYSDEFS) $(INCLUDES) 4.68 + 4.69 +# Force assertions on. 4.70 +CXXFLAGS += -DASSERT 4.71 + 4.72 +# CFLAGS_WARN holds compiler options to suppress/enable warnings. 4.73 +# Suppress warnings (for now) 4.74 +CFLAGS_WARN = -w 4.75 +CFLAGS += $(CFLAGS_WARN) 4.76 + 4.77 +OBJECTNAMES = \ 4.78 + adlparse.o \ 4.79 + archDesc.o \ 4.80 + arena.o \ 4.81 + dfa.o \ 4.82 + dict2.o \ 4.83 + filebuff.o \ 4.84 + forms.o \ 4.85 + formsopt.o \ 4.86 + formssel.o \ 4.87 + main.o \ 4.88 + adlc-opcodes.o \ 4.89 + output_c.o \ 4.90 + output_h.o \ 4.91 + 4.92 +OBJECTS = $(OBJECTNAMES:%=$(OUTDIR)/%) 4.93 + 4.94 +GENERATEDNAMES = \ 4.95 + ad_$(Platform_arch_model).cpp \ 4.96 + ad_$(Platform_arch_model).hpp \ 4.97 + ad_$(Platform_arch_model)_clone.cpp \ 4.98 + ad_$(Platform_arch_model)_expand.cpp \ 4.99 + ad_$(Platform_arch_model)_format.cpp \ 4.100 + ad_$(Platform_arch_model)_gen.cpp \ 4.101 + ad_$(Platform_arch_model)_misc.cpp \ 4.102 + ad_$(Platform_arch_model)_peephole.cpp \ 4.103 + ad_$(Platform_arch_model)_pipeline.cpp \ 4.104 + adGlobals_$(Platform_arch_model).hpp \ 4.105 + dfa_$(Platform_arch_model).cpp \ 4.106 + 4.107 +GENERATEDFILES = $(GENERATEDNAMES:%=$(OUTDIR)/%) 4.108 + 4.109 +# ######################################################################### 4.110 + 4.111 +all: $(EXEC) 4.112 + 4.113 +$(EXEC) : $(OBJECTS) 4.114 + @echo Making adlc 4.115 + $(QUIETLY) $(HOST.LINK_NOPROF.CXX) -o $(EXEC) $(OBJECTS) 4.116 + 4.117 +# Random dependencies: 4.118 +$(OBJECTS): opcodes.hpp classes.hpp adlc.hpp adlcVMDeps.hpp adlparse.hpp archDesc.hpp arena.hpp dict2.hpp filebuff.hpp forms.hpp formsopt.hpp formssel.hpp 4.119 + 4.120 +# The source files refer to ostream.h, which sparcworks calls iostream.h 4.121 +$(OBJECTS): ostream.h 4.122 + 4.123 +ostream.h : 4.124 + @echo >$@ '#include <iostream.h>' 4.125 + 4.126 +dump: 4.127 + : OUTDIR=$(OUTDIR) 4.128 + : OBJECTS=$(OBJECTS) 4.129 + : products = $(GENERATEDFILES) 4.130 + 4.131 +all: $(GENERATEDFILES) 4.132 + 4.133 +$(GENERATEDFILES): refresh_adfiles 4.134 + 4.135 +# Get a unique temporary directory name, so multiple makes can run in parallel. 4.136 +# Note that product files are updated via "mv", which is atomic. 4.137 +TEMPDIR := $(OUTDIR)/mktmp$(shell echo $$$$) 4.138 + 4.139 +# Debuggable by default 4.140 +CFLAGS += -g 4.141 + 4.142 +# Pass -D flags into ADLC. 4.143 +ADLCFLAGS += $(SYSDEFS) 4.144 + 4.145 +# Note "+="; it is a hook so flags.make can add more flags, like -g or -DFOO. 4.146 +ADLCFLAGS += -q -T 4.147 + 4.148 +# Normally, debugging is done directly on the ad_<arch>*.cpp files. 4.149 +# But -g will put #line directives in those files pointing back to <arch>.ad. 4.150 +# Some builds of gcc 3.2 have a bug that gets tickled by the extra #line directives 4.151 +# so skip it for 3.2 and ealier. 4.152 +ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 3 \) \))" "0" 4.153 +ADLCFLAGS += -g 4.154 +endif 4.155 + 4.156 +ifdef LP64 4.157 +ADLCFLAGS += -D_LP64 4.158 +else 4.159 +ADLCFLAGS += -U_LP64 4.160 +endif 4.161 + 4.162 +# 4.163 +# adlc_updater is a simple sh script, under sccs control. It is 4.164 +# used to selectively update generated adlc files. This should 4.165 +# provide a nice compilation speed improvement. 4.166 +# 4.167 +ADLC_UPDATER_DIRECTORY = $(GAMMADIR)/make/$(OS) 4.168 +ADLC_UPDATER = adlc_updater 4.169 +$(ADLC_UPDATER): $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER) 4.170 + $(QUIETLY) cp $< $@; chmod +x $@ 4.171 + 4.172 +# This action refreshes all generated adlc files simultaneously. 4.173 +# The way it works is this: 4.174 +# 1) create a scratch directory to work in. 4.175 +# 2) if the current working directory does not have $(ADLC_UPDATER), copy it. 4.176 +# 3) run the compiled adlc executable. This will create new adlc files in the scratch directory. 4.177 +# 4) call $(ADLC_UPDATER) on each generated adlc file. It will selectively update changed or missing files. 4.178 +# 5) If we actually updated any files, echo a notice. 4.179 +# 4.180 +refresh_adfiles: $(EXEC) $(SOURCE.AD) $(ADLC_UPDATER) 4.181 + @rm -rf $(TEMPDIR); mkdir $(TEMPDIR) 4.182 + $(QUIETLY) $(EXEC) $(ADLCFLAGS) $(SOURCE.AD) \ 4.183 + -c$(TEMPDIR)/ad_$(Platform_arch_model).cpp -h$(TEMPDIR)/ad_$(Platform_arch_model).hpp -a$(TEMPDIR)/dfa_$(Platform_arch_model).cpp -v$(TEMPDIR)/adGlobals_$(Platform_arch_model).hpp \ 4.184 + || { rm -rf $(TEMPDIR); exit 1; } 4.185 + $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model).cpp $(TEMPDIR) $(OUTDIR) 4.186 + $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model).hpp $(TEMPDIR) $(OUTDIR) 4.187 + $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_clone.cpp $(TEMPDIR) $(OUTDIR) 4.188 + $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_expand.cpp $(TEMPDIR) $(OUTDIR) 4.189 + $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_format.cpp $(TEMPDIR) $(OUTDIR) 4.190 + $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_gen.cpp $(TEMPDIR) $(OUTDIR) 4.191 + $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_misc.cpp $(TEMPDIR) $(OUTDIR) 4.192 + $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_peephole.cpp $(TEMPDIR) $(OUTDIR) 4.193 + $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_pipeline.cpp $(TEMPDIR) $(OUTDIR) 4.194 + $(QUIETLY) ./$(ADLC_UPDATER) adGlobals_$(Platform_arch_model).hpp $(TEMPDIR) $(OUTDIR) 4.195 + $(QUIETLY) ./$(ADLC_UPDATER) dfa_$(Platform_arch_model).cpp $(TEMPDIR) $(OUTDIR) 4.196 + $(QUIETLY) [ -f $(TEMPDIR)/made-change ] \ 4.197 + || echo "Rescanned $(SOURCE.AD) but encountered no changes." 4.198 + $(QUIETLY) rm -rf $(TEMPDIR) 4.199 + 4.200 + 4.201 +# ######################################################################### 4.202 + 4.203 +$(SOURCE.AD): $(SOURCES.AD) 4.204 + $(QUIETLY) $(PROCESS_AD_FILES) $(SOURCES.AD) > $(SOURCE.AD) 4.205 + 4.206 +#PROCESS_AD_FILES = cat 4.207 +# Pass through #line directives, in case user enables -g option above: 4.208 +PROCESS_AD_FILES = awk '{ \ 4.209 + if (CUR_FN != FILENAME) { CUR_FN=FILENAME; NR_BASE=NR-1; need_lineno=1 } \ 4.210 + if (need_lineno && $$0 !~ /\/\//) \ 4.211 + { print "\n\n\#line " (NR-NR_BASE) " \"" FILENAME "\""; need_lineno=0 }; \ 4.212 + print }' 4.213 + 4.214 +$(OUTDIR)/%.o: %.cpp 4.215 + @echo Compiling $< 4.216 + $(QUIETLY) $(REMOVE_TARGET) 4.217 + $(QUIETLY) $(HOST.COMPILE.CXX) -o $@ $< $(COMPILE_DONE) 4.218 + 4.219 +# Some object files are given a prefix, to disambiguate 4.220 +# them from objects of the same name built for the VM. 4.221 +$(OUTDIR)/adlc-%.o: %.cpp 4.222 + @echo Compiling $< 4.223 + $(QUIETLY) $(REMOVE_TARGET) 4.224 + $(QUIETLY) $(HOST.COMPILE.CXX) -o $@ $< $(COMPILE_DONE) 4.225 + 4.226 +# ######################################################################### 4.227 + 4.228 +clean: 4.229 + rm $(OBJECTS) 4.230 + 4.231 +cleanall: 4.232 + rm $(OBJECTS) $(EXEC) 4.233 + 4.234 +# ######################################################################### 4.235 + 4.236 +.PHONY: all dump refresh_adfiles clean cleanall
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/make/aix/makefiles/build_vm_def.sh Fri Sep 06 20:08:29 2013 +0200 5.3 @@ -0,0 +1,18 @@ 5.4 +#!/bin/sh 5.5 + 5.6 +# If we're cross compiling use that path for nm 5.7 +if [ "$CROSS_COMPILE_ARCH" != "" ]; then 5.8 +NM=$ALT_COMPILER_PATH/nm 5.9 +else 5.10 +# On AIX we have to prevent that we pick up the 'nm' version from the GNU binutils 5.11 +# which may be installed under /opt/freeware/bin. So better use an absolute path here! 5.12 +NM=/usr/bin/nm 5.13 +fi 5.14 + 5.15 +$NM -X64 -B -C $* \ 5.16 + | awk '{ 5.17 + if (($2="d" || $2="D") && ($3 ~ /^__vft/ || $3 ~ /^gHotSpotVM/)) print "\t" $3 ";" 5.18 + if ($3 ~ /^UseSharedSpaces$/) print "\t" $3 ";" 5.19 + if ($3 ~ /^SharedArchivePath__9Arguments$/) print "\t" $3 ";" 5.20 + }' \ 5.21 + | sort -u
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/make/aix/makefiles/buildtree.make Fri Sep 06 20:08:29 2013 +0200 6.3 @@ -0,0 +1,364 @@ 6.4 +# 6.5 +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. 6.6 +# Copyright 2012, 2013 SAP AG. All rights reserved. 6.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 6.8 +# 6.9 +# This code is free software; you can redistribute it and/or modify it 6.10 +# under the terms of the GNU General Public License version 2 only, as 6.11 +# published by the Free Software Foundation. 6.12 +# 6.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 6.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 6.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 6.16 +# version 2 for more details (a copy is included in the LICENSE file that 6.17 +# accompanied this code). 6.18 +# 6.19 +# You should have received a copy of the GNU General Public License version 6.20 +# 2 along with this work; if not, write to the Free Software Foundation, 6.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 6.22 +# 6.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 6.24 +# or visit www.oracle.com if you need additional information or have any 6.25 +# questions. 6.26 +# 6.27 +# 6.28 + 6.29 +# Usage: 6.30 +# 6.31 +# $(MAKE) -f buildtree.make SRCARCH=srcarch BUILDARCH=buildarch LIBARCH=libarch 6.32 +# GAMMADIR=dir OS_FAMILY=os VARIANT=variant 6.33 +# 6.34 +# The macros ARCH, GAMMADIR, OS_FAMILY and VARIANT must be defined in the 6.35 +# environment or on the command-line: 6.36 +# 6.37 +# ARCH - sparc, i486, ... HotSpot cpu and os_cpu source directory 6.38 +# BUILDARCH - build directory 6.39 +# LIBARCH - the corresponding directory in JDK/JRE 6.40 +# GAMMADIR - top of workspace 6.41 +# OS_FAMILY - operating system 6.42 +# VARIANT - core, compiler1, compiler2, or tiered 6.43 +# HOTSPOT_RELEASE_VERSION - <major>.<minor>-b<nn> (11.0-b07) 6.44 +# HOTSPOT_BUILD_VERSION - internal, internal-$(USER_RELEASE_SUFFIX) or empty 6.45 +# JRE_RELEASE_VERSION - <major>.<minor>.<micro> (1.7.0) 6.46 +# 6.47 +# Builds the directory trees with makefiles plus some convenience files in 6.48 +# each directory: 6.49 +# 6.50 +# Makefile - for "make foo" 6.51 +# flags.make - with macro settings 6.52 +# vm.make - to support making "$(MAKE) -v vm.make" in makefiles 6.53 +# adlc.make - 6.54 +# trace.make - generate tracing event and type definitions 6.55 +# jvmti.make - generate JVMTI bindings from the spec (JSR-163) 6.56 +# sa.make - generate SA jar file and natives 6.57 +# 6.58 +# The makefiles are split this way so that "make foo" will run faster by not 6.59 +# having to read the dependency files for the vm. 6.60 + 6.61 +-include $(SPEC) 6.62 +include $(GAMMADIR)/make/scm.make 6.63 +include $(GAMMADIR)/make/defs.make 6.64 +include $(GAMMADIR)/make/altsrc.make 6.65 + 6.66 + 6.67 +# 'gmake MAKE_VERBOSE=y' or 'gmake QUIETLY=' gives all the gory details. 6.68 +QUIETLY$(MAKE_VERBOSE) = @ 6.69 + 6.70 +ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true) 6.71 + PLATFORM_FILE = $(shell dirname $(shell dirname $(shell pwd)))/platform_zero 6.72 +else 6.73 + ifdef USE_SUNCC 6.74 + PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH).suncc 6.75 + else 6.76 + PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH) 6.77 + endif 6.78 +endif 6.79 + 6.80 +# Allow overriding of the arch part of the directory but default 6.81 +# to BUILDARCH if nothing is specified 6.82 +ifeq ($(VARIANTARCH),) 6.83 + VARIANTARCH=$(BUILDARCH) 6.84 +endif 6.85 + 6.86 +ifdef FORCE_TIERED 6.87 +ifeq ($(VARIANT),tiered) 6.88 +PLATFORM_DIR = $(OS_FAMILY)_$(VARIANTARCH)_compiler2 6.89 +else 6.90 +PLATFORM_DIR = $(OS_FAMILY)_$(VARIANTARCH)_$(VARIANT) 6.91 +endif 6.92 +else 6.93 +PLATFORM_DIR = $(OS_FAMILY)_$(VARIANTARCH)_$(VARIANT) 6.94 +endif 6.95 + 6.96 +# 6.97 +# We do two levels of exclusion in the shared directory. 6.98 +# TOPLEVEL excludes are pruned, they are not recursively searched, 6.99 +# but lower level directories can be named without fear of collision. 6.100 +# ALWAYS excludes are excluded at any level in the directory tree. 6.101 +# 6.102 + 6.103 +ALWAYS_EXCLUDE_DIRS = $(SCM_DIRS) 6.104 + 6.105 +ifeq ($(VARIANT),tiered) 6.106 +TOPLEVEL_EXCLUDE_DIRS = $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name agent 6.107 +else 6.108 +ifeq ($(VARIANT),compiler2) 6.109 +TOPLEVEL_EXCLUDE_DIRS = $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name c1 -o -name agent 6.110 +else 6.111 +# compiler1 and core use the same exclude list 6.112 +TOPLEVEL_EXCLUDE_DIRS = $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name opto -o -name libadt -o -name agent 6.113 +endif 6.114 +endif 6.115 + 6.116 +# Get things from the platform file. 6.117 +COMPILER = $(shell sed -n 's/^compiler[ ]*=[ ]*//p' $(PLATFORM_FILE)) 6.118 + 6.119 +SIMPLE_DIRS = \ 6.120 + $(PLATFORM_DIR)/generated/dependencies \ 6.121 + $(PLATFORM_DIR)/generated/adfiles \ 6.122 + $(PLATFORM_DIR)/generated/jvmtifiles \ 6.123 + $(PLATFORM_DIR)/generated/tracefiles 6.124 + 6.125 +TARGETS = debug fastdebug optimized product 6.126 +SUBMAKE_DIRS = $(addprefix $(PLATFORM_DIR)/,$(TARGETS)) 6.127 + 6.128 +# For dependencies and recursive makes. 6.129 +BUILDTREE_MAKE = $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make 6.130 + 6.131 +BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make sa.make 6.132 + 6.133 +BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \ 6.134 + SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT) 6.135 + 6.136 +# Define variables to be set in flags.make. 6.137 +# Default values are set in make/defs.make. 6.138 +ifeq ($(HOTSPOT_BUILD_VERSION),) 6.139 + HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION) 6.140 +else 6.141 + HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION) 6.142 +endif 6.143 +# Set BUILD_USER from system-dependent hints: $LOGNAME, $(whoami) 6.144 +ifndef HOTSPOT_BUILD_USER 6.145 + HOTSPOT_BUILD_USER := $(shell echo $$LOGNAME) 6.146 +endif 6.147 +ifndef HOTSPOT_BUILD_USER 6.148 + HOTSPOT_BUILD_USER := $(shell whoami) 6.149 +endif 6.150 +# Define HOTSPOT_VM_DISTRO based on settings in make/openjdk_distro 6.151 +# or make/hotspot_distro. 6.152 +ifndef HOTSPOT_VM_DISTRO 6.153 + ifeq ($(call if-has-altsrc,$(HS_COMMON_SRC)/,true,false),true) 6.154 + include $(GAMMADIR)/make/hotspot_distro 6.155 + else 6.156 + include $(GAMMADIR)/make/openjdk_distro 6.157 + endif 6.158 +endif 6.159 + 6.160 +# if hotspot-only build and/or OPENJDK isn't passed down, need to set OPENJDK 6.161 +ifndef OPENJDK 6.162 + ifneq ($(call if-has-altsrc,$(HS_COMMON_SRC)/,true,false),true) 6.163 + OPENJDK=true 6.164 + endif 6.165 +endif 6.166 + 6.167 +BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HS_BUILD_VER) HOTSPOT_BUILD_VERSION= JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION) 6.168 + 6.169 +BUILDTREE = \ 6.170 + $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_TARGETS) $(BUILDTREE_VARS) 6.171 + 6.172 +BUILDTREE_COMMENT = echo "\# Generated by $(BUILDTREE_MAKE)" 6.173 + 6.174 +all: $(SUBMAKE_DIRS) 6.175 + 6.176 +# Run make in each subdirectory recursively. 6.177 +$(SUBMAKE_DIRS): $(SIMPLE_DIRS) FORCE 6.178 + $(QUIETLY) [ -d $@ ] || { mkdir -p $@; } 6.179 + $(QUIETLY) cd $@ && $(BUILDTREE) TARGET=$(@F) 6.180 + $(QUIETLY) touch $@ 6.181 + 6.182 +$(SIMPLE_DIRS): 6.183 + $(QUIETLY) mkdir -p $@ 6.184 + 6.185 +# Convenience macro which takes a source relative path, applies $(1) to the 6.186 +# absolute path, and then replaces $(GAMMADIR) in the result with a 6.187 +# literal "$(GAMMADIR)/" suitable for inclusion in a Makefile. 6.188 +gamma-path=$(subst $(GAMMADIR),\$$(GAMMADIR),$(call $(1),$(HS_COMMON_SRC)/$(2))) 6.189 + 6.190 +# This bit is needed to enable local rebuilds. 6.191 +# Unless the makefile itself sets LP64, any environmental 6.192 +# setting of LP64 will interfere with the build. 6.193 +LP64_SETTING/32 = LP64 = \#empty 6.194 +LP64_SETTING/64 = LP64 = 1 6.195 + 6.196 +DATA_MODE/ppc64 = 64 6.197 + 6.198 +DATA_MODE = $(DATA_MODE/$(BUILDARCH)) 6.199 + 6.200 +flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst 6.201 + @echo Creating $@ ... 6.202 + $(QUIETLY) ( \ 6.203 + $(BUILDTREE_COMMENT); \ 6.204 + echo; \ 6.205 + echo "Platform_file = $(PLATFORM_FILE)" | sed 's|$(GAMMADIR)|$$(GAMMADIR)|'; \ 6.206 + sed -n '/=/s/^ */Platform_/p' < $(PLATFORM_FILE); \ 6.207 + echo; \ 6.208 + echo "GAMMADIR = $(GAMMADIR)"; \ 6.209 + echo "HS_ALT_MAKE = $(HS_ALT_MAKE)"; \ 6.210 + echo "OSNAME = $(OSNAME)"; \ 6.211 + echo "SYSDEFS = \$$(Platform_sysdefs)"; \ 6.212 + echo "SRCARCH = $(SRCARCH)"; \ 6.213 + echo "BUILDARCH = $(BUILDARCH)"; \ 6.214 + echo "LIBARCH = $(LIBARCH)"; \ 6.215 + echo "TARGET = $(TARGET)"; \ 6.216 + echo "HS_BUILD_VER = $(HS_BUILD_VER)"; \ 6.217 + echo "JRE_RELEASE_VER = $(JRE_RELEASE_VERSION)"; \ 6.218 + echo "SA_BUILD_VERSION = $(HS_BUILD_VER)"; \ 6.219 + echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \ 6.220 + echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \ 6.221 + echo "OPENJDK = $(OPENJDK)"; \ 6.222 + echo "$(LP64_SETTING/$(DATA_MODE))"; \ 6.223 + echo; \ 6.224 + echo "# Used for platform dispatching"; \ 6.225 + echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \ 6.226 + echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \ 6.227 + echo "TARGET_DEFINES += -DTARGET_ARCH_MODEL_\$$(Platform_arch_model)"; \ 6.228 + echo "TARGET_DEFINES += -DTARGET_OS_ARCH_\$$(Platform_os_arch)"; \ 6.229 + echo "TARGET_DEFINES += -DTARGET_OS_ARCH_MODEL_\$$(Platform_os_arch_model)"; \ 6.230 + echo "TARGET_DEFINES += -DTARGET_COMPILER_\$$(Platform_compiler)"; \ 6.231 + echo "CFLAGS += \$$(TARGET_DEFINES)"; \ 6.232 + echo; \ 6.233 + echo "Src_Dirs_V = \\"; \ 6.234 + sed 's/$$/ \\/;s|$(GAMMADIR)|$$(GAMMADIR)|' ../shared_dirs.lst; \ 6.235 + echo "$(call gamma-path,altsrc,cpu/$(SRCARCH)/vm) \\"; \ 6.236 + echo "$(call gamma-path,commonsrc,cpu/$(SRCARCH)/vm) \\"; \ 6.237 + echo "$(call gamma-path,altsrc,os_cpu/$(OS_FAMILY)_$(SRCARCH)/vm) \\"; \ 6.238 + echo "$(call gamma-path,commonsrc,os_cpu/$(OS_FAMILY)_$(SRCARCH)/vm) \\"; \ 6.239 + echo "$(call gamma-path,altsrc,os/$(OS_FAMILY)/vm) \\"; \ 6.240 + echo "$(call gamma-path,commonsrc,os/$(OS_FAMILY)/vm) \\"; \ 6.241 + echo "$(call gamma-path,altsrc,os/posix/vm) \\"; \ 6.242 + echo "$(call gamma-path,commonsrc,os/posix/vm)"; \ 6.243 + echo; \ 6.244 + echo "Src_Dirs_I = \\"; \ 6.245 + echo "$(call gamma-path,altsrc,share/vm/prims) \\"; \ 6.246 + echo "$(call gamma-path,commonsrc,share/vm/prims) \\"; \ 6.247 + echo "$(call gamma-path,altsrc,share/vm) \\"; \ 6.248 + echo "$(call gamma-path,commonsrc,share/vm) \\"; \ 6.249 + echo "$(call gamma-path,altsrc,share/vm/precompiled) \\"; \ 6.250 + echo "$(call gamma-path,commonsrc,share/vm/precompiled) \\"; \ 6.251 + echo "$(call gamma-path,altsrc,cpu/$(SRCARCH)/vm) \\"; \ 6.252 + echo "$(call gamma-path,commonsrc,cpu/$(SRCARCH)/vm) \\"; \ 6.253 + echo "$(call gamma-path,altsrc,os_cpu/$(OS_FAMILY)_$(SRCARCH)/vm) \\"; \ 6.254 + echo "$(call gamma-path,commonsrc,os_cpu/$(OS_FAMILY)_$(SRCARCH)/vm) \\"; \ 6.255 + echo "$(call gamma-path,altsrc,os/$(OS_FAMILY)/vm) \\"; \ 6.256 + echo "$(call gamma-path,commonsrc,os/$(OS_FAMILY)/vm) \\"; \ 6.257 + echo "$(call gamma-path,altsrc,os/posix/vm) \\"; \ 6.258 + echo "$(call gamma-path,commonsrc,os/posix/vm)"; \ 6.259 + [ -n "$(CFLAGS_BROWSE)" ] && \ 6.260 + echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \ 6.261 + [ -n "$(ENABLE_FULL_DEBUG_SYMBOLS)" ] && \ 6.262 + echo && echo "ENABLE_FULL_DEBUG_SYMBOLS = $(ENABLE_FULL_DEBUG_SYMBOLS)"; \ 6.263 + [ -n "$(OBJCOPY)" ] && \ 6.264 + echo && echo "OBJCOPY = $(OBJCOPY)"; \ 6.265 + [ -n "$(STRIP_POLICY)" ] && \ 6.266 + echo && echo "STRIP_POLICY = $(STRIP_POLICY)"; \ 6.267 + [ -n "$(ZIP_DEBUGINFO_FILES)" ] && \ 6.268 + echo && echo "ZIP_DEBUGINFO_FILES = $(ZIP_DEBUGINFO_FILES)"; \ 6.269 + [ -n "$(ZIPEXE)" ] && \ 6.270 + echo && echo "ZIPEXE = $(ZIPEXE)"; \ 6.271 + [ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \ 6.272 + echo && \ 6.273 + echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \ 6.274 + echo "SYSDEFS += \$$(HOTSPOT_EXTRA_SYSDEFS)"; \ 6.275 + [ -n "$(INCLUDE_TRACE)" ] && \ 6.276 + echo && echo "INCLUDE_TRACE = $(INCLUDE_TRACE)"; \ 6.277 + echo; \ 6.278 + [ -n "$(SPEC)" ] && \ 6.279 + echo "include $(SPEC)"; \ 6.280 + echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(VARIANT).make"; \ 6.281 + echo "include \$$(GAMMADIR)/make/excludeSrc.make"; \ 6.282 + echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(COMPILER).make"; \ 6.283 + ) > $@ 6.284 + 6.285 +flags_vm.make: $(BUILDTREE_MAKE) ../shared_dirs.lst 6.286 + @echo Creating $@ ... 6.287 + $(QUIETLY) ( \ 6.288 + $(BUILDTREE_COMMENT); \ 6.289 + echo; \ 6.290 + echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(TARGET).make"; \ 6.291 + ) > $@ 6.292 + 6.293 +../shared_dirs.lst: $(BUILDTREE_MAKE) $(GAMMADIR)/src/share/vm 6.294 + @echo Creating directory list $@ 6.295 + $(QUIETLY) if [ -d $(HS_ALT_SRC)/share/vm ]; then \ 6.296 + find $(HS_ALT_SRC)/share/vm/* -prune \ 6.297 + -type d \! \( $(TOPLEVEL_EXCLUDE_DIRS) \) -exec find {} \ 6.298 + \( $(ALWAYS_EXCLUDE_DIRS) \) -prune -o -type d -print \; > $@; \ 6.299 + fi; 6.300 + $(QUIETLY) find $(HS_COMMON_SRC)/share/vm/* -prune \ 6.301 + -type d \! \( $(TOPLEVEL_EXCLUDE_DIRS) \) -exec find {} \ 6.302 + \( $(ALWAYS_EXCLUDE_DIRS) \) -prune -o -type d -print \; >> $@ 6.303 + 6.304 +Makefile: $(BUILDTREE_MAKE) 6.305 + @echo Creating $@ ... 6.306 + $(QUIETLY) ( \ 6.307 + $(BUILDTREE_COMMENT); \ 6.308 + echo; \ 6.309 + echo include flags.make; \ 6.310 + echo; \ 6.311 + echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/top.make"; \ 6.312 + ) > $@ 6.313 + 6.314 +vm.make: $(BUILDTREE_MAKE) 6.315 + @echo Creating $@ ... 6.316 + $(QUIETLY) ( \ 6.317 + $(BUILDTREE_COMMENT); \ 6.318 + echo; \ 6.319 + echo include flags.make; \ 6.320 + echo include flags_vm.make; \ 6.321 + echo; \ 6.322 + echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \ 6.323 + ) > $@ 6.324 + 6.325 +adlc.make: $(BUILDTREE_MAKE) 6.326 + @echo Creating $@ ... 6.327 + $(QUIETLY) ( \ 6.328 + $(BUILDTREE_COMMENT); \ 6.329 + echo; \ 6.330 + echo include flags.make; \ 6.331 + echo; \ 6.332 + echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \ 6.333 + ) > $@ 6.334 + 6.335 +jvmti.make: $(BUILDTREE_MAKE) 6.336 + @echo Creating $@ ... 6.337 + $(QUIETLY) ( \ 6.338 + $(BUILDTREE_COMMENT); \ 6.339 + echo; \ 6.340 + echo include flags.make; \ 6.341 + echo; \ 6.342 + echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \ 6.343 + ) > $@ 6.344 + 6.345 +trace.make: $(BUILDTREE_MAKE) 6.346 + @echo Creating $@ ... 6.347 + $(QUIETLY) ( \ 6.348 + $(BUILDTREE_COMMENT); \ 6.349 + echo; \ 6.350 + echo include flags.make; \ 6.351 + echo; \ 6.352 + echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \ 6.353 + ) > $@ 6.354 + 6.355 +sa.make: $(BUILDTREE_MAKE) 6.356 + @echo Creating $@ ... 6.357 + $(QUIETLY) ( \ 6.358 + $(BUILDTREE_COMMENT); \ 6.359 + echo; \ 6.360 + echo include flags.make; \ 6.361 + echo; \ 6.362 + echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \ 6.363 + ) > $@ 6.364 + 6.365 +FORCE: 6.366 + 6.367 +.PHONY: all FORCE
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 7.2 +++ b/make/aix/makefiles/compiler2.make Fri Sep 06 20:08:29 2013 +0200 7.3 @@ -0,0 +1,32 @@ 7.4 +# 7.5 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 7.6 +# Copyright 2012, 2013 SAP AG. All rights reserved. 7.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 7.8 +# 7.9 +# This code is free software; you can redistribute it and/or modify it 7.10 +# under the terms of the GNU General Public License version 2 only, as 7.11 +# published by the Free Software Foundation. 7.12 +# 7.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 7.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 7.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 7.16 +# version 2 for more details (a copy is included in the LICENSE file that 7.17 +# accompanied this code). 7.18 +# 7.19 +# You should have received a copy of the GNU General Public License version 7.20 +# 2 along with this work; if not, write to the Free Software Foundation, 7.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 7.22 +# 7.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 7.24 +# or visit www.oracle.com if you need additional information or have any 7.25 +# questions. 7.26 +# 7.27 +# 7.28 + 7.29 +# Sets make macros for making server version of VM 7.30 + 7.31 +TYPE=COMPILER2 7.32 + 7.33 +VM_SUBDIR = server 7.34 + 7.35 +CFLAGS += -DCOMPILER2
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 8.2 +++ b/make/aix/makefiles/core.make Fri Sep 06 20:08:29 2013 +0200 8.3 @@ -0,0 +1,33 @@ 8.4 +# 8.5 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 8.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 8.7 +# 8.8 +# This code is free software; you can redistribute it and/or modify it 8.9 +# under the terms of the GNU General Public License version 2 only, as 8.10 +# published by the Free Software Foundation. 8.11 +# 8.12 +# This code is distributed in the hope that it will be useful, but WITHOUT 8.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 8.14 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 8.15 +# version 2 for more details (a copy is included in the LICENSE file that 8.16 +# accompanied this code). 8.17 +# 8.18 +# You should have received a copy of the GNU General Public License version 8.19 +# 2 along with this work; if not, write to the Free Software Foundation, 8.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 8.21 +# 8.22 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 8.23 +# or visit www.oracle.com if you need additional information or have any 8.24 +# questions. 8.25 +# 8.26 +# 8.27 + 8.28 +# Sets make macros for making core version of VM 8.29 + 8.30 +# Select which files to use (in top.make) 8.31 +TYPE=CORE 8.32 + 8.33 +# There is no "core" directory in JDK. Install core build in server directory. 8.34 +VM_SUBDIR = server 8.35 + 8.36 +# Note: macros.hpp defines CORE
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 9.2 +++ b/make/aix/makefiles/debug.make Fri Sep 06 20:08:29 2013 +0200 9.3 @@ -0,0 +1,41 @@ 9.4 +# 9.5 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 9.6 +# Copyright 2012, 2013 SAP AG. All rights reserved. 9.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 9.8 +# 9.9 +# This code is free software; you can redistribute it and/or modify it 9.10 +# under the terms of the GNU General Public License version 2 only, as 9.11 +# published by the Free Software Foundation. 9.12 +# 9.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 9.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 9.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 9.16 +# version 2 for more details (a copy is included in the LICENSE file that 9.17 +# accompanied this code). 9.18 +# 9.19 +# You should have received a copy of the GNU General Public License version 9.20 +# 2 along with this work; if not, write to the Free Software Foundation, 9.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 9.22 +# 9.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 9.24 +# or visit www.oracle.com if you need additional information or have any 9.25 +# questions. 9.26 +# 9.27 +# 9.28 + 9.29 +# Sets make macros for making debug version of VM 9.30 + 9.31 +# Compiler specific DEBUG_CFLAGS are passed in from gcc.make, sparcWorks.make 9.32 +DEBUG_CFLAGS/DEFAULT= $(DEBUG_CFLAGS) 9.33 +DEBUG_CFLAGS/BYFILE = $(DEBUG_CFLAGS/$@)$(DEBUG_CFLAGS/DEFAULT$(DEBUG_CFLAGS/$@)) 9.34 +CFLAGS += $(DEBUG_CFLAGS/BYFILE) 9.35 + 9.36 +# Set the environment variable HOTSPARC_GENERIC to "true" 9.37 +# to inhibit the effect of the previous line on CFLAGS. 9.38 + 9.39 +# Linker mapfile 9.40 +MAPFILE = $(GAMMADIR)/make/aix/makefiles/mapfile-vers-debug 9.41 + 9.42 +VERSION = debug 9.43 +SYSDEFS += -DASSERT -DDEBUG 9.44 +PICFLAGS = DEFAULT
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 10.2 +++ b/make/aix/makefiles/defs.make Fri Sep 06 20:08:29 2013 +0200 10.3 @@ -0,0 +1,231 @@ 10.4 +# 10.5 +# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. 10.6 +# Copyright 2012, 2013 SAP AG. All rights reserved. 10.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 10.8 +# 10.9 +# This code is free software; you can redistribute it and/or modify it 10.10 +# under the terms of the GNU General Public License version 2 only, as 10.11 +# published by the Free Software Foundation. 10.12 +# 10.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 10.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 10.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 10.16 +# version 2 for more details (a copy is included in the LICENSE file that 10.17 +# accompanied this code). 10.18 +# 10.19 +# You should have received a copy of the GNU General Public License version 10.20 +# 2 along with this work; if not, write to the Free Software Foundation, 10.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 10.22 +# 10.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 10.24 +# or visit www.oracle.com if you need additional information or have any 10.25 +# questions. 10.26 +# 10.27 +# 10.28 + 10.29 +# The common definitions for hotspot AIX builds. 10.30 +# Include the top level defs.make under make directory instead of this one. 10.31 +# This file is included into make/defs.make. 10.32 + 10.33 +SLASH_JAVA ?= /java 10.34 + 10.35 +# Need PLATFORM (os-arch combo names) for jdk and hotspot, plus libarch name 10.36 +#ARCH:=$(shell uname -m) 10.37 +PATH_SEP = : 10.38 +ifeq ($(LP64), 1) 10.39 + ARCH_DATA_MODEL ?= 64 10.40 +else 10.41 + ARCH_DATA_MODEL ?= 32 10.42 +endif 10.43 + 10.44 +ifeq ($(ARCH_DATA_MODEL), 64) 10.45 + ARCH = ppc64 10.46 +else 10.47 + ARCH = ppc 10.48 +endif 10.49 + 10.50 +# PPC 10.51 +ifeq ($(ARCH), ppc) 10.52 + #ARCH_DATA_MODEL = 32 10.53 + PLATFORM = aix-ppc 10.54 + VM_PLATFORM = aix_ppc 10.55 + HS_ARCH = ppc 10.56 +endif 10.57 + 10.58 +# PPC64 10.59 +ifeq ($(ARCH), ppc64) 10.60 + #ARCH_DATA_MODEL = 64 10.61 + MAKE_ARGS += LP64=1 10.62 + PLATFORM = aix-ppc64 10.63 + VM_PLATFORM = aix_ppc64 10.64 + HS_ARCH = ppc 10.65 +endif 10.66 + 10.67 +# On 32 bit aix we build server and client, on 64 bit just server. 10.68 +ifeq ($(JVM_VARIANTS),) 10.69 + ifeq ($(ARCH_DATA_MODEL), 32) 10.70 + JVM_VARIANTS:=client,server 10.71 + JVM_VARIANT_CLIENT:=true 10.72 + JVM_VARIANT_SERVER:=true 10.73 + else 10.74 + JVM_VARIANTS:=server 10.75 + JVM_VARIANT_SERVER:=true 10.76 + endif 10.77 +endif 10.78 + 10.79 +# determine if HotSpot is being built in JDK6 or earlier version 10.80 +JDK6_OR_EARLIER=0 10.81 +ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1" 10.82 + # if the longer variable names (newer build style) are set, then check those 10.83 + ifeq "$(shell expr \( $(JDK_MAJOR_VERSION) = 1 \& $(JDK_MINOR_VERSION) \< 7 \))" "1" 10.84 + JDK6_OR_EARLIER=1 10.85 + endif 10.86 +else 10.87 + # the longer variables aren't set so check the shorter variable names 10.88 + ifeq "$(shell expr \( '$(JDK_MAJOR_VER)' = 1 \& '$(JDK_MINOR_VER)' \< 7 \))" "1" 10.89 + JDK6_OR_EARLIER=1 10.90 + endif 10.91 +endif 10.92 + 10.93 +ifeq ($(JDK6_OR_EARLIER),0) 10.94 + # Full Debug Symbols is supported on JDK7 or newer. 10.95 + # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product 10.96 + # builds is enabled with debug info files ZIP'ed to save space. For 10.97 + # BUILD_FLAVOR != product builds, FDS is always enabled, after all a 10.98 + # debug build without debug info isn't very useful. 10.99 + # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled. 10.100 + # 10.101 + # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be 10.102 + # disabled for a BUILD_FLAVOR == product build. 10.103 + # 10.104 + # Note: Use of a different variable name for the FDS override option 10.105 + # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS 10.106 + # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass 10.107 + # in options via environment variables, use of distinct variables 10.108 + # prevents strange behaviours. For example, in a BUILD_FLAVOR != 10.109 + # product build, the FULL_DEBUG_SYMBOLS environment variable will be 10.110 + # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If 10.111 + # the same variable name is used, then different values can be picked 10.112 + # up by different parts of the build. Just to be clear, we only need 10.113 + # two variable names because the incoming option value can be 10.114 + # overridden in some situations, e.g., a BUILD_FLAVOR != product 10.115 + # build. 10.116 + 10.117 + # Due to the multiple sub-make processes that occur this logic gets 10.118 + # executed multiple times. We reduce the noise by at least checking that 10.119 + # BUILD_FLAVOR has been set. 10.120 + ifneq ($(BUILD_FLAVOR),) 10.121 + ifeq ($(BUILD_FLAVOR), product) 10.122 + FULL_DEBUG_SYMBOLS ?= 1 10.123 + ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS) 10.124 + else 10.125 + # debug variants always get Full Debug Symbols (if available) 10.126 + ENABLE_FULL_DEBUG_SYMBOLS = 1 10.127 + endif 10.128 + _JUNK_ := $(shell \ 10.129 + echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") 10.130 + # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later 10.131 + 10.132 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 10.133 + # Default OBJCOPY comes from GNU Binutils on Linux 10.134 + ifeq ($(CROSS_COMPILE_ARCH),) 10.135 + DEF_OBJCOPY=/usr/bin/objcopy 10.136 + else 10.137 + # Assume objcopy is part of the cross-compilation toolset 10.138 + ifneq ($(ALT_COMPILER_PATH),) 10.139 + DEF_OBJCOPY=$(ALT_COMPILER_PATH)/objcopy 10.140 + endif 10.141 + endif 10.142 + OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) 10.143 + ifneq ($(ALT_OBJCOPY),) 10.144 + _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") 10.145 + OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) 10.146 + endif 10.147 + 10.148 + ifeq ($(OBJCOPY),) 10.149 + _JUNK_ := $(shell \ 10.150 + echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files. You may need to set ALT_OBJCOPY.") 10.151 + ENABLE_FULL_DEBUG_SYMBOLS=0 10.152 + _JUNK_ := $(shell \ 10.153 + echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") 10.154 + else 10.155 + _JUNK_ := $(shell \ 10.156 + echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") 10.157 + 10.158 + # Library stripping policies for .debuginfo configs: 10.159 + # all_strip - strips everything from the library 10.160 + # min_strip - strips most stuff from the library; leaves minimum symbols 10.161 + # no_strip - does not strip the library at all 10.162 + # 10.163 + # Oracle security policy requires "all_strip". A waiver was granted on 10.164 + # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE. 10.165 + # 10.166 + # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled. 10.167 + # 10.168 + STRIP_POLICY ?= min_strip 10.169 + 10.170 + _JUNK_ := $(shell \ 10.171 + echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") 10.172 + 10.173 + ZIP_DEBUGINFO_FILES ?= 1 10.174 + 10.175 + _JUNK_ := $(shell \ 10.176 + echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") 10.177 + endif 10.178 + endif # ENABLE_FULL_DEBUG_SYMBOLS=1 10.179 + endif # BUILD_FLAVOR 10.180 +endif # JDK_6_OR_EARLIER 10.181 + 10.182 +# unused JDK_INCLUDE_SUBDIR=aix 10.183 + 10.184 +# Library suffix 10.185 +LIBRARY_SUFFIX=so 10.186 + 10.187 +EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html 10.188 + 10.189 +# client and server subdirectories have symbolic links to ../libjsig.so 10.190 +EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX) 10.191 +#ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 10.192 +# ifeq ($(ZIP_DEBUGINFO_FILES),1) 10.193 +# EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz 10.194 +# else 10.195 +# EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo 10.196 +# endif 10.197 +#endif 10.198 +EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server 10.199 +EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client 10.200 +EXPORT_MINIMAL_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/minimal 10.201 + 10.202 +ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK) $(JVM_VARIANT_CORE)), true) 10.203 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt 10.204 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX) 10.205 +# ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 10.206 +# ifeq ($(ZIP_DEBUGINFO_FILES),1) 10.207 +# EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz 10.208 +# else 10.209 +# EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo 10.210 +# endif 10.211 +# endif 10.212 +endif 10.213 + 10.214 +ifeq ($(JVM_VARIANT_CLIENT),true) 10.215 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt 10.216 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) 10.217 +# ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 10.218 +# ifeq ($(ZIP_DEBUGINFO_FILES),1) 10.219 +# EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz 10.220 +# else 10.221 +# EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo 10.222 +# endif 10.223 +# endif 10.224 +endif 10.225 + 10.226 +# Serviceability Binaries 10.227 +# No SA Support for PPC or zero 10.228 +ADD_SA_BINARIES/ppc = 10.229 +ADD_SA_BINARIES/ppc64 = 10.230 +ADD_SA_BINARIES/zero = 10.231 + 10.232 +EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH)) 10.233 + 10.234 +
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 11.2 +++ b/make/aix/makefiles/dtrace.make Fri Sep 06 20:08:29 2013 +0200 11.3 @@ -0,0 +1,27 @@ 11.4 +# 11.5 +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. 11.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 11.7 +# 11.8 +# This code is free software; you can redistribute it and/or modify it 11.9 +# under the terms of the GNU General Public License version 2 only, as 11.10 +# published by the Free Software Foundation. 11.11 +# 11.12 +# This code is distributed in the hope that it will be useful, but WITHOUT 11.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11.14 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 11.15 +# version 2 for more details (a copy is included in the LICENSE file that 11.16 +# accompanied this code). 11.17 +# 11.18 +# You should have received a copy of the GNU General Public License version 11.19 +# 2 along with this work; if not, write to the Free Software Foundation, 11.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 11.21 +# 11.22 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 11.23 +# or visit www.oracle.com if you need additional information or have any 11.24 +# questions. 11.25 +# 11.26 +# 11.27 + 11.28 +# Linux does not build jvm_db 11.29 +LIBJVM_DB = 11.30 +
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 12.2 +++ b/make/aix/makefiles/fastdebug.make Fri Sep 06 20:08:29 2013 +0200 12.3 @@ -0,0 +1,73 @@ 12.4 +# 12.5 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 12.6 +# Copyright 2012, 2013 SAP AG. All rights reserved. 12.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 12.8 +# 12.9 +# This code is free software; you can redistribute it and/or modify it 12.10 +# under the terms of the GNU General Public License version 2 only, as 12.11 +# published by the Free Software Foundation. 12.12 +# 12.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 12.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12.16 +# version 2 for more details (a copy is included in the LICENSE file that 12.17 +# accompanied this code). 12.18 +# 12.19 +# You should have received a copy of the GNU General Public License version 12.20 +# 2 along with this work; if not, write to the Free Software Foundation, 12.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 12.22 +# 12.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 12.24 +# or visit www.oracle.com if you need additional information or have any 12.25 +# questions. 12.26 +# 12.27 +# 12.28 + 12.29 +# Sets make macros for making debug version of VM 12.30 + 12.31 +# Compiler specific OPT_CFLAGS are passed in from gcc.make, sparcWorks.make 12.32 +# Pare down optimization to -O2 if xlCV10.1 is in use. 12.33 +OPT_CFLAGS/DEFAULT= $(OPT_CFLAGS) $(QV10_OPT_CONSERVATIVE) 12.34 +OPT_CFLAGS/BYFILE = $(OPT_CFLAGS/$@)$(OPT_CFLAGS/DEFAULT$(OPT_CFLAGS/$@)) 12.35 + 12.36 +# (OPT_CFLAGS/SLOWER is also available, to alter compilation of buggy files) 12.37 + 12.38 +ifeq ($(BUILDARCH), ia64) 12.39 + # Bug in GCC, causes hang. -O1 will override the -O3 specified earlier 12.40 + OPT_CFLAGS/callGenerator.o += -O1 12.41 + OPT_CFLAGS/ciTypeFlow.o += -O1 12.42 + OPT_CFLAGS/compile.o += -O1 12.43 + OPT_CFLAGS/concurrentMarkSweepGeneration.o += -O1 12.44 + OPT_CFLAGS/doCall.o += -O1 12.45 + OPT_CFLAGS/generateOopMap.o += -O1 12.46 + OPT_CFLAGS/generateOptoStub.o += -O1 12.47 + OPT_CFLAGS/graphKit.o += -O1 12.48 + OPT_CFLAGS/instanceKlass.o += -O1 12.49 + OPT_CFLAGS/interpreterRT_ia64.o += -O1 12.50 + OPT_CFLAGS/output.o += -O1 12.51 + OPT_CFLAGS/parse1.o += -O1 12.52 + OPT_CFLAGS/runtime.o += -O1 12.53 + OPT_CFLAGS/synchronizer.o += -O1 12.54 +endif 12.55 + 12.56 + 12.57 +# If you set HOTSPARC_GENERIC=yes, you disable all OPT_CFLAGS settings 12.58 +CFLAGS$(HOTSPARC_GENERIC) += $(OPT_CFLAGS/BYFILE) 12.59 + 12.60 +# Set the environment variable HOTSPARC_GENERIC to "true" 12.61 +# to inhibit the effect of the previous line on CFLAGS. 12.62 + 12.63 +# Linker mapfile 12.64 +MAPFILE = $(GAMMADIR)/make/aix/makefiles/mapfile-vers-debug 12.65 + 12.66 +# xlc 10.1 parameters for ipa linkage. 12.67 +# - remove ipa linkage altogether. Does not seem to benefit performance, 12.68 +# but increases code footprint. 12.69 +# - this is a debug build in the end. Extra effort for ipa linkage is thus 12.70 +# not justified. 12.71 +LFLAGS_QIPA= 12.72 + 12.73 +G_SUFFIX = _g 12.74 +VERSION = optimized 12.75 +SYSDEFS += -DASSERT -DFASTDEBUG 12.76 +PICFLAGS = DEFAULT
13.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 13.2 +++ b/make/aix/makefiles/jsig.make Fri Sep 06 20:08:29 2013 +0200 13.3 @@ -0,0 +1,87 @@ 13.4 +# 13.5 +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. 13.6 +# Copyright 2012, 2013 SAP AG. All rights reserved. 13.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 13.8 +# 13.9 +# This code is free software; you can redistribute it and/or modify it 13.10 +# under the terms of the GNU General Public License version 2 only, as 13.11 +# published by the Free Software Foundation. 13.12 +# 13.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 13.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13.16 +# version 2 for more details (a copy is included in the LICENSE file that 13.17 +# accompanied this code). 13.18 +# 13.19 +# You should have received a copy of the GNU General Public License version 13.20 +# 2 along with this work; if not, write to the Free Software Foundation, 13.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 13.22 +# 13.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 13.24 +# or visit www.oracle.com if you need additional information or have any 13.25 +# questions. 13.26 +# 13.27 +# 13.28 + 13.29 +# Rules to build signal interposition library, used by vm.make 13.30 + 13.31 +# libjsig.so: signal interposition library 13.32 +JSIG = jsig 13.33 +LIBJSIG = lib$(JSIG).so 13.34 + 13.35 +LIBJSIG_DEBUGINFO = lib$(JSIG).debuginfo 13.36 +LIBJSIG_DIZ = lib$(JSIG).diz 13.37 + 13.38 +JSIGSRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/vm 13.39 + 13.40 +DEST_JSIG = $(JDK_LIBDIR)/$(LIBJSIG) 13.41 +DEST_JSIG_DEBUGINFO = $(JDK_LIBDIR)/$(LIBJSIG_DEBUGINFO) 13.42 +DEST_JSIG_DIZ = $(JDK_LIBDIR)/$(LIBJSIG_DIZ) 13.43 + 13.44 +LIBJSIG_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jsig 13.45 + 13.46 +# On Linux we really dont want a mapfile, as this library is small 13.47 +# and preloaded using LD_PRELOAD, making functions private will 13.48 +# cause problems with interposing. See CR: 6466665 13.49 +# LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE)) 13.50 + 13.51 +LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) 13.52 + 13.53 +LFLAGS_JSIG += $(BIN_UTILS) 13.54 + 13.55 +# DEBUG_BINARIES overrides everything, use full -g debug information 13.56 +ifeq ($(DEBUG_BINARIES), true) 13.57 + JSIG_DEBUG_CFLAGS = -g 13.58 +endif 13.59 + 13.60 +$(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE) 13.61 + @echo Making signal interposition lib... 13.62 + $(QUIETLY) $(CXX) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \ 13.63 + $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $@ $< -ldl 13.64 + 13.65 +#ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 13.66 +# $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO) 13.67 +# $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@ 13.68 +# ifeq ($(STRIP_POLICY),all_strip) 13.69 +# $(QUIETLY) $(STRIP) $@ 13.70 +# else 13.71 +# ifeq ($(STRIP_POLICY),min_strip) 13.72 +# $(QUIETLY) $(STRIP) -g $@ 13.73 +# # implied else here is no stripping at all 13.74 +# endif 13.75 +# endif 13.76 +# ifeq ($(ZIP_DEBUGINFO_FILES),1) 13.77 +# $(ZIPEXE) -q -y $(LIBJSIG_DIZ) $(LIBJSIG_DEBUGINFO) 13.78 +# $(RM) $(LIBJSIG_DEBUGINFO) 13.79 +# endif 13.80 +#endif 13.81 + 13.82 +install_jsig: $(LIBJSIG) 13.83 + @echo "Copying $(LIBJSIG) to $(DEST_JSIG)" 13.84 + $(QUIETLY) test -f $(LIBJSIG_DEBUGINFO) && \ 13.85 + cp -f $(LIBJSIG_DEBUGINFO) $(DEST_JSIG_DEBUGINFO) 13.86 + $(QUIETLY) test -f $(LIBJSIG_DIZ) && \ 13.87 + cp -f $(LIBJSIG_DIZ) $(DEST_JSIG_DIZ) 13.88 + $(QUIETLY) cp -f $(LIBJSIG) $(DEST_JSIG) && echo "Done" 13.89 + 13.90 +.PHONY: install_jsig
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 14.2 +++ b/make/aix/makefiles/jvmti.make Fri Sep 06 20:08:29 2013 +0200 14.3 @@ -0,0 +1,118 @@ 14.4 +# 14.5 +# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. 14.6 +# Copyright 2012, 2013 SAP AG. All rights reserved. 14.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 14.8 +# 14.9 +# This code is free software; you can redistribute it and/or modify it 14.10 +# under the terms of the GNU General Public License version 2 only, as 14.11 +# published by the Free Software Foundation. 14.12 +# 14.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 14.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14.16 +# version 2 for more details (a copy is included in the LICENSE file that 14.17 +# accompanied this code). 14.18 +# 14.19 +# You should have received a copy of the GNU General Public License version 14.20 +# 2 along with this work; if not, write to the Free Software Foundation, 14.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 14.22 +# 14.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 14.24 +# or visit www.oracle.com if you need additional information or have any 14.25 +# questions. 14.26 +# 14.27 +# 14.28 + 14.29 +# This makefile (jvmti.make) is included from the jvmti.make in the 14.30 +# build directories. 14.31 +# 14.32 +# It knows how to build and run the tools to generate jvmti. 14.33 + 14.34 +include $(GAMMADIR)/make/aix/makefiles/rules.make 14.35 + 14.36 +# ######################################################################### 14.37 + 14.38 +TOPDIR = $(shell echo `pwd`) 14.39 +GENERATED = $(TOPDIR)/../generated 14.40 +JvmtiOutDir = $(GENERATED)/jvmtifiles 14.41 + 14.42 +JvmtiSrcDir = $(GAMMADIR)/src/share/vm/prims 14.43 +InterpreterSrcDir = $(GAMMADIR)/src/share/vm/interpreter 14.44 + 14.45 +# set VPATH so make knows where to look for source files 14.46 +Src_Dirs_V += $(JvmtiSrcDir) 14.47 +VPATH += $(Src_Dirs_V:%=%:) 14.48 + 14.49 +JvmtiGeneratedNames = \ 14.50 + jvmtiEnv.hpp \ 14.51 + jvmtiEnter.cpp \ 14.52 + jvmtiEnterTrace.cpp \ 14.53 + jvmtiEnvRecommended.cpp \ 14.54 + bytecodeInterpreterWithChecks.cpp \ 14.55 + jvmti.h \ 14.56 + 14.57 +JvmtiEnvFillSource = $(JvmtiSrcDir)/jvmtiEnvFill.java 14.58 +JvmtiEnvFillClass = $(JvmtiOutDir)/jvmtiEnvFill.class 14.59 + 14.60 +JvmtiGenSource = $(JvmtiSrcDir)/jvmtiGen.java 14.61 +JvmtiGenClass = $(JvmtiOutDir)/jvmtiGen.class 14.62 + 14.63 +JvmtiGeneratedFiles = $(JvmtiGeneratedNames:%=$(JvmtiOutDir)/%) 14.64 + 14.65 +XSLT = $(QUIETLY) $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiGen 14.66 + 14.67 +.PHONY: all jvmtidocs clean cleanall 14.68 + 14.69 +# ######################################################################### 14.70 + 14.71 +all: $(JvmtiGeneratedFiles) 14.72 + 14.73 +both = $(JvmtiGenClass) $(JvmtiSrcDir)/jvmti.xml $(JvmtiSrcDir)/jvmtiLib.xsl 14.74 + 14.75 +$(JvmtiGenClass): $(JvmtiGenSource) 14.76 + $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiGenSource) 14.77 + 14.78 +$(JvmtiEnvFillClass): $(JvmtiEnvFillSource) 14.79 + $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiEnvFillSource) 14.80 + 14.81 +$(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl 14.82 + @echo Generating $@ 14.83 + $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnter.xsl -OUT $(JvmtiOutDir)/jvmtiEnter.cpp -PARAM interface jvmti 14.84 + 14.85 +$(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp: $(JvmtiGenClass) $(InterpreterSrcDir)/bytecodeInterpreter.cpp $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl 14.86 + @echo Generating $@ 14.87 + $(XSLT) -IN $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml -XSL $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl -OUT $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp 14.88 + 14.89 +$(JvmtiOutDir)/jvmtiEnterTrace.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl 14.90 + @echo Generating $@ 14.91 + $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnter.xsl -OUT $(JvmtiOutDir)/jvmtiEnterTrace.cpp -PARAM interface jvmti -PARAM trace Trace 14.92 + 14.93 +$(JvmtiOutDir)/jvmtiEnvRecommended.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnv.xsl $(JvmtiSrcDir)/jvmtiEnv.cpp $(JvmtiEnvFillClass) 14.94 + @echo Generating $@ 14.95 + $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnv.xsl -OUT $(JvmtiOutDir)/jvmtiEnvStub.cpp 14.96 + $(QUIETLY) $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiEnvFill $(JvmtiSrcDir)/jvmtiEnv.cpp $(JvmtiOutDir)/jvmtiEnvStub.cpp $(JvmtiOutDir)/jvmtiEnvRecommended.cpp 14.97 + 14.98 +$(JvmtiOutDir)/jvmtiEnv.hpp: $(both) $(JvmtiSrcDir)/jvmtiHpp.xsl 14.99 + @echo Generating $@ 14.100 + $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiHpp.xsl -OUT $(JvmtiOutDir)/jvmtiEnv.hpp 14.101 + 14.102 +$(JvmtiOutDir)/jvmti.h: $(both) $(JvmtiSrcDir)/jvmtiH.xsl 14.103 + @echo Generating $@ 14.104 + $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiH.xsl -OUT $(JvmtiOutDir)/jvmti.h 14.105 + 14.106 +jvmtidocs: $(JvmtiOutDir)/jvmti.html 14.107 + 14.108 +$(JvmtiOutDir)/jvmti.html: $(both) $(JvmtiSrcDir)/jvmti.xsl 14.109 + @echo Generating $@ 14.110 + $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmti.xsl -OUT $(JvmtiOutDir)/jvmti.html 14.111 + 14.112 +# ######################################################################### 14.113 + 14.114 +clean : 14.115 + rm $(JvmtiGenClass) $(JvmtiEnvFillClass) $(JvmtiGeneratedFiles) 14.116 + 14.117 +cleanall : 14.118 + rm $(JvmtiGenClass) $(JvmtiEnvFillClass) $(JvmtiGeneratedFiles) 14.119 + 14.120 +# ######################################################################### 14.121 +
15.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 15.2 +++ b/make/aix/makefiles/mapfile-vers-debug Fri Sep 06 20:08:29 2013 +0200 15.3 @@ -0,0 +1,274 @@ 15.4 +# 15.5 +# Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. 15.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 15.7 +# 15.8 +# This code is free software; you can redistribute it and/or modify it 15.9 +# under the terms of the GNU General Public License version 2 only, as 15.10 +# published by the Free Software Foundation. 15.11 +# 15.12 +# This code is distributed in the hope that it will be useful, but WITHOUT 15.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 15.14 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15.15 +# version 2 for more details (a copy is included in the LICENSE file that 15.16 +# accompanied this code). 15.17 +# 15.18 +# You should have received a copy of the GNU General Public License version 15.19 +# 2 along with this work; if not, write to the Free Software Foundation, 15.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 15.21 +# 15.22 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 15.23 +# or visit www.oracle.com if you need additional information or have any 15.24 +# questions. 15.25 +# 15.26 +# 15.27 + 15.28 +# Define public interface. 15.29 + 15.30 +SUNWprivate_1.1 { 15.31 + global: 15.32 + # JNI 15.33 + JNI_CreateJavaVM; 15.34 + JNI_GetCreatedJavaVMs; 15.35 + JNI_GetDefaultJavaVMInitArgs; 15.36 + 15.37 + # JVM 15.38 + JVM_Accept; 15.39 + JVM_ActiveProcessorCount; 15.40 + JVM_AllocateNewArray; 15.41 + JVM_AllocateNewObject; 15.42 + JVM_ArrayCopy; 15.43 + JVM_AssertionStatusDirectives; 15.44 + JVM_Available; 15.45 + JVM_Bind; 15.46 + JVM_ClassDepth; 15.47 + JVM_ClassLoaderDepth; 15.48 + JVM_Clone; 15.49 + JVM_Close; 15.50 + JVM_CX8Field; 15.51 + JVM_CompileClass; 15.52 + JVM_CompileClasses; 15.53 + JVM_CompilerCommand; 15.54 + JVM_Connect; 15.55 + JVM_ConstantPoolGetClassAt; 15.56 + JVM_ConstantPoolGetClassAtIfLoaded; 15.57 + JVM_ConstantPoolGetDoubleAt; 15.58 + JVM_ConstantPoolGetFieldAt; 15.59 + JVM_ConstantPoolGetFieldAtIfLoaded; 15.60 + JVM_ConstantPoolGetFloatAt; 15.61 + JVM_ConstantPoolGetIntAt; 15.62 + JVM_ConstantPoolGetLongAt; 15.63 + JVM_ConstantPoolGetMethodAt; 15.64 + JVM_ConstantPoolGetMethodAtIfLoaded; 15.65 + JVM_ConstantPoolGetMemberRefInfoAt; 15.66 + JVM_ConstantPoolGetSize; 15.67 + JVM_ConstantPoolGetStringAt; 15.68 + JVM_ConstantPoolGetUTF8At; 15.69 + JVM_CountStackFrames; 15.70 + JVM_CurrentClassLoader; 15.71 + JVM_CurrentLoadedClass; 15.72 + JVM_CurrentThread; 15.73 + JVM_CurrentTimeMillis; 15.74 + JVM_DefineClass; 15.75 + JVM_DefineClassWithSource; 15.76 + JVM_DefineClassWithSourceCond; 15.77 + JVM_DesiredAssertionStatus; 15.78 + JVM_DisableCompiler; 15.79 + JVM_DoPrivileged; 15.80 + JVM_DTraceGetVersion; 15.81 + JVM_DTraceActivate; 15.82 + JVM_DTraceIsProbeEnabled; 15.83 + JVM_DTraceIsSupported; 15.84 + JVM_DTraceDispose; 15.85 + JVM_DumpAllStacks; 15.86 + JVM_DumpThreads; 15.87 + JVM_EnableCompiler; 15.88 + JVM_Exit; 15.89 + JVM_FillInStackTrace; 15.90 + JVM_FindClassFromClass; 15.91 + JVM_FindClassFromClassLoader; 15.92 + JVM_FindClassFromBootLoader; 15.93 + JVM_FindLibraryEntry; 15.94 + JVM_FindLoadedClass; 15.95 + JVM_FindPrimitiveClass; 15.96 + JVM_FindSignal; 15.97 + JVM_FreeMemory; 15.98 + JVM_GC; 15.99 + JVM_GetAllThreads; 15.100 + JVM_GetArrayElement; 15.101 + JVM_GetArrayLength; 15.102 + JVM_GetCPClassNameUTF; 15.103 + JVM_GetCPFieldClassNameUTF; 15.104 + JVM_GetCPFieldModifiers; 15.105 + JVM_GetCPFieldNameUTF; 15.106 + JVM_GetCPFieldSignatureUTF; 15.107 + JVM_GetCPMethodClassNameUTF; 15.108 + JVM_GetCPMethodModifiers; 15.109 + JVM_GetCPMethodNameUTF; 15.110 + JVM_GetCPMethodSignatureUTF; 15.111 + JVM_GetCallerClass; 15.112 + JVM_GetClassAccessFlags; 15.113 + JVM_GetClassAnnotations; 15.114 + JVM_GetClassCPEntriesCount; 15.115 + JVM_GetClassCPTypes; 15.116 + JVM_GetClassConstantPool; 15.117 + JVM_GetClassContext; 15.118 + JVM_GetClassDeclaredConstructors; 15.119 + JVM_GetClassDeclaredFields; 15.120 + JVM_GetClassDeclaredMethods; 15.121 + JVM_GetClassFieldsCount; 15.122 + JVM_GetClassInterfaces; 15.123 + JVM_GetClassLoader; 15.124 + JVM_GetClassMethodsCount; 15.125 + JVM_GetClassModifiers; 15.126 + JVM_GetClassName; 15.127 + JVM_GetClassNameUTF; 15.128 + JVM_GetClassSignature; 15.129 + JVM_GetClassSigners; 15.130 + JVM_GetClassTypeAnnotations; 15.131 + JVM_GetComponentType; 15.132 + JVM_GetDeclaredClasses; 15.133 + JVM_GetDeclaringClass; 15.134 + JVM_GetEnclosingMethodInfo; 15.135 + JVM_GetFieldAnnotations; 15.136 + JVM_GetFieldIxModifiers; 15.137 + JVM_GetFieldTypeAnnotations; 15.138 + JVM_GetHostName; 15.139 + JVM_GetInheritedAccessControlContext; 15.140 + JVM_GetInterfaceVersion; 15.141 + JVM_GetLastErrorString; 15.142 + JVM_GetManagement; 15.143 + JVM_GetMethodAnnotations; 15.144 + JVM_GetMethodDefaultAnnotationValue; 15.145 + JVM_GetMethodIxArgsSize; 15.146 + JVM_GetMethodIxByteCode; 15.147 + JVM_GetMethodIxByteCodeLength; 15.148 + JVM_GetMethodIxExceptionIndexes; 15.149 + JVM_GetMethodIxExceptionTableEntry; 15.150 + JVM_GetMethodIxExceptionTableLength; 15.151 + JVM_GetMethodIxExceptionsCount; 15.152 + JVM_GetMethodIxLocalsCount; 15.153 + JVM_GetMethodIxMaxStack; 15.154 + JVM_GetMethodIxModifiers; 15.155 + JVM_GetMethodIxNameUTF; 15.156 + JVM_GetMethodIxSignatureUTF; 15.157 + JVM_GetMethodParameterAnnotations; 15.158 + JVM_GetMethodParameters; 15.159 + JVM_GetMethodTypeAnnotations; 15.160 + JVM_GetPrimitiveArrayElement; 15.161 + JVM_GetProtectionDomain; 15.162 + JVM_GetSockName; 15.163 + JVM_GetSockOpt; 15.164 + JVM_GetStackAccessControlContext; 15.165 + JVM_GetStackTraceDepth; 15.166 + JVM_GetStackTraceElement; 15.167 + JVM_GetSystemPackage; 15.168 + JVM_GetSystemPackages; 15.169 + JVM_GetThreadStateNames; 15.170 + JVM_GetThreadStateValues; 15.171 + JVM_GetVersionInfo; 15.172 + JVM_Halt; 15.173 + JVM_HoldsLock; 15.174 + JVM_IHashCode; 15.175 + JVM_InitAgentProperties; 15.176 + JVM_InitProperties; 15.177 + JVM_InitializeCompiler; 15.178 + JVM_InitializeSocketLibrary; 15.179 + JVM_InternString; 15.180 + JVM_Interrupt; 15.181 + JVM_InvokeMethod; 15.182 + JVM_IsArrayClass; 15.183 + JVM_IsConstructorIx; 15.184 + JVM_IsInterface; 15.185 + JVM_IsInterrupted; 15.186 + JVM_IsNaN; 15.187 + JVM_IsPrimitiveClass; 15.188 + JVM_IsSameClassPackage; 15.189 + JVM_IsSilentCompiler; 15.190 + JVM_IsSupportedJNIVersion; 15.191 + JVM_IsThreadAlive; 15.192 + JVM_IsVMGeneratedMethodIx; 15.193 + JVM_LatestUserDefinedLoader; 15.194 + JVM_Listen; 15.195 + JVM_LoadClass0; 15.196 + JVM_LoadLibrary; 15.197 + JVM_Lseek; 15.198 + JVM_MaxObjectInspectionAge; 15.199 + JVM_MaxMemory; 15.200 + JVM_MonitorNotify; 15.201 + JVM_MonitorNotifyAll; 15.202 + JVM_MonitorWait; 15.203 + JVM_NanoTime; 15.204 + JVM_NativePath; 15.205 + JVM_NewArray; 15.206 + JVM_NewInstanceFromConstructor; 15.207 + JVM_NewMultiArray; 15.208 + JVM_OnExit; 15.209 + JVM_Open; 15.210 + JVM_RaiseSignal; 15.211 + JVM_RawMonitorCreate; 15.212 + JVM_RawMonitorDestroy; 15.213 + JVM_RawMonitorEnter; 15.214 + JVM_RawMonitorExit; 15.215 + JVM_Read; 15.216 + JVM_Recv; 15.217 + JVM_RecvFrom; 15.218 + JVM_RegisterSignal; 15.219 + JVM_ReleaseUTF; 15.220 + JVM_ResolveClass; 15.221 + JVM_ResumeThread; 15.222 + JVM_Send; 15.223 + JVM_SendTo; 15.224 + JVM_SetArrayElement; 15.225 + JVM_SetClassSigners; 15.226 + JVM_SetLength; 15.227 + JVM_SetNativeThreadName; 15.228 + JVM_SetPrimitiveArrayElement; 15.229 + JVM_SetProtectionDomain; 15.230 + JVM_SetSockOpt; 15.231 + JVM_SetThreadPriority; 15.232 + JVM_Sleep; 15.233 + JVM_Socket; 15.234 + JVM_SocketAvailable; 15.235 + JVM_SocketClose; 15.236 + JVM_SocketShutdown; 15.237 + JVM_StartThread; 15.238 + JVM_StopThread; 15.239 + JVM_SuspendThread; 15.240 + JVM_SupportsCX8; 15.241 + JVM_Sync; 15.242 + JVM_Timeout; 15.243 + JVM_TotalMemory; 15.244 + JVM_TraceInstructions; 15.245 + JVM_TraceMethodCalls; 15.246 + JVM_UnloadLibrary; 15.247 + JVM_Write; 15.248 + JVM_Yield; 15.249 + JVM_handle_linux_signal; 15.250 + 15.251 + # debug JVM 15.252 + JVM_AccessVMBooleanFlag; 15.253 + JVM_AccessVMIntFlag; 15.254 + JVM_VMBreakPoint; 15.255 + 15.256 + # miscellaneous functions 15.257 + jio_fprintf; 15.258 + jio_printf; 15.259 + jio_snprintf; 15.260 + jio_vfprintf; 15.261 + jio_vsnprintf; 15.262 + fork1; 15.263 + numa_warn; 15.264 + numa_error; 15.265 + 15.266 + # Needed because there is no JVM interface for this. 15.267 + sysThreadAvailableStackWithSlack; 15.268 + 15.269 + # This is for Forte Analyzer profiling support. 15.270 + AsyncGetCallTrace; 15.271 + 15.272 + # INSERT VTABLE SYMBOLS HERE 15.273 + 15.274 + local: 15.275 + *; 15.276 +}; 15.277 +
16.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 16.2 +++ b/make/aix/makefiles/mapfile-vers-jsig Fri Sep 06 20:08:29 2013 +0200 16.3 @@ -0,0 +1,38 @@ 16.4 +# 16.5 +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. 16.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 16.7 +# 16.8 +# This code is free software; you can redistribute it and/or modify it 16.9 +# under the terms of the GNU General Public License version 2 only, as 16.10 +# published by the Free Software Foundation. 16.11 +# 16.12 +# This code is distributed in the hope that it will be useful, but WITHOUT 16.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 16.14 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 16.15 +# version 2 for more details (a copy is included in the LICENSE file that 16.16 +# accompanied this code). 16.17 +# 16.18 +# You should have received a copy of the GNU General Public License version 16.19 +# 2 along with this work; if not, write to the Free Software Foundation, 16.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 16.21 +# 16.22 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 16.23 +# or visit www.oracle.com if you need additional information or have any 16.24 +# questions. 16.25 +# 16.26 +# 16.27 + 16.28 +# Define library interface. 16.29 + 16.30 +SUNWprivate_1.1 { 16.31 + global: 16.32 + JVM_begin_signal_setting; 16.33 + JVM_end_signal_setting; 16.34 + JVM_get_libjsig_version; 16.35 + JVM_get_signal_action; 16.36 + sigaction; 16.37 + signal; 16.38 + sigset; 16.39 + local: 16.40 + *; 16.41 +};
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 17.2 +++ b/make/aix/makefiles/mapfile-vers-product Fri Sep 06 20:08:29 2013 +0200 17.3 @@ -0,0 +1,267 @@ 17.4 +# 17.5 +# Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. 17.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 17.7 +# 17.8 +# This code is free software; you can redistribute it and/or modify it 17.9 +# under the terms of the GNU General Public License version 2 only, as 17.10 +# published by the Free Software Foundation. 17.11 +# 17.12 +# This code is distributed in the hope that it will be useful, but WITHOUT 17.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 17.14 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 17.15 +# version 2 for more details (a copy is included in the LICENSE file that 17.16 +# accompanied this code). 17.17 +# 17.18 +# You should have received a copy of the GNU General Public License version 17.19 +# 2 along with this work; if not, write to the Free Software Foundation, 17.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 17.21 +# 17.22 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 17.23 +# or visit www.oracle.com if you need additional information or have any 17.24 +# questions. 17.25 +# 17.26 +# 17.27 + 17.28 +# Define public interface. 17.29 + 17.30 +SUNWprivate_1.1 { 17.31 + global: 17.32 + # JNI 17.33 + JNI_CreateJavaVM; 17.34 + JNI_GetCreatedJavaVMs; 17.35 + JNI_GetDefaultJavaVMInitArgs; 17.36 + 17.37 + # JVM 17.38 + JVM_Accept; 17.39 + JVM_ActiveProcessorCount; 17.40 + JVM_AllocateNewArray; 17.41 + JVM_AllocateNewObject; 17.42 + JVM_ArrayCopy; 17.43 + JVM_AssertionStatusDirectives; 17.44 + JVM_Available; 17.45 + JVM_Bind; 17.46 + JVM_ClassDepth; 17.47 + JVM_ClassLoaderDepth; 17.48 + JVM_Clone; 17.49 + JVM_Close; 17.50 + JVM_CX8Field; 17.51 + JVM_CompileClass; 17.52 + JVM_CompileClasses; 17.53 + JVM_CompilerCommand; 17.54 + JVM_Connect; 17.55 + JVM_ConstantPoolGetClassAt; 17.56 + JVM_ConstantPoolGetClassAtIfLoaded; 17.57 + JVM_ConstantPoolGetDoubleAt; 17.58 + JVM_ConstantPoolGetFieldAt; 17.59 + JVM_ConstantPoolGetFieldAtIfLoaded; 17.60 + JVM_ConstantPoolGetFloatAt; 17.61 + JVM_ConstantPoolGetIntAt; 17.62 + JVM_ConstantPoolGetLongAt; 17.63 + JVM_ConstantPoolGetMethodAt; 17.64 + JVM_ConstantPoolGetMethodAtIfLoaded; 17.65 + JVM_ConstantPoolGetMemberRefInfoAt; 17.66 + JVM_ConstantPoolGetSize; 17.67 + JVM_ConstantPoolGetStringAt; 17.68 + JVM_ConstantPoolGetUTF8At; 17.69 + JVM_CountStackFrames; 17.70 + JVM_CurrentClassLoader; 17.71 + JVM_CurrentLoadedClass; 17.72 + JVM_CurrentThread; 17.73 + JVM_CurrentTimeMillis; 17.74 + JVM_DefineClass; 17.75 + JVM_DefineClassWithSource; 17.76 + JVM_DefineClassWithSourceCond; 17.77 + JVM_DesiredAssertionStatus; 17.78 + JVM_DisableCompiler; 17.79 + JVM_DoPrivileged; 17.80 + JVM_DTraceGetVersion; 17.81 + JVM_DTraceActivate; 17.82 + JVM_DTraceIsProbeEnabled; 17.83 + JVM_DTraceIsSupported; 17.84 + JVM_DTraceDispose; 17.85 + JVM_DumpAllStacks; 17.86 + JVM_DumpThreads; 17.87 + JVM_EnableCompiler; 17.88 + JVM_Exit; 17.89 + JVM_FillInStackTrace; 17.90 + JVM_FindClassFromClass; 17.91 + JVM_FindClassFromClassLoader; 17.92 + JVM_FindClassFromBootLoader; 17.93 + JVM_FindLibraryEntry; 17.94 + JVM_FindLoadedClass; 17.95 + JVM_FindPrimitiveClass; 17.96 + JVM_FindSignal; 17.97 + JVM_FreeMemory; 17.98 + JVM_GC; 17.99 + JVM_GetAllThreads; 17.100 + JVM_GetArrayElement; 17.101 + JVM_GetArrayLength; 17.102 + JVM_GetCPClassNameUTF; 17.103 + JVM_GetCPFieldClassNameUTF; 17.104 + JVM_GetCPFieldModifiers; 17.105 + JVM_GetCPFieldNameUTF; 17.106 + JVM_GetCPFieldSignatureUTF; 17.107 + JVM_GetCPMethodClassNameUTF; 17.108 + JVM_GetCPMethodModifiers; 17.109 + JVM_GetCPMethodNameUTF; 17.110 + JVM_GetCPMethodSignatureUTF; 17.111 + JVM_GetCallerClass; 17.112 + JVM_GetClassAccessFlags; 17.113 + JVM_GetClassAnnotations; 17.114 + JVM_GetClassCPEntriesCount; 17.115 + JVM_GetClassCPTypes; 17.116 + JVM_GetClassConstantPool; 17.117 + JVM_GetClassContext; 17.118 + JVM_GetClassDeclaredConstructors; 17.119 + JVM_GetClassDeclaredFields; 17.120 + JVM_GetClassDeclaredMethods; 17.121 + JVM_GetClassFieldsCount; 17.122 + JVM_GetClassInterfaces; 17.123 + JVM_GetClassLoader; 17.124 + JVM_GetClassMethodsCount; 17.125 + JVM_GetClassModifiers; 17.126 + JVM_GetClassName; 17.127 + JVM_GetClassNameUTF; 17.128 + JVM_GetClassSignature; 17.129 + JVM_GetClassSigners; 17.130 + JVM_GetClassTypeAnnotations; 17.131 + JVM_GetComponentType; 17.132 + JVM_GetDeclaredClasses; 17.133 + JVM_GetDeclaringClass; 17.134 + JVM_GetEnclosingMethodInfo; 17.135 + JVM_GetFieldAnnotations; 17.136 + JVM_GetFieldIxModifiers; 17.137 + JVM_GetHostName; 17.138 + JVM_GetInheritedAccessControlContext; 17.139 + JVM_GetInterfaceVersion; 17.140 + JVM_GetLastErrorString; 17.141 + JVM_GetManagement; 17.142 + JVM_GetMethodAnnotations; 17.143 + JVM_GetMethodDefaultAnnotationValue; 17.144 + JVM_GetMethodIxArgsSize; 17.145 + JVM_GetMethodIxByteCode; 17.146 + JVM_GetMethodIxByteCodeLength; 17.147 + JVM_GetMethodIxExceptionIndexes; 17.148 + JVM_GetMethodIxExceptionTableEntry; 17.149 + JVM_GetMethodIxExceptionTableLength; 17.150 + JVM_GetMethodIxExceptionsCount; 17.151 + JVM_GetMethodIxLocalsCount; 17.152 + JVM_GetMethodIxMaxStack; 17.153 + JVM_GetMethodIxModifiers; 17.154 + JVM_GetMethodIxNameUTF; 17.155 + JVM_GetMethodIxSignatureUTF; 17.156 + JVM_GetMethodParameterAnnotations; 17.157 + JVM_GetMethodParameters; 17.158 + JVM_GetPrimitiveArrayElement; 17.159 + JVM_GetProtectionDomain; 17.160 + JVM_GetSockName; 17.161 + JVM_GetSockOpt; 17.162 + JVM_GetStackAccessControlContext; 17.163 + JVM_GetStackTraceDepth; 17.164 + JVM_GetStackTraceElement; 17.165 + JVM_GetSystemPackage; 17.166 + JVM_GetSystemPackages; 17.167 + JVM_GetThreadStateNames; 17.168 + JVM_GetThreadStateValues; 17.169 + JVM_GetVersionInfo; 17.170 + JVM_Halt; 17.171 + JVM_HoldsLock; 17.172 + JVM_IHashCode; 17.173 + JVM_InitAgentProperties; 17.174 + JVM_InitProperties; 17.175 + JVM_InitializeCompiler; 17.176 + JVM_InitializeSocketLibrary; 17.177 + JVM_InternString; 17.178 + JVM_Interrupt; 17.179 + JVM_InvokeMethod; 17.180 + JVM_IsArrayClass; 17.181 + JVM_IsConstructorIx; 17.182 + JVM_IsInterface; 17.183 + JVM_IsInterrupted; 17.184 + JVM_IsNaN; 17.185 + JVM_IsPrimitiveClass; 17.186 + JVM_IsSameClassPackage; 17.187 + JVM_IsSilentCompiler; 17.188 + JVM_IsSupportedJNIVersion; 17.189 + JVM_IsThreadAlive; 17.190 + JVM_IsVMGeneratedMethodIx; 17.191 + JVM_LatestUserDefinedLoader; 17.192 + JVM_Listen; 17.193 + JVM_LoadClass0; 17.194 + JVM_LoadLibrary; 17.195 + JVM_Lseek; 17.196 + JVM_MaxObjectInspectionAge; 17.197 + JVM_MaxMemory; 17.198 + JVM_MonitorNotify; 17.199 + JVM_MonitorNotifyAll; 17.200 + JVM_MonitorWait; 17.201 + JVM_NanoTime; 17.202 + JVM_NativePath; 17.203 + JVM_NewArray; 17.204 + JVM_NewInstanceFromConstructor; 17.205 + JVM_NewMultiArray; 17.206 + JVM_OnExit; 17.207 + JVM_Open; 17.208 + JVM_RaiseSignal; 17.209 + JVM_RawMonitorCreate; 17.210 + JVM_RawMonitorDestroy; 17.211 + JVM_RawMonitorEnter; 17.212 + JVM_RawMonitorExit; 17.213 + JVM_Read; 17.214 + JVM_Recv; 17.215 + JVM_RecvFrom; 17.216 + JVM_RegisterSignal; 17.217 + JVM_ReleaseUTF; 17.218 + JVM_ResolveClass; 17.219 + JVM_ResumeThread; 17.220 + JVM_Send; 17.221 + JVM_SendTo; 17.222 + JVM_SetArrayElement; 17.223 + JVM_SetClassSigners; 17.224 + JVM_SetLength; 17.225 + JVM_SetNativeThreadName; 17.226 + JVM_SetPrimitiveArrayElement; 17.227 + JVM_SetProtectionDomain; 17.228 + JVM_SetSockOpt; 17.229 + JVM_SetThreadPriority; 17.230 + JVM_Sleep; 17.231 + JVM_Socket; 17.232 + JVM_SocketAvailable; 17.233 + JVM_SocketClose; 17.234 + JVM_SocketShutdown; 17.235 + JVM_StartThread; 17.236 + JVM_StopThread; 17.237 + JVM_SuspendThread; 17.238 + JVM_SupportsCX8; 17.239 + JVM_Sync; 17.240 + JVM_Timeout; 17.241 + JVM_TotalMemory; 17.242 + JVM_TraceInstructions; 17.243 + JVM_TraceMethodCalls; 17.244 + JVM_UnloadLibrary; 17.245 + JVM_Write; 17.246 + JVM_Yield; 17.247 + JVM_handle_linux_signal; 17.248 + 17.249 + # miscellaneous functions 17.250 + jio_fprintf; 17.251 + jio_printf; 17.252 + jio_snprintf; 17.253 + jio_vfprintf; 17.254 + jio_vsnprintf; 17.255 + fork1; 17.256 + numa_warn; 17.257 + numa_error; 17.258 + 17.259 + # Needed because there is no JVM interface for this. 17.260 + sysThreadAvailableStackWithSlack; 17.261 + 17.262 + # This is for Forte Analyzer profiling support. 17.263 + AsyncGetCallTrace; 17.264 + 17.265 + # INSERT VTABLE SYMBOLS HERE 17.266 + 17.267 + local: 17.268 + *; 17.269 +}; 17.270 +
18.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 18.2 +++ b/make/aix/makefiles/ppc64.make Fri Sep 06 20:08:29 2013 +0200 18.3 @@ -0,0 +1,94 @@ 18.4 +# 18.5 +# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 18.6 +# Copyright 2012, 2013 SAP AG. All rights reserved. 18.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 18.8 +# 18.9 +# This code is free software; you can redistribute it and/or modify it 18.10 +# under the terms of the GNU General Public License version 2 only, as 18.11 +# published by the Free Software Foundation. 18.12 +# 18.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 18.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 18.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 18.16 +# version 2 for more details (a copy is included in the LICENSE file that 18.17 +# accompanied this code). 18.18 +# 18.19 +# You should have received a copy of the GNU General Public License version 18.20 +# 2 along with this work; if not, write to the Free Software Foundation, 18.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18.22 +# 18.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 18.24 +# or visit www.oracle.com if you need additional information or have any 18.25 +# questions. 18.26 +# 18.27 +# 18.28 + 18.29 +# Produce 64 bits object files. 18.30 +CFLAGS += -q64 18.31 + 18.32 +# Balanced tuning for recent versions of the POWER architecture (if supported by xlc). 18.33 +QTUNE=$(if $(CXX_SUPPORTS_BALANCED_TUNING),balanced,pwr5) 18.34 + 18.35 +# Try to speed up the interpreter: use ppc64 instructions and inline 18.36 +# glue code for external functions. 18.37 +OPT_CFLAGS += -qarch=ppc64 -qtune=$(QTUNE) -qinlglue 18.38 + 18.39 +# We need variable length arrays 18.40 +CFLAGS += -qlanglvl=c99vla 18.41 +# Just to check for unwanted macro redefinitions 18.42 +CFLAGS += -qlanglvl=noredefmac 18.43 + 18.44 +# Suppress those "implicit private" warnings xlc gives. 18.45 +# - The omitted keyword "private" is assumed for base class "...". 18.46 +CFLAGS += -qsuppress=1540-0198 18.47 + 18.48 +# Suppress the following numerous warning: 18.49 +# - 1540-1090 (I) The destructor of "..." might not be called. 18.50 +# - 1500-010: (W) WARNING in ...: Infinite loop. Program may not stop. 18.51 +# There are several infinite loops in the vm, suppress. 18.52 +CFLAGS += -qsuppress=1540-1090 -qsuppress=1500-010 18.53 + 18.54 +# Suppress 18.55 +# - 540-1088 (W) The exception specification is being ignored. 18.56 +# caused by throw() in declaration of new() in nmethod.hpp. 18.57 +CFLAGS += -qsuppress=1540-1088 18.58 + 18.59 +# Turn off floating-point optimizations that may alter program semantics 18.60 +OPT_CFLAGS += -qstrict 18.61 + 18.62 +# Disable aggressive optimizations for functions in sharedRuntimeTrig.cpp 18.63 +# and sharedRuntimeTrans.cpp on ppc64. 18.64 +# -qstrict turns off the following optimizations: 18.65 +# * Performing code motion and scheduling on computations such as loads 18.66 +# and floating-point computations that may trigger an exception. 18.67 +# * Relaxing conformance to IEEE rules. 18.68 +# * Reassociating floating-point expressions. 18.69 +# When using '-qstrict' there still remains one problem 18.70 +# in javasoft.sqe.tests.api.java.lang.Math.sin5Tests when run in compile-all 18.71 +# mode, so don't optimize sharedRuntimeTrig.cpp at all. 18.72 +OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT) 18.73 +OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT) 18.74 + 18.75 +# xlc 10.01 parameters for ipa compile. 18.76 +QIPA_COMPILE=$(if $(CXX_IS_V10),-qipa) 18.77 + 18.78 +# Xlc 10.1 parameters for aggressive optimization: 18.79 +# - qhot=level=1: Most aggressive loop optimizations. 18.80 +# - qignerrno: Assume errno is not modified by system calls. 18.81 +# - qinline: Inline method calls. No suboptions for c++ compiles. 18.82 +# - qxflag=ASMMIDCOALFIX: Activate fix for -O3 problem in interpreter loop. 18.83 +# - qxflag=asmfastsync: Activate fix for performance problem with inline assembler with memory clobber. 18.84 +QV10_OPT=$(if $(CXX_IS_V10),-qxflag=ASMMIDCOALFIX -qxflag=asmfastsync) 18.85 +QV10_OPT_AGGRESSIVE=$(if $(CXX_IS_V10),-qhot=level=1 -qignerrno -qinline) 18.86 +QV10_OPT_CONSERVATIVE=$(if $(CXX_IS_V10),-qhot=level=1 -qignerrno -qinline) 18.87 + 18.88 +# Disallow inlining for synchronizer.cpp, but perform O3 optimizations. 18.89 +OPT_CFLAGS/synchronizer.o = $(OPT_CFLAGS) -qnoinline 18.90 + 18.91 +# Set all the xlC V10.1 options here. 18.92 +OPT_CFLAGS += $(QIPA_COMPILE) $(QV10_OPT) $(QV10_OPT_AGGRESSIVE) 18.93 + 18.94 +export OBJECT_MODE=64 18.95 + 18.96 +# Also build launcher as 64 bit executable. 18.97 +LAUNCHERFLAGS += -q64
19.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 19.2 +++ b/make/aix/makefiles/product.make Fri Sep 06 20:08:29 2013 +0200 19.3 @@ -0,0 +1,58 @@ 19.4 +# 19.5 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 19.6 +# Copyright 2012, 2013 SAP AG. All rights reserved. 19.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 19.8 +# 19.9 +# This code is free software; you can redistribute it and/or modify it 19.10 +# under the terms of the GNU General Public License version 2 only, as 19.11 +# published by the Free Software Foundation. 19.12 +# 19.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 19.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 19.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 19.16 +# version 2 for more details (a copy is included in the LICENSE file that 19.17 +# accompanied this code). 19.18 +# 19.19 +# You should have received a copy of the GNU General Public License version 19.20 +# 2 along with this work; if not, write to the Free Software Foundation, 19.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 19.22 +# 19.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 19.24 +# or visit www.oracle.com if you need additional information or have any 19.25 +# questions. 19.26 +# 19.27 +# 19.28 + 19.29 +# Sets make macros for making optimized version of Gamma VM 19.30 +# (This is the "product", not the "release" version.) 19.31 + 19.32 +# Compiler specific OPT_CFLAGS are passed in from gcc.make, sparcWorks.make 19.33 +OPT_CFLAGS/DEFAULT= $(OPT_CFLAGS) 19.34 +OPT_CFLAGS/BYFILE = $(OPT_CFLAGS/$@)$(OPT_CFLAGS/DEFAULT$(OPT_CFLAGS/$@)) 19.35 + 19.36 +# (OPT_CFLAGS/SLOWER is also available, to alter compilation of buggy files) 19.37 + 19.38 +# If you set HOTSPARC_GENERIC=yes, you disable all OPT_CFLAGS settings 19.39 +CFLAGS$(HOTSPARC_GENERIC) += $(OPT_CFLAGS/BYFILE) 19.40 + 19.41 +# Set the environment variable HOTSPARC_GENERIC to "true" 19.42 +# to inhibit the effect of the previous line on CFLAGS. 19.43 + 19.44 +# Linker mapfile 19.45 +MAPFILE = $(GAMMADIR)/make/aix/makefiles/mapfile-vers-product 19.46 + 19.47 +# Remove ipa linkage altogether. Does not seem to benfit performance, but increases code footprint. 19.48 +LFLAGS_QIPA= 19.49 + 19.50 +SYSDEFS += -DPRODUCT 19.51 +VERSION = optimized 19.52 + 19.53 +# use -g to strip library as -x will discard its symbol table; -x is fine for 19.54 +# executables. 19.55 +# Note: these macros are not used in .debuginfo configs 19.56 +STRIP_LIBJVM = $(STRIP) -g $@ || exit 1; 19.57 +STRIP_AOUT = $(STRIP) -x $@ || exit 1; 19.58 + 19.59 +# If we can create .debuginfo files, then the VM is stripped in vm.make 19.60 +# and this macro is not used. 19.61 +# LINK_LIB.CXX/POST_HOOK += $(STRIP_$(LINK_INTO))
20.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 20.2 +++ b/make/aix/makefiles/rules.make Fri Sep 06 20:08:29 2013 +0200 20.3 @@ -0,0 +1,203 @@ 20.4 +# 20.5 +# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. 20.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 20.7 +# 20.8 +# This code is free software; you can redistribute it and/or modify it 20.9 +# under the terms of the GNU General Public License version 2 only, as 20.10 +# published by the Free Software Foundation. 20.11 +# 20.12 +# This code is distributed in the hope that it will be useful, but WITHOUT 20.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 20.14 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 20.15 +# version 2 for more details (a copy is included in the LICENSE file that 20.16 +# accompanied this code). 20.17 +# 20.18 +# You should have received a copy of the GNU General Public License version 20.19 +# 2 along with this work; if not, write to the Free Software Foundation, 20.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20.21 +# 20.22 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20.23 +# or visit www.oracle.com if you need additional information or have any 20.24 +# questions. 20.25 +# 20.26 +# 20.27 + 20.28 +# Common rules/macros for the vm, adlc. 20.29 + 20.30 +# Tell make that .cpp is important 20.31 +.SUFFIXES: .cpp $(SUFFIXES) 20.32 + 20.33 +DEMANGLER = c++filt 20.34 +DEMANGLE = $(DEMANGLER) < $@ > .$@ && mv -f .$@ $@ 20.35 + 20.36 +# $(CC) is the c compiler (cc/gcc), $(CXX) is the c++ compiler (CC/g++). 20.37 +CC_COMPILE = $(CC) $(CXXFLAGS) $(CFLAGS) 20.38 +CXX_COMPILE = $(CXX) $(CXXFLAGS) $(CFLAGS) 20.39 + 20.40 +AS.S = $(AS) $(ASFLAGS) 20.41 + 20.42 +COMPILE.CC = $(CC_COMPILE) -c 20.43 +GENASM.CC = $(CC_COMPILE) -S 20.44 +LINK.CC = $(CC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS) 20.45 +LINK_LIB.CC = $(CC) $(LFLAGS) $(SHARED_FLAG) 20.46 +PREPROCESS.CC = $(CC_COMPILE) -E 20.47 + 20.48 +COMPILE.CXX = $(CXX_COMPILE) -c 20.49 +GENASM.CXX = $(CXX_COMPILE) -S 20.50 +LINK.CXX = $(CXX) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS) 20.51 +LINK_NOPROF.CXX = $(CXX) $(LFLAGS) $(AOUT_FLAGS) 20.52 +LINK_LIB.CXX = $(CXX) $(LFLAGS) $(SHARED_FLAG) 20.53 +PREPROCESS.CXX = $(CXX_COMPILE) -E 20.54 + 20.55 +# cross compiling the jvm with c2 requires host compilers to build 20.56 +# adlc tool 20.57 + 20.58 +HOST.CXX_COMPILE = $(HOSTCXX) $(CXXFLAGS) $(CFLAGS) 20.59 +HOST.COMPILE.CXX = $(HOST.CXX_COMPILE) -c 20.60 +HOST.LINK_NOPROF.CXX = $(HOSTCXX) $(LFLAGS) $(AOUT_FLAGS) 20.61 + 20.62 + 20.63 +# Effect of REMOVE_TARGET is to delete out-of-date files during "gnumake -k". 20.64 +REMOVE_TARGET = rm -f $@ 20.65 + 20.66 +# Note use of ALT_BOOTDIR to explicitly specify location of java and 20.67 +# javac; this is the same environment variable used in the J2SE build 20.68 +# process for overriding the default spec, which is BOOTDIR. 20.69 +# Note also that we fall back to using JAVA_HOME if neither of these is 20.70 +# specified. 20.71 + 20.72 +ifdef ALT_BOOTDIR 20.73 + 20.74 +RUN.JAVA = $(ALT_BOOTDIR)/bin/java 20.75 +RUN.JAVAP = $(ALT_BOOTDIR)/bin/javap 20.76 +RUN.JAVAH = $(ALT_BOOTDIR)/bin/javah 20.77 +RUN.JAR = $(ALT_BOOTDIR)/bin/jar 20.78 +COMPILE.JAVAC = $(ALT_BOOTDIR)/bin/javac 20.79 +COMPILE.RMIC = $(ALT_BOOTDIR)/bin/rmic 20.80 +BOOT_JAVA_HOME = $(ALT_BOOTDIR) 20.81 + 20.82 +else 20.83 + 20.84 +ifdef BOOTDIR 20.85 + 20.86 +RUN.JAVA = $(BOOTDIR)/bin/java 20.87 +RUN.JAVAP = $(BOOTDIR)/bin/javap 20.88 +RUN.JAVAH = $(BOOTDIR)/bin/javah 20.89 +RUN.JAR = $(BOOTDIR)/bin/jar 20.90 +COMPILE.JAVAC = $(BOOTDIR)/bin/javac 20.91 +COMPILE.RMIC = $(BOOTDIR)/bin/rmic 20.92 +BOOT_JAVA_HOME = $(BOOTDIR) 20.93 + 20.94 +else 20.95 + 20.96 +ifdef JAVA_HOME 20.97 + 20.98 +RUN.JAVA = $(JAVA_HOME)/bin/java 20.99 +RUN.JAVAP = $(JAVA_HOME)/bin/javap 20.100 +RUN.JAVAH = $(JAVA_HOME)/bin/javah 20.101 +RUN.JAR = $(JAVA_HOME)/bin/jar 20.102 +COMPILE.JAVAC = $(JAVA_HOME)/bin/javac 20.103 +COMPILE.RMIC = $(JAVA_HOME)/bin/rmic 20.104 +BOOT_JAVA_HOME = $(JAVA_HOME) 20.105 + 20.106 +else 20.107 + 20.108 +# take from the PATH, if ALT_BOOTDIR, BOOTDIR and JAVA_HOME are not defined 20.109 +# note that this is to support hotspot build without SA. To build 20.110 +# SA along with hotspot, you need to define ALT_BOOTDIR, BOOTDIR or JAVA_HOME 20.111 + 20.112 +RUN.JAVA = java 20.113 +RUN.JAVAP = javap 20.114 +RUN.JAVAH = javah 20.115 +RUN.JAR = jar 20.116 +COMPILE.JAVAC = javac 20.117 +COMPILE.RMIC = rmic 20.118 + 20.119 +endif 20.120 +endif 20.121 +endif 20.122 + 20.123 +COMPILE.JAVAC += $(BOOTSTRAP_JAVAC_FLAGS) 20.124 + 20.125 +SUM = /usr/bin/sum 20.126 + 20.127 +# 'gmake MAKE_VERBOSE=y' gives all the gory details. 20.128 +QUIETLY$(MAKE_VERBOSE) = @ 20.129 +RUN.JAR$(MAKE_VERBOSE) += >/dev/null 20.130 + 20.131 +# Settings for javac 20.132 +BOOT_SOURCE_LANGUAGE_VERSION = 6 20.133 +BOOT_TARGET_CLASS_VERSION = 6 20.134 +JAVAC_FLAGS = -g -encoding ascii 20.135 +BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) 20.136 + 20.137 +# With parallel makes, print a message at the end of compilation. 20.138 +ifeq ($(findstring j,$(MFLAGS)),j) 20.139 +COMPILE_DONE = && { echo Done with $<; } 20.140 +endif 20.141 + 20.142 +# Include $(NONPIC_OBJ_FILES) definition 20.143 +ifndef LP64 20.144 +include $(GAMMADIR)/make/pic.make 20.145 +endif 20.146 + 20.147 +include $(GAMMADIR)/make/altsrc.make 20.148 + 20.149 +# The non-PIC object files are only generated for 32 bit platforms. 20.150 +ifdef LP64 20.151 +%.o: %.cpp 20.152 + @echo Compiling $< 20.153 + $(QUIETLY) $(REMOVE_TARGET) 20.154 + $(QUIETLY) $(COMPILE.CXX) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE) 20.155 +else 20.156 +%.o: %.cpp 20.157 + @echo Compiling $< 20.158 + $(QUIETLY) $(REMOVE_TARGET) 20.159 + $(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \ 20.160 + $(subst $(VM_PICFLAG), ,$(COMPILE.CXX)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \ 20.161 + $(COMPILE.CXX) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)) 20.162 +endif 20.163 + 20.164 +%.o: %.s 20.165 + @echo Assembling $< 20.166 + $(QUIETLY) $(REMOVE_TARGET) 20.167 + $(QUIETLY) $(AS.S) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE) 20.168 + 20.169 +%.s: %.cpp 20.170 + @echo Generating assembly for $< 20.171 + $(QUIETLY) $(GENASM.CXX) -o $@ $< 20.172 + $(QUIETLY) $(DEMANGLE) $(COMPILE_DONE) 20.173 + 20.174 +# Intermediate files (for debugging macros) 20.175 +%.i: %.cpp 20.176 + @echo Preprocessing $< to $@ 20.177 + $(QUIETLY) $(PREPROCESS.CXX) $< > $@ $(COMPILE_DONE) 20.178 + 20.179 +# Override gnumake built-in rules which do sccs get operations badly. 20.180 +# (They put the checked out code in the current directory, not in the 20.181 +# directory of the original file.) Since this is a symptom of a teamware 20.182 +# failure, and since not all problems can be detected by gnumake due 20.183 +# to incomplete dependency checking... just complain and stop. 20.184 +%:: s.% 20.185 + @echo "=========================================================" 20.186 + @echo File $@ 20.187 + @echo is out of date with respect to its SCCS file. 20.188 + @echo This file may be from an unresolved Teamware conflict. 20.189 + @echo This is also a symptom of a Teamware bringover/putback failure 20.190 + @echo in which SCCS files are updated but not checked out. 20.191 + @echo Check for other out of date files in your workspace. 20.192 + @echo "=========================================================" 20.193 + @exit 666 20.194 + 20.195 +%:: SCCS/s.% 20.196 + @echo "=========================================================" 20.197 + @echo File $@ 20.198 + @echo is out of date with respect to its SCCS file. 20.199 + @echo This file may be from an unresolved Teamware conflict. 20.200 + @echo This is also a symptom of a Teamware bringover/putback failure 20.201 + @echo in which SCCS files are updated but not checked out. 20.202 + @echo Check for other out of date files in your workspace. 20.203 + @echo "=========================================================" 20.204 + @exit 666 20.205 + 20.206 +.PHONY: default
21.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 21.2 +++ b/make/aix/makefiles/sa.make Fri Sep 06 20:08:29 2013 +0200 21.3 @@ -0,0 +1,116 @@ 21.4 +# 21.5 +# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. 21.6 +# Copyright 2012, 2013 SAP AG. All rights reserved. 21.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 21.8 +# 21.9 +# This code is free software; you can redistribute it and/or modify it 21.10 +# under the terms of the GNU General Public License version 2 only, as 21.11 +# published by the Free Software Foundation. 21.12 +# 21.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 21.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 21.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 21.16 +# version 2 for more details (a copy is included in the LICENSE file that 21.17 +# accompanied this code). 21.18 +# 21.19 +# You should have received a copy of the GNU General Public License version 21.20 +# 2 along with this work; if not, write to the Free Software Foundation, 21.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 21.22 +# 21.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 21.24 +# or visit www.oracle.com if you need additional information or have any 21.25 +# questions. 21.26 +# 21.27 +# 21.28 + 21.29 +# This makefile (sa.make) is included from the sa.make in the 21.30 +# build directories. 21.31 + 21.32 +# This makefile is used to build Serviceability Agent java code 21.33 +# and generate JNI header file for native methods. 21.34 + 21.35 +include $(GAMMADIR)/make/aix/makefiles/rules.make 21.36 + 21.37 +include $(GAMMADIR)/make/defs.make 21.38 + 21.39 +AGENT_DIR = $(GAMMADIR)/agent 21.40 + 21.41 +include $(GAMMADIR)/make/sa.files 21.42 + 21.43 +TOPDIR = $(shell echo `pwd`) 21.44 +GENERATED = $(TOPDIR)/../generated 21.45 + 21.46 +# tools.jar is needed by the JDI - SA binding 21.47 +SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar 21.48 + 21.49 +# TODO: if it's a modules image, check if SA module is installed. 21.50 +MODULELIB_PATH= $(BOOT_JAVA_HOME)/lib/modules 21.51 + 21.52 +AGENT_FILES_LIST := $(GENERATED)/agent.classes.list 21.53 + 21.54 +SA_CLASSDIR = $(GENERATED)/saclasses 21.55 + 21.56 +SA_BUILD_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VERSION)" 21.57 + 21.58 +SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties 21.59 + 21.60 +# if $(AGENT_DIR) does not exist, we don't build SA 21.61 +# also, we don't build SA on Itanium, PowerPC, ARM or zero. 21.62 + 21.63 +all: 21.64 + if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" \ 21.65 + -a "$(SRCARCH)" != "arm" \ 21.66 + -a "$(SRCARCH)" != "ppc" \ 21.67 + -a "$(SRCARCH)" != "zero" ] ; then \ 21.68 + $(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \ 21.69 + fi 21.70 + 21.71 +$(GENERATED)/sa-jdi.jar: $(AGENT_FILES) 21.72 + $(QUIETLY) echo "Making $@" 21.73 + $(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \ 21.74 + echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \ 21.75 + exit 1; \ 21.76 + fi 21.77 + $(QUIETLY) if [ ! -f $(SA_CLASSPATH) -a ! -d $(MODULELIB_PATH) ] ; then \ 21.78 + echo "Missing $(SA_CLASSPATH) file. Use 1.6.0 or later version of JDK";\ 21.79 + echo ""; \ 21.80 + exit 1; \ 21.81 + fi 21.82 + $(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \ 21.83 + mkdir -p $(SA_CLASSDIR); \ 21.84 + fi 21.85 +# Note: When indented, make tries to execute the '$(shell' comment. 21.86 +# In some environments, cmd processors have limited line length. 21.87 +# To prevent the javac invocation in the next block from using 21.88 +# a very long cmd line, we use javac's @file-list option. We 21.89 +# generate the file lists using make's built-in 'foreach' control 21.90 +# flow which also avoids cmd processor line length issues. Since 21.91 +# the 'foreach' is done as part of make's macro expansion phase, 21.92 +# the initialization of the lists is also done in the same phase 21.93 +# using '$(shell rm ...' instead of using the more traditional 21.94 +# 'rm ...' rule. 21.95 + $(shell rm -rf $(AGENT_FILES_LIST)) 21.96 +# gnumake 3.78.1 does not accept the *'s that 21.97 +# are in AGENT_FILES, so use the shell to expand them. 21.98 +# Be extra carefull to not produce too long command lines in the shell! 21.99 + $(foreach file,$(AGENT_FILES),$(shell ls -1 $(file) >> $(AGENT_FILES_LIST))) 21.100 + $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES_LIST) 21.101 + $(QUIETLY) $(REMOTE) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer 21.102 + $(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES) 21.103 + $(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js 21.104 + $(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql 21.105 + $(QUIETLY) mkdir -p $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources 21.106 + $(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/* 21.107 + $(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/ 21.108 + $(QUIETLY) cp -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)/ 21.109 + $(QUIETLY) $(REMOTE) $(RUN.JAR) cf $@ -C $(SA_CLASSDIR)/ . 21.110 + $(QUIETLY) $(REMOTE) $(RUN.JAR) uf $@ -C $(AGENT_SRC_DIR) META-INF/services/com.sun.jdi.connect.Connector 21.111 + $(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.x86.X86ThreadContext 21.112 + $(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.ia64.IA64ThreadContext 21.113 + $(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.amd64.AMD64ThreadContext 21.114 + $(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.sparc.SPARCThreadContext 21.115 + 21.116 +clean: 21.117 + rm -rf $(SA_CLASSDIR) 21.118 + rm -rf $(GENERATED)/sa-jdi.jar 21.119 + rm -rf $(AGENT_FILES_LIST)
22.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 22.2 +++ b/make/aix/makefiles/saproc.make Fri Sep 06 20:08:29 2013 +0200 22.3 @@ -0,0 +1,117 @@ 22.4 +# 22.5 +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. 22.6 +# Copyright 2012, 2013 SAP AG. All rights reserved. 22.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 22.8 +# 22.9 +# This code is free software; you can redistribute it and/or modify it 22.10 +# under the terms of the GNU General Public License version 2 only, as 22.11 +# published by the Free Software Foundation. 22.12 +# 22.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 22.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 22.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 22.16 +# version 2 for more details (a copy is included in the LICENSE file that 22.17 +# accompanied this code). 22.18 +# 22.19 +# You should have received a copy of the GNU General Public License version 22.20 +# 2 along with this work; if not, write to the Free Software Foundation, 22.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 22.22 +# 22.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22.24 +# or visit www.oracle.com if you need additional information or have any 22.25 +# questions. 22.26 +# 22.27 +# 22.28 +include $(GAMMADIR)/make/defs.make 22.29 + 22.30 +# Rules to build serviceability agent library, used by vm.make 22.31 + 22.32 +# libsaproc.so: serviceability agent 22.33 + 22.34 +SAPROC = saproc 22.35 +LIBSAPROC = lib$(SAPROC).so 22.36 + 22.37 +LIBSAPROC_DEBUGINFO = lib$(SAPROC).debuginfo 22.38 +LIBSAPROC_DIZ = lib$(SAPROC).diz 22.39 + 22.40 +AGENT_DIR = $(GAMMADIR)/agent 22.41 + 22.42 +SASRCDIR = $(AGENT_DIR)/src/os/$(Platform_os_family) 22.43 + 22.44 +SASRCFILES = $(SASRCDIR)/salibelf.c \ 22.45 + $(SASRCDIR)/symtab.c \ 22.46 + $(SASRCDIR)/libproc_impl.c \ 22.47 + $(SASRCDIR)/ps_proc.c \ 22.48 + $(SASRCDIR)/ps_core.c \ 22.49 + $(SASRCDIR)/LinuxDebuggerLocal.c \ 22.50 + 22.51 +SAMAPFILE = $(SASRCDIR)/mapfile 22.52 + 22.53 +DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC) 22.54 +DEST_SAPROC_DEBUGINFO = $(JDK_LIBDIR)/$(LIBSAPROC_DEBUGINFO) 22.55 +DEST_SAPROC_DIZ = $(JDK_LIBDIR)/$(LIBSAPROC_DIZ) 22.56 + 22.57 +# DEBUG_BINARIES overrides everything, use full -g debug information 22.58 +ifeq ($(DEBUG_BINARIES), true) 22.59 + SA_DEBUG_CFLAGS = -g 22.60 +endif 22.61 + 22.62 +# if $(AGENT_DIR) does not exist, we don't build SA 22.63 +# also, we don't build SA on Itanium, PPC, ARM or zero. 22.64 + 22.65 +ifneq ($(wildcard $(AGENT_DIR)),) 22.66 +ifneq ($(filter-out ia64 arm ppc zero,$(SRCARCH)),) 22.67 + BUILDLIBSAPROC = $(LIBSAPROC) 22.68 +endif 22.69 +endif 22.70 + 22.71 + 22.72 +SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) 22.73 + 22.74 +$(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE) 22.75 + $(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \ 22.76 + echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \ 22.77 + exit 1; \ 22.78 + fi 22.79 + @echo Making SA debugger back-end... 22.80 + $(QUIETLY) $(CC) -D$(BUILDARCH) -D_GNU_SOURCE \ 22.81 + -D_FILE_OFFSET_BITS=64 \ 22.82 + $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \ 22.83 + $(BIN_UTILS) \ 22.84 + -I$(SASRCDIR) \ 22.85 + -I$(GENERATED) \ 22.86 + -I$(BOOT_JAVA_HOME)/include \ 22.87 + -I$(BOOT_JAVA_HOME)/include/$(Platform_os_family) \ 22.88 + $(SASRCFILES) \ 22.89 + $(SA_LFLAGS) \ 22.90 + $(SA_DEBUG_CFLAGS) \ 22.91 + -o $@ \ 22.92 + -lthread_db 22.93 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 22.94 + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO) 22.95 + $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@ 22.96 + ifeq ($(STRIP_POLICY),all_strip) 22.97 + $(QUIETLY) $(STRIP) $@ 22.98 + else 22.99 + ifeq ($(STRIP_POLICY),min_strip) 22.100 + $(QUIETLY) $(STRIP) -g $@ 22.101 + # implied else here is no stripping at all 22.102 + endif 22.103 + endif 22.104 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 22.105 + $(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO) 22.106 + $(RM) $(LIBSAPROC_DEBUGINFO) 22.107 + endif 22.108 +endif 22.109 + 22.110 +install_saproc: $(BUILDLIBSAPROC) 22.111 + $(QUIETLY) if [ -e $(LIBSAPROC) ] ; then \ 22.112 + echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \ 22.113 + test -f $(LIBSAPROC_DEBUGINFO) && \ 22.114 + cp -f $(LIBSAPROC_DEBUGINFO) $(DEST_SAPROC_DEBUGINFO); \ 22.115 + test -f $(LIBSAPROC_DIZ) && \ 22.116 + cp -f $(LIBSAPROC_DIZ) $(DEST_SAPROC_DIZ); \ 22.117 + cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \ 22.118 + fi 22.119 + 22.120 +.PHONY: install_saproc
23.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 23.2 +++ b/make/aix/makefiles/top.make Fri Sep 06 20:08:29 2013 +0200 23.3 @@ -0,0 +1,144 @@ 23.4 +# 23.5 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 23.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 23.7 +# 23.8 +# This code is free software; you can redistribute it and/or modify it 23.9 +# under the terms of the GNU General Public License version 2 only, as 23.10 +# published by the Free Software Foundation. 23.11 +# 23.12 +# This code is distributed in the hope that it will be useful, but WITHOUT 23.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 23.14 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 23.15 +# version 2 for more details (a copy is included in the LICENSE file that 23.16 +# accompanied this code). 23.17 +# 23.18 +# You should have received a copy of the GNU General Public License version 23.19 +# 2 along with this work; if not, write to the Free Software Foundation, 23.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 23.21 +# 23.22 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 23.23 +# or visit www.oracle.com if you need additional information or have any 23.24 +# questions. 23.25 +# 23.26 +# 23.27 + 23.28 +# top.make is included in the Makefile in the build directories. 23.29 +# It DOES NOT include the vm dependency info in order to be faster. 23.30 +# Its main job is to implement the incremental form of make lists. 23.31 +# It also: 23.32 +# -builds and runs adlc via adlc.make 23.33 +# -generates JVMTI source and docs via jvmti.make (JSR-163) 23.34 +# -generate sa-jdi.jar (JDI binding to core files) 23.35 + 23.36 +# It assumes the following flags are set: 23.37 +# CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Obj_Files 23.38 + 23.39 +# -- D. Ungar (5/97) from a file by Bill Bush 23.40 + 23.41 +# Don't override the built-in $(MAKE). 23.42 +# Instead, use "gmake" (or "gnumake") from the command line. --Rose 23.43 +#MAKE = gmake 23.44 + 23.45 +include $(GAMMADIR)/make/altsrc.make 23.46 + 23.47 +TOPDIR = $(shell echo `pwd`) 23.48 +GENERATED = $(TOPDIR)/../generated 23.49 +VM = $(GAMMADIR)/src/share/vm 23.50 +Plat_File = $(Platform_file) 23.51 +CDG = cd $(GENERATED); 23.52 + 23.53 +ifneq ($(USE_PRECOMPILED_HEADER),0) 23.54 +UpdatePCH = $(MAKE) -f vm.make $(PRECOMPILED_HEADER) $(MFLAGS) 23.55 +else 23.56 +UpdatePCH = \# precompiled header is not used 23.57 +endif 23.58 + 23.59 +Cached_plat = $(GENERATED)/platform.current 23.60 + 23.61 +AD_Dir = $(GENERATED)/adfiles 23.62 +ADLC = $(AD_Dir)/adlc 23.63 +AD_Spec = $(call altsrc-replace,$(HS_COMMON_SRC)/cpu/$(Platform_arch)/vm/$(Platform_arch_model).ad) 23.64 +AD_Src = $(call altsrc-replace,$(HS_COMMON_SRC)/share/vm/adlc) 23.65 +AD_Names = ad_$(Platform_arch_model).hpp ad_$(Platform_arch_model).cpp 23.66 +AD_Files = $(AD_Names:%=$(AD_Dir)/%) 23.67 + 23.68 +# AD_Files_If_Required/COMPILER1 = ad_stuff 23.69 +AD_Files_If_Required/COMPILER2 = ad_stuff 23.70 +AD_Files_If_Required/TIERED = ad_stuff 23.71 +AD_Files_If_Required = $(AD_Files_If_Required/$(TYPE)) 23.72 + 23.73 +# Wierd argument adjustment for "gnumake -j..." 23.74 +adjust-mflags = $(GENERATED)/adjust-mflags 23.75 +MFLAGS-adjusted = -r `$(adjust-mflags) "$(MFLAGS)" "$(HOTSPOT_BUILD_JOBS)"` 23.76 + 23.77 + 23.78 +# default target: update lists, make vm 23.79 +# done in stages to force sequential order with parallel make 23.80 +# 23.81 + 23.82 +default: vm_build_preliminaries the_vm 23.83 + @echo All done. 23.84 + 23.85 +# This is an explicit dependency for the sake of parallel makes. 23.86 +vm_build_preliminaries: checks $(Cached_plat) $(AD_Files_If_Required) trace_stuff jvmti_stuff sa_stuff 23.87 + @# We need a null action here, so implicit rules don't get consulted. 23.88 + 23.89 +$(Cached_plat): $(Plat_File) 23.90 + $(CDG) cp $(Plat_File) $(Cached_plat) 23.91 + 23.92 +# make AD files as necessary 23.93 +ad_stuff: $(Cached_plat) $(adjust-mflags) 23.94 + @$(MAKE) -f adlc.make $(MFLAGS-adjusted) 23.95 + 23.96 +# generate JVMTI files from the spec 23.97 +jvmti_stuff: $(Cached_plat) $(adjust-mflags) 23.98 + @$(MAKE) -f jvmti.make $(MFLAGS-adjusted) 23.99 + 23.100 +# generate trace files 23.101 +trace_stuff: jvmti_stuff $(Cached_plat) $(adjust-mflags) 23.102 + @$(MAKE) -f trace.make $(MFLAGS-adjusted) 23.103 + 23.104 +# generate SA jar files and native header 23.105 +sa_stuff: 23.106 + @$(MAKE) -f sa.make $(MFLAGS-adjusted) 23.107 + 23.108 +# and the VM: must use other makefile with dependencies included 23.109 + 23.110 +# We have to go to great lengths to get control over the -jN argument 23.111 +# to the recursive invocation of vm.make. The problem is that gnumake 23.112 +# resets -jN to -j1 for recursive runs. (How helpful.) 23.113 +# Note that the user must specify the desired parallelism level via a 23.114 +# command-line or environment variable name HOTSPOT_BUILD_JOBS. 23.115 +$(adjust-mflags): $(GAMMADIR)/make/$(Platform_os_family)/makefiles/adjust-mflags.sh 23.116 + @+rm -f $@ $@+ 23.117 + @+cat $< > $@+ 23.118 + @+chmod +x $@+ 23.119 + @+mv $@+ $@ 23.120 + 23.121 +the_vm: vm_build_preliminaries $(adjust-mflags) 23.122 + @$(UpdatePCH) 23.123 + @$(MAKE) -f vm.make $(MFLAGS-adjusted) 23.124 + 23.125 +install gamma: the_vm 23.126 + @$(MAKE) -f vm.make $@ 23.127 + 23.128 +# next rules support "make foo.[ois]" 23.129 + 23.130 +%.o %.i %.s: 23.131 + $(UpdatePCH) 23.132 + $(MAKE) -f vm.make $(MFLAGS) $@ 23.133 + #$(MAKE) -f vm.make $@ 23.134 + 23.135 +# this should force everything to be rebuilt 23.136 +clean: 23.137 + rm -f $(GENERATED)/*.class 23.138 + $(MAKE) -f vm.make $(MFLAGS) clean 23.139 + 23.140 +# just in case it doesn't, this should do it 23.141 +realclean: 23.142 + $(MAKE) -f vm.make $(MFLAGS) clean 23.143 + rm -fr $(GENERATED) 23.144 + 23.145 +.PHONY: default vm_build_preliminaries 23.146 +.PHONY: lists ad_stuff jvmti_stuff sa_stuff the_vm clean realclean 23.147 +.PHONY: checks check_os_version install
24.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 24.2 +++ b/make/aix/makefiles/trace.make Fri Sep 06 20:08:29 2013 +0200 24.3 @@ -0,0 +1,120 @@ 24.4 +# 24.5 +# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. 24.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 24.7 +# 24.8 +# This code is free software; you can redistribute it and/or modify it 24.9 +# under the terms of the GNU General Public License version 2 only, as 24.10 +# published by the Free Software Foundation. 24.11 +# 24.12 +# This code is distributed in the hope that it will be useful, but WITHOUT 24.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 24.14 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 24.15 +# version 2 for more details (a copy is included in the LICENSE file that 24.16 +# accompanied this code). 24.17 +# 24.18 +# You should have received a copy of the GNU General Public License version 24.19 +# 2 along with this work; if not, write to the Free Software Foundation, 24.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 24.21 +# 24.22 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 24.23 +# or visit www.oracle.com if you need additional information or have any 24.24 +# questions. 24.25 +# 24.26 +# 24.27 + 24.28 +# This makefile (trace.make) is included from the trace.make in the 24.29 +# build directories. 24.30 +# 24.31 +# It knows how to build and run the tools to generate trace files. 24.32 + 24.33 +include $(GAMMADIR)/make/linux/makefiles/rules.make 24.34 +include $(GAMMADIR)/make/altsrc.make 24.35 + 24.36 +# ######################################################################### 24.37 + 24.38 +HAS_ALT_SRC:=$(shell if [ -d $(HS_ALT_SRC)/share/vm/trace ]; then \ 24.39 + echo "true"; else echo "false";\ 24.40 + fi) 24.41 + 24.42 +TOPDIR = $(shell echo `pwd`) 24.43 +GENERATED = $(TOPDIR)/../generated 24.44 +JvmtiOutDir = $(GENERATED)/jvmtifiles 24.45 +TraceOutDir = $(GENERATED)/tracefiles 24.46 + 24.47 +TraceAltSrcDir = $(HS_ALT_SRC)/share/vm/trace 24.48 +TraceSrcDir = $(HS_COMMON_SRC)/share/vm/trace 24.49 + 24.50 +# set VPATH so make knows where to look for source files 24.51 +Src_Dirs_V += $(TraceSrcDir) $(TraceAltSrcDir) 24.52 +VPATH += $(Src_Dirs_V:%=%:) 24.53 + 24.54 +TraceGeneratedNames = \ 24.55 + traceEventClasses.hpp \ 24.56 + traceEventIds.hpp \ 24.57 + traceTypes.hpp 24.58 + 24.59 +ifeq ($(HAS_ALT_SRC), true) 24.60 +TraceGeneratedNames += \ 24.61 + traceRequestables.hpp \ 24.62 + traceEventControl.hpp 24.63 + 24.64 +ifneq ($(INCLUDE_TRACE), false) 24.65 +TraceGeneratedNames += traceProducer.cpp 24.66 +endif 24.67 + 24.68 +endif 24.69 + 24.70 +TraceGeneratedFiles = $(TraceGeneratedNames:%=$(TraceOutDir)/%) 24.71 + 24.72 +XSLT = $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiGen 24.73 + 24.74 +XML_DEPS = $(TraceSrcDir)/trace.xml $(TraceSrcDir)/tracetypes.xml \ 24.75 + $(TraceSrcDir)/trace.dtd $(TraceSrcDir)/xinclude.mod 24.76 +ifeq ($(HAS_ALT_SRC), true) 24.77 + XML_DEPS += $(TraceAltSrcDir)/traceevents.xml 24.78 +endif 24.79 + 24.80 +.PHONY: all clean cleanall 24.81 + 24.82 +# ######################################################################### 24.83 + 24.84 +all: $(TraceGeneratedFiles) 24.85 + 24.86 +GENERATE_CODE= \ 24.87 + $(QUIETLY) echo Generating $@; \ 24.88 + $(XSLT) -IN $(word 1,$^) -XSL $(word 2,$^) -OUT $@; \ 24.89 + test -f $@ 24.90 + 24.91 +$(TraceOutDir)/traceEventIds.hpp: $(TraceSrcDir)/trace.xml $(TraceSrcDir)/traceEventIds.xsl $(XML_DEPS) 24.92 + $(GENERATE_CODE) 24.93 + 24.94 +$(TraceOutDir)/traceTypes.hpp: $(TraceSrcDir)/trace.xml $(TraceSrcDir)/traceTypes.xsl $(XML_DEPS) 24.95 + $(GENERATE_CODE) 24.96 + 24.97 +ifeq ($(HAS_ALT_SRC), false) 24.98 + 24.99 +$(TraceOutDir)/traceEventClasses.hpp: $(TraceSrcDir)/trace.xml $(TraceSrcDir)/traceEventClasses.xsl $(XML_DEPS) 24.100 + $(GENERATE_CODE) 24.101 + 24.102 +else 24.103 + 24.104 +$(TraceOutDir)/traceEventClasses.hpp: $(TraceSrcDir)/trace.xml $(TraceAltSrcDir)/traceEventClasses.xsl $(XML_DEPS) 24.105 + $(GENERATE_CODE) 24.106 + 24.107 +$(TraceOutDir)/traceProducer.cpp: $(TraceSrcDir)/trace.xml $(TraceAltSrcDir)/traceProducer.xsl $(XML_DEPS) 24.108 + $(GENERATE_CODE) 24.109 + 24.110 +$(TraceOutDir)/traceRequestables.hpp: $(TraceSrcDir)/trace.xml $(TraceAltSrcDir)/traceRequestables.xsl $(XML_DEPS) 24.111 + $(GENERATE_CODE) 24.112 + 24.113 +$(TraceOutDir)/traceEventControl.hpp: $(TraceSrcDir)/trace.xml $(TraceAltSrcDir)/traceEventControl.xsl $(XML_DEPS) 24.114 + $(GENERATE_CODE) 24.115 + 24.116 +endif 24.117 + 24.118 +# ######################################################################### 24.119 + 24.120 +clean cleanall: 24.121 + rm $(TraceGeneratedFiles) 24.122 + 24.123 +
25.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 25.2 +++ b/make/aix/makefiles/vm.make Fri Sep 06 20:08:29 2013 +0200 25.3 @@ -0,0 +1,377 @@ 25.4 +# 25.5 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 25.6 +# Copyright 2012, 2013 SAP AG. All rights reserved. 25.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 25.8 +# 25.9 +# This code is free software; you can redistribute it and/or modify it 25.10 +# under the terms of the GNU General Public License version 2 only, as 25.11 +# published by the Free Software Foundation. 25.12 +# 25.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 25.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 25.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 25.16 +# version 2 for more details (a copy is included in the LICENSE file that 25.17 +# accompanied this code). 25.18 +# 25.19 +# You should have received a copy of the GNU General Public License version 25.20 +# 2 along with this work; if not, write to the Free Software Foundation, 25.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 25.22 +# 25.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 25.24 +# or visit www.oracle.com if you need additional information or have any 25.25 +# questions. 25.26 +# 25.27 +# 25.28 + 25.29 +# Rules to build JVM and related libraries, included from vm.make in the build 25.30 +# directory. 25.31 + 25.32 +# Common build rules. 25.33 +MAKEFILES_DIR=$(GAMMADIR)/make/$(Platform_os_family)/makefiles 25.34 +include $(MAKEFILES_DIR)/rules.make 25.35 +include $(GAMMADIR)/make/altsrc.make 25.36 + 25.37 +default: build 25.38 + 25.39 +#---------------------------------------------------------------------- 25.40 +# Defs 25.41 + 25.42 +GENERATED = ../generated 25.43 +DEP_DIR = $(GENERATED)/dependencies 25.44 + 25.45 +# reads the generated files defining the set of .o's and the .o .h dependencies 25.46 +-include $(DEP_DIR)/*.d 25.47 + 25.48 +# read machine-specific adjustments (%%% should do this via buildtree.make?) 25.49 +ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true) 25.50 + include $(MAKEFILES_DIR)/zeroshark.make 25.51 +else 25.52 + include $(MAKEFILES_DIR)/$(BUILDARCH).make 25.53 +endif 25.54 + 25.55 +# set VPATH so make knows where to look for source files 25.56 +# Src_Dirs_V is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm 25.57 +# The adfiles directory contains ad_<arch>.[ch]pp. 25.58 +# The jvmtifiles directory contains jvmti*.[ch]pp 25.59 +Src_Dirs_V += $(GENERATED)/adfiles $(GENERATED)/jvmtifiles $(GENERATED)/tracefiles 25.60 +VPATH += $(Src_Dirs_V:%=%:) 25.61 + 25.62 +# set INCLUDES for C preprocessor. 25.63 +Src_Dirs_I += $(GENERATED) 25.64 +# The order is important for the precompiled headers to work. 25.65 +INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%) 25.66 + 25.67 +# SYMFLAG is used by {jsig,saproc}.make 25.68 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 25.69 + # always build with debug info when we can create .debuginfo files 25.70 + SYMFLAG = -g 25.71 +else 25.72 + ifeq (${VERSION}, debug) 25.73 + SYMFLAG = -g 25.74 + else 25.75 + SYMFLAG = 25.76 + endif 25.77 +endif 25.78 + 25.79 +# HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined 25.80 +# in $(GAMMADIR)/make/defs.make 25.81 +ifeq ($(HOTSPOT_BUILD_VERSION),) 25.82 + BUILD_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HOTSPOT_RELEASE_VERSION)\"" 25.83 +else 25.84 + BUILD_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)\"" 25.85 +endif 25.86 + 25.87 +# The following variables are defined in the generated flags.make file. 25.88 +BUILD_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HS_BUILD_VER)\"" 25.89 +JRE_VERSION = -DJRE_RELEASE_VERSION="\"$(JRE_RELEASE_VER)\"" 25.90 +HS_LIB_ARCH = -DHOTSPOT_LIB_ARCH=\"$(LIBARCH)\" 25.91 +BUILD_TARGET = -DHOTSPOT_BUILD_TARGET="\"$(TARGET)\"" 25.92 +BUILD_USER = -DHOTSPOT_BUILD_USER="\"$(HOTSPOT_BUILD_USER)\"" 25.93 +VM_DISTRO = -DHOTSPOT_VM_DISTRO="\"$(HOTSPOT_VM_DISTRO)\"" 25.94 + 25.95 +CXXFLAGS = \ 25.96 + ${SYSDEFS} \ 25.97 + ${INCLUDES} \ 25.98 + ${BUILD_VERSION} \ 25.99 + ${BUILD_TARGET} \ 25.100 + ${BUILD_USER} \ 25.101 + ${HS_LIB_ARCH} \ 25.102 + ${VM_DISTRO} 25.103 + 25.104 +# This is VERY important! The version define must only be supplied to vm_version.o 25.105 +# If not, ccache will not re-use the cache at all, since the version string might contain 25.106 +# a time and date. 25.107 +vm_version.o: CXXFLAGS += ${JRE_VERSION} 25.108 + 25.109 +CXXFLAGS/BYFILE = $(CXXFLAGS/$@) 25.110 + 25.111 +# File specific flags 25.112 +CXXFLAGS += $(CXXFLAGS/BYFILE) 25.113 + 25.114 + 25.115 +# CFLAGS_WARN holds compiler options to suppress/enable warnings. 25.116 +CFLAGS += $(CFLAGS_WARN/BYFILE) 25.117 + 25.118 +# Do not use C++ exception handling 25.119 +CFLAGS += $(CFLAGS/NOEX) 25.120 + 25.121 +# Extra flags from gnumake's invocation or environment 25.122 +CFLAGS += $(EXTRA_CFLAGS) 25.123 +LFLAGS += $(EXTRA_CFLAGS) 25.124 + 25.125 +# Don't set excutable bit on stack segment 25.126 +# the same could be done by separate execstack command 25.127 +#LFLAGS += -Xlinker -z -Xlinker noexecstack 25.128 + 25.129 +LIBS += -lm -ldl -lpthread 25.130 + 25.131 +# By default, link the *.o into the library, not the executable. 25.132 +LINK_INTO$(LINK_INTO) = LIBJVM 25.133 + 25.134 +JDK_LIBDIR = $(JAVA_HOME)/jre/lib/$(LIBARCH) 25.135 + 25.136 +#---------------------------------------------------------------------- 25.137 +# jvm_db & dtrace 25.138 +include $(MAKEFILES_DIR)/dtrace.make 25.139 + 25.140 +#---------------------------------------------------------------------- 25.141 +# JVM 25.142 + 25.143 +JVM = jvm 25.144 +LIBJVM = lib$(JVM).so 25.145 + 25.146 +CFLAGS += -DALLOW_OPERATOR_NEW_USAGE 25.147 + 25.148 +LIBJVM_DEBUGINFO = lib$(JVM).debuginfo 25.149 +LIBJVM_DIZ = lib$(JVM).diz 25.150 + 25.151 +SPECIAL_PATHS:=adlc c1 gc_implementation opto shark libadt 25.152 + 25.153 +SOURCE_PATHS=\ 25.154 + $(shell find $(HS_COMMON_SRC)/share/vm/* -type d \! \ 25.155 + \( -name DUMMY $(foreach dir,$(SPECIAL_PATHS),-o -name $(dir)) \)) 25.156 +SOURCE_PATHS+=$(HS_COMMON_SRC)/os/$(Platform_os_family)/vm 25.157 +SOURCE_PATHS+=$(HS_COMMON_SRC)/os/posix/vm 25.158 +SOURCE_PATHS+=$(HS_COMMON_SRC)/cpu/$(SRCARCH)/vm 25.159 +SOURCE_PATHS+=$(HS_COMMON_SRC)/os_cpu/$(Platform_os_family)_$(SRCARCH)/vm 25.160 + 25.161 +CORE_PATHS=$(foreach path,$(SOURCE_PATHS),$(call altsrc,$(path)) $(path)) 25.162 +CORE_PATHS+=$(GENERATED)/jvmtifiles $(GENERATED)/tracefiles 25.163 + 25.164 +ifneq ($(INCLUDE_TRACE), false) 25.165 +CORE_PATHS+=$(shell if [ -d $(HS_ALT_SRC)/share/vm/jfr ]; then \ 25.166 + find $(HS_ALT_SRC)/share/vm/jfr -type d; \ 25.167 + fi) 25.168 +endif 25.169 + 25.170 +COMPILER1_PATHS := $(call altsrc,$(HS_COMMON_SRC)/share/vm/c1) 25.171 +COMPILER1_PATHS += $(HS_COMMON_SRC)/share/vm/c1 25.172 + 25.173 +COMPILER2_PATHS := $(call altsrc,$(HS_COMMON_SRC)/share/vm/opto) 25.174 +COMPILER2_PATHS += $(call altsrc,$(HS_COMMON_SRC)/share/vm/libadt) 25.175 +COMPILER2_PATHS += $(HS_COMMON_SRC)/share/vm/opto 25.176 +COMPILER2_PATHS += $(HS_COMMON_SRC)/share/vm/libadt 25.177 +COMPILER2_PATHS += $(GENERATED)/adfiles 25.178 + 25.179 +SHARK_PATHS := $(GAMMADIR)/src/share/vm/shark 25.180 + 25.181 +# Include dirs per type. 25.182 +Src_Dirs/CORE := $(CORE_PATHS) 25.183 +Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS) 25.184 +Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS) 25.185 +Src_Dirs/TIERED := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS) 25.186 +Src_Dirs/ZERO := $(CORE_PATHS) 25.187 +Src_Dirs/SHARK := $(CORE_PATHS) $(SHARK_PATHS) 25.188 +Src_Dirs := $(Src_Dirs/$(TYPE)) 25.189 + 25.190 +COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp c2_\* runtime_\* 25.191 +COMPILER1_SPECIFIC_FILES := c1_\* 25.192 +SHARK_SPECIFIC_FILES := shark 25.193 +ZERO_SPECIFIC_FILES := zero 25.194 + 25.195 +# Always exclude these. 25.196 +Src_Files_EXCLUDE += jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp 25.197 + 25.198 +# Exclude per type. 25.199 +Src_Files_EXCLUDE/CORE := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp 25.200 +Src_Files_EXCLUDE/COMPILER1 := $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp 25.201 +Src_Files_EXCLUDE/COMPILER2 := $(COMPILER1_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) 25.202 +Src_Files_EXCLUDE/TIERED := $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) 25.203 +Src_Files_EXCLUDE/ZERO := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp 25.204 +Src_Files_EXCLUDE/SHARK := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) 25.205 + 25.206 +Src_Files_EXCLUDE += $(Src_Files_EXCLUDE/$(TYPE)) 25.207 + 25.208 +# Disable 155427 on aix. 25.209 +Src_Files_EXCLUDE += decoder_elf.cpp elfFile.cpp elfStringTable.cpp elfSymbolTable.cpp 25.210 + 25.211 +# Special handling of arch model. 25.212 +ifeq ($(Platform_arch_model), x86_32) 25.213 +Src_Files_EXCLUDE += \*x86_64\* 25.214 +endif 25.215 +ifeq ($(Platform_arch_model), x86_64) 25.216 +Src_Files_EXCLUDE += \*x86_32\* 25.217 +endif 25.218 + 25.219 +# Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE. 25.220 +define findsrc 25.221 + $(notdir $(shell find $(1)/. ! -name . -prune \ 25.222 + -a \( -name \*.c -o -name \*.cpp -o -name \*.s \) \ 25.223 + -a ! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \))) 25.224 +endef 25.225 + 25.226 +Src_Files := $(foreach e,$(Src_Dirs),$(call findsrc,$(e))) 25.227 + 25.228 +Obj_Files = $(sort $(addsuffix .o,$(basename $(Src_Files)))) 25.229 + 25.230 +JVM_OBJ_FILES = $(Obj_Files) 25.231 + 25.232 +vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES)) 25.233 + 25.234 +mapfile : $(MAPFILE) vm.def 25.235 + rm -f $@ 25.236 + awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \ 25.237 + { system ("cat vm.def"); } \ 25.238 + else \ 25.239 + { print $$0 } \ 25.240 + }' > $@ < $(MAPFILE) 25.241 + 25.242 +mapfile_reorder : mapfile $(REORDERFILE) 25.243 + rm -f $@ 25.244 + cat $^ > $@ 25.245 + 25.246 +vm.def: $(Res_Files) $(Obj_Files) 25.247 + sh $(GAMMADIR)/make/aix/makefiles/build_vm_def.sh *.o > $@ 25.248 + 25.249 +ifeq ($(JVM_VARIANT_ZEROSHARK), true) 25.250 + STATIC_CXX = false 25.251 +else 25.252 + ifeq ($(ZERO_LIBARCH), ppc64) 25.253 + STATIC_CXX = false 25.254 + else 25.255 + STATIC_CXX = true 25.256 + endif 25.257 +endif 25.258 + 25.259 +ifeq ($(LINK_INTO),AOUT) 25.260 + LIBJVM.o = 25.261 + LIBJVM_MAPFILE = 25.262 + LIBS_VM = $(LIBS) 25.263 +else 25.264 + LIBJVM.o = $(JVM_OBJ_FILES) 25.265 + LIBJVM_MAPFILE$(LDNOMAP) = mapfile_reorder 25.266 + LFLAGS_VM$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LIBJVM_MAPFILE)) 25.267 +# xlC_r ignores the -o= syntax 25.268 +# LFLAGS_VM += $(SONAMEFLAG:SONAME=$(LIBJVM)) 25.269 + 25.270 + # JVM is statically linked with libgcc[_s] and libstdc++; this is needed to 25.271 + # get around library dependency and compatibility issues. Must use gcc not 25.272 + # g++ to link. 25.273 + LIBS_VM += $(STATIC_STDCXX) $(LIBS) 25.274 +endif 25.275 + 25.276 +LINK_VM = $(LINK_LIB.CXX) 25.277 + 25.278 +# create loadmap for libjvm.so by default. Helps in diagnosing some problems. 25.279 +LFLAGS_VM += -bloadmap:libjvm.loadmap 25.280 + 25.281 +# rule for building precompiled header 25.282 +$(PRECOMPILED_HEADER): 25.283 + $(QUIETLY) echo Generating precompiled header $@ 25.284 + $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR) 25.285 + $(QUIETLY) $(COMPILE.CXX) $(DEPFLAGS) -x c++-header $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE) 25.286 + 25.287 +# making the library: 25.288 + 25.289 +ifneq ($(JVM_BASE_ADDR),) 25.290 +# By default shared library is linked at base address == 0. Modify the 25.291 +# linker script if JVM prefers a different base location. It can also be 25.292 +# implemented with 'prelink -r'. But 'prelink' is not (yet) available on 25.293 +# our build platform (AS-2.1). 25.294 +LD_SCRIPT = libjvm.so.lds 25.295 +$(LD_SCRIPT): $(LIBJVM_MAPFILE) 25.296 + $(QUIETLY) { \ 25.297 + rm -rf $@; \ 25.298 + $(LINK_VM) -Wl,--verbose $(LFLAGS_VM) 2>&1 | \ 25.299 + sed -e '/^======/,/^======/!d' \ 25.300 + -e '/^======/d' \ 25.301 + -e 's/0\( + SIZEOF_HEADERS\)/$(JVM_BASE_ADDR)\1/' \ 25.302 + > $@; \ 25.303 + } 25.304 +LD_SCRIPT_FLAG = -Wl,-T,$(LD_SCRIPT) 25.305 +endif 25.306 + 25.307 +# With more recent Redhat releases (or the cutting edge version Fedora), if 25.308 +# SELinux is configured to be enabled, the runtime linker will fail to apply 25.309 +# the text relocation to libjvm.so considering that it is built as a non-PIC 25.310 +# DSO. To workaround that, we run chcon to libjvm.so after it is built. See 25.311 +# details in bug 6538311. 25.312 +$(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT) 25.313 + $(QUIETLY) { \ 25.314 + echo Linking vm...; \ 25.315 + $(LINK_LIB.CXX/PRE_HOOK) \ 25.316 + $(LINK_VM) $(LD_SCRIPT_FLAG) \ 25.317 + $(LFLAGS_VM) -o $@ $(sort $(LIBJVM.o)) $(LIBS_VM); \ 25.318 + $(LINK_LIB.CXX/POST_HOOK) \ 25.319 + rm -f $@.1; ln -s $@ $@.1; \ 25.320 + } 25.321 +# No security contexts on AIX 25.322 +# if [ \"$(CROSS_COMPILE_ARCH)\" = \"\" ] ; then \ 25.323 +# if [ -x /usr/sbin/selinuxenabled ] ; then \ 25.324 +# /usr/sbin/selinuxenabled; \ 25.325 +# if [ $$? = 0 ] ; then \ 25.326 +# /usr/bin/chcon -t textrel_shlib_t $@; \ 25.327 +# if [ $$? != 0 ]; then \ 25.328 +# echo "ERROR: Cannot chcon $@"; \ 25.329 +# fi \ 25.330 +# fi \ 25.331 +# fi \ 25.332 +# fi \ 25.333 +# } 25.334 + 25.335 +#ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 25.336 +# $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO) 25.337 +# $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ 25.338 +# ifeq ($(STRIP_POLICY),all_strip) 25.339 +# $(QUIETLY) $(STRIP) $@ 25.340 +# else 25.341 +# ifeq ($(STRIP_POLICY),min_strip) 25.342 +# $(QUIETLY) $(STRIP) -g $@ 25.343 +# # implied else here is no stripping at all 25.344 +# endif 25.345 +# endif 25.346 +# ifeq ($(ZIP_DEBUGINFO_FILES),1) 25.347 +# $(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO) 25.348 +# $(RM) $(LIBJVM_DEBUGINFO) 25.349 +# endif 25.350 +#endif 25.351 + 25.352 +DEST_SUBDIR = $(JDK_LIBDIR)/$(VM_SUBDIR) 25.353 +DEST_JVM = $(DEST_SUBDIR)/$(LIBJVM) 25.354 +DEST_JVM_DEBUGINFO = $(DEST_SUBDIR)/$(LIBJVM_DEBUGINFO) 25.355 +DEST_JVM_DIZ = $(DEST_SUBDIR)/$(LIBJVM_DIZ) 25.356 + 25.357 +install_jvm: $(LIBJVM) 25.358 + @echo "Copying $(LIBJVM) to $(DEST_JVM)" 25.359 + $(QUIETLY) test -f $(LIBJVM_DEBUGINFO) && \ 25.360 + cp -f $(LIBJVM_DEBUGINFO) $(DEST_JVM_DEBUGINFO) 25.361 + $(QUIETLY) test -f $(LIBJVM_DIZ) && \ 25.362 + cp -f $(LIBJVM_DIZ) $(DEST_JVM_DIZ) 25.363 + $(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done" 25.364 + 25.365 +#---------------------------------------------------------------------- 25.366 +# Other files 25.367 + 25.368 +# Signal interposition library 25.369 +include $(MAKEFILES_DIR)/jsig.make 25.370 + 25.371 +# Serviceability agent 25.372 +include $(MAKEFILES_DIR)/saproc.make 25.373 + 25.374 +#---------------------------------------------------------------------- 25.375 + 25.376 +build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC) 25.377 + 25.378 +install: install_jvm install_jsig install_saproc 25.379 + 25.380 +.PHONY: default build install install_jvm
26.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 26.2 +++ b/make/aix/makefiles/xlc.make Fri Sep 06 20:08:29 2013 +0200 26.3 @@ -0,0 +1,159 @@ 26.4 +# 26.5 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 26.6 +# Copyright (c) 2012, 2013 SAP. All rights reserved. 26.7 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 26.8 +# 26.9 +# This code is free software; you can redistribute it and/or modify it 26.10 +# under the terms of the GNU General Public License version 2 only, as 26.11 +# published by the Free Software Foundation. 26.12 +# 26.13 +# This code is distributed in the hope that it will be useful, but WITHOUT 26.14 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 26.15 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 26.16 +# version 2 for more details (a copy is included in the LICENSE file that 26.17 +# accompanied this code). 26.18 +# 26.19 +# You should have received a copy of the GNU General Public License version 26.20 +# 2 along with this work; if not, write to the Free Software Foundation, 26.21 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 26.22 +# 26.23 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 26.24 +# or visit www.oracle.com if you need additional information or have any 26.25 +# questions. 26.26 +# 26.27 +# 26.28 + 26.29 +#------------------------------------------------------------------------ 26.30 +# CC, CXX & AS 26.31 + 26.32 +# Set compiler explicitly 26.33 +CXX = $(COMPILER_PATH)xlC_r 26.34 +CC = $(COMPILER_PATH)xlc_r 26.35 +HOSTCXX = $(CXX) 26.36 +HOSTCC = $(CC) 26.37 + 26.38 +AS = $(CC) -c 26.39 + 26.40 +# get xlc version 26.41 +CXX_VERSION := $(shell $(CXX) -qversion 2>&1 | sed -n 's/.*Version: \([0-9.]*\)/\1/p') 26.42 + 26.43 +# xlc 08.00.0000.0023 and higher supports -qtune=balanced 26.44 +CXX_SUPPORTS_BALANCED_TUNING=$(shell if [ $(subst .,,$(CXX_VERSION)) -ge 080000000023 ] ; then echo "true" ; fi) 26.45 +# xlc 10.01 is used with aggressive optimizations to boost performance 26.46 +CXX_IS_V10=$(shell if [ $(subst .,,$(CXX_VERSION)) -ge 100100000000 ] ; then echo "true" ; fi) 26.47 + 26.48 +# check for precompiled headers support 26.49 + 26.50 +# Switch off the precompiled header support. Neither xlC 8.0 nor xlC 10.0 26.51 +# support precompiled headers. Both "understand" the command line switches "-qusepcomp" and 26.52 +# "-qgenpcomp" but when we specify them the following message is printed: 26.53 +# "1506-755 (W) The -qusepcomp option is not supported in this release." 26.54 +USE_PRECOMPILED_HEADER = 0 26.55 +ifneq ($(USE_PRECOMPILED_HEADER),0) 26.56 +PRECOMPILED_HEADER_DIR=. 26.57 +PRECOMPILED_HEADER_SRC=$(GAMMADIR)/src/share/vm/precompiled/precompiled.hpp 26.58 +PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/precompiled.hpp.gch 26.59 +endif 26.60 + 26.61 + 26.62 +#------------------------------------------------------------------------ 26.63 +# Compiler flags 26.64 + 26.65 +# position-independent code 26.66 +PICFLAG = -qpic=large 26.67 + 26.68 +VM_PICFLAG/LIBJVM = $(PICFLAG) 26.69 +VM_PICFLAG/AOUT = 26.70 +VM_PICFLAG = $(VM_PICFLAG/$(LINK_INTO)) 26.71 + 26.72 +CFLAGS += $(VM_PICFLAG) 26.73 +CFLAGS += -qnortti 26.74 +CFLAGS += -qnoeh 26.75 + 26.76 +CFLAGS += -D_REENTRANT 26.77 +# no xlc counterpart for -fcheck-new 26.78 +# CFLAGS += -fcheck-new 26.79 + 26.80 +ARCHFLAG = -q64 26.81 + 26.82 +CFLAGS += $(ARCHFLAG) 26.83 +AOUT_FLAGS += $(ARCHFLAG) 26.84 +LFLAGS += $(ARCHFLAG) 26.85 +ASFLAGS += $(ARCHFLAG) 26.86 + 26.87 +# Use C++ Interpreter 26.88 +ifdef CC_INTERP 26.89 + CFLAGS += -DCC_INTERP 26.90 +endif 26.91 + 26.92 +# Keep temporary files (.ii, .s) 26.93 +# no counterpart on xlc for -save-temps, -pipe 26.94 + 26.95 +# Compiler warnings are treated as errors 26.96 +# Do not treat warnings as errors 26.97 +# WARNINGS_ARE_ERRORS = -Werror 26.98 +# Except for a few acceptable ones 26.99 +# ACCEPTABLE_WARNINGS = -Wpointer-arith -Wconversion -Wsign-compare 26.100 +# CFLAGS_WARN/DEFAULT = $(WARNINGS_ARE_ERRORS) $(ACCEPTABLE_WARNINGS) 26.101 +CFLAGS_WARN/COMMON = 26.102 +CFLAGS_WARN/DEFAULT = $(CFLAGS_WARN/COMMON) $(EXTRA_WARNINGS) 26.103 +# Special cases 26.104 +CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@)) 26.105 + 26.106 +# The flags to use for an optimized build 26.107 +OPT_CFLAGS += -O3 26.108 + 26.109 +# Hotspot uses very unstrict aliasing turn this optimization off 26.110 +OPT_CFLAGS += -qalias=noansi 26.111 + 26.112 +OPT_CFLAGS/NOOPT=-qnoopt 26.113 + 26.114 +DEPFLAGS = -qmakedep=gcc -MF $(DEP_DIR)/$(@:%=%.d) 26.115 + 26.116 +#------------------------------------------------------------------------ 26.117 +# Linker flags 26.118 + 26.119 +# statically link libstdc++.so, work with gcc but ignored by g++ 26.120 +STATIC_STDCXX = -Wl,-lC_r 26.121 + 26.122 +# Enable linker optimization 26.123 +# no counterpart on xlc for this 26.124 +# LFLAGS += -Xlinker -O1 26.125 + 26.126 +# Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file. 26.127 +# MAPFLAG = -Xlinker --version-script=FILENAME 26.128 + 26.129 +# Build shared library 26.130 +SHARED_FLAG = -q64 -b64 -bexpall -G -bnoentry -qmkshrobj -brtl -bnolibpath 26.131 + 26.132 +#------------------------------------------------------------------------ 26.133 +# Debug flags 26.134 + 26.135 +# Always compile with '-g' to get symbols in the stacktraces in the hs_err file 26.136 +DEBUG_CFLAGS += -g 26.137 +FASTDEBUG_CFLAGS += -g 26.138 +OPT_CFLAGS += -g 26.139 + 26.140 +# DEBUG_BINARIES overrides everything, use full -g debug information 26.141 +ifeq ($(DEBUG_BINARIES), true) 26.142 + DEBUG_CFLAGS = -g 26.143 + CFLAGS += $(DEBUG_CFLAGS) 26.144 +endif 26.145 + 26.146 +# If we are building HEADLESS, pass on to VM 26.147 +# so it can set the java.awt.headless property 26.148 +ifdef HEADLESS 26.149 +CFLAGS += -DHEADLESS 26.150 +endif 26.151 + 26.152 +# We are building Embedded for a small device 26.153 +# favor code space over speed 26.154 +ifdef MINIMIZE_RAM_USAGE 26.155 +CFLAGS += -DMINIMIZE_RAM_USAGE 26.156 +endif 26.157 + 26.158 +ifdef CROSS_COMPILE_ARCH 26.159 + STRIP = $(ALT_COMPILER_PATH)/strip 26.160 +else 26.161 + STRIP = strip 26.162 +endif
27.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 27.2 +++ b/make/aix/platform_ppc64 Fri Sep 06 20:08:29 2013 +0200 27.3 @@ -0,0 +1,17 @@ 27.4 +os_family = aix 27.5 + 27.6 +arch = ppc 27.7 + 27.8 +arch_model = ppc_64 27.9 + 27.10 +os_arch = aix_ppc 27.11 + 27.12 +os_arch_model = aix_ppc_64 27.13 + 27.14 +lib_arch = ppc64 27.15 + 27.16 +compiler = xlc 27.17 + 27.18 +gnu_dis_arch = ppc64 27.19 + 27.20 +sysdefs = -DAIX -DPPC64
28.1 --- a/make/defs.make Fri Sep 06 10:13:17 2013 +0200 28.2 +++ b/make/defs.make Fri Sep 06 20:08:29 2013 +0200 28.3 @@ -166,11 +166,15 @@ 28.4 HOST := $(shell uname -n) 28.5 endif 28.6 28.7 -# If not SunOS, not Linux and not BSD, assume Windows 28.8 +# If not SunOS, not Linux not BSD and not AIX, assume Windows 28.9 ifneq ($(OS), Linux) 28.10 ifneq ($(OS), SunOS) 28.11 ifneq ($(OS), bsd) 28.12 - OSNAME=windows 28.13 + ifneq ($(OS), AIX) 28.14 + OSNAME=windows 28.15 + else 28.16 + OSNAME=aix 28.17 + endif 28.18 else 28.19 OSNAME=bsd 28.20 endif