mirror of
https://github.com/openjdk/jdk.git
synced 2026-08-03 22:55:40 +00:00
8389220: Implement JEP 539: Strict Field Initialization in the JVM (Preview) Co-authored-by: David Simms <dsimms@openjdk.org> Co-authored-by: Dan Smith <dlsmith@openjdk.org> Co-authored-by: Frederic Parain <fparain@openjdk.org> Co-authored-by: Tobias Hartmann <thartmann@openjdk.org> Co-authored-by: Roger Riggs <rriggs@openjdk.org> Co-authored-by: Vicente Romero <vromero@openjdk.org> Co-authored-by: Axel Boldt-Christmas <aboldtch@openjdk.org> Co-authored-by: Karen Kinnear <acorn@openjdk.org> Co-authored-by: Alex Menkov <amenkov@openjdk.org> Co-authored-by: Bill Huang <bhuang@openjdk.org> Co-authored-by: Benoît Maillard <bmaillard@openjdk.org> Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org> Co-authored-by: Chris Plummer <cjplummer@openjdk.org> Co-authored-by: Casper Norrbin <cnorrbin@openjdk.org> Co-authored-by: Coleen Phillimore <coleenp@openjdk.org> Co-authored-by: David Beaumont <dbeaumont@openjdk.org> Co-authored-by: Daniel D. Daugherty <dcubed@openjdk.org> Co-authored-by: Damon Fenacci <dfenacci@openjdk.org> Co-authored-by: David Holmes <dholmes@openjdk.org> Co-authored-by: Dmitry Samersoff <dsamersoff@openjdk.org> Co-authored-by: Eric Caspole <ecaspole@openjdk.org> Co-authored-by: Evgeny Nikitin <enikitin@openjdk.org> Co-authored-by: Ekaterina Pavlova <epavlova@openjdk.org> Co-authored-by: Fei Yang <fyang@openjdk.org> Co-authored-by: Dan Heidinga <heidinga@openjdk.org> Co-authored-by: Harold Seigel <hseigel@openjdk.org> Co-authored-by: Ioi Lam <iklam@openjdk.org> Co-authored-by: Ivan Walulya <iwalulya@openjdk.org> Co-authored-by: Jatin Bhateja <jbhateja@openjdk.org> Co-authored-by: Jan Lahoda <jlahoda@openjdk.org> Co-authored-by: Jim Laskey <jlaskey@openjdk.org> Co-authored-by: John R Rose <jrose@openjdk.org> Co-authored-by: Joel Sikström <jsikstro@openjdk.org> Co-authored-by: Lois Foltan <lfoltan@openjdk.org> Co-authored-by: Chen Liang <liach@openjdk.org> Co-authored-by: Leonid Mesnik <lmesnik@openjdk.org> Co-authored-by: Matias Saavedra Silva <matsaave@openjdk.org> Co-authored-by: Marc Chevalier <mchevalier@openjdk.org> Co-authored-by: Mandy Chung <mchung@openjdk.org> Co-authored-by: Maurizio Cimadamore <mcimadamore@openjdk.org> Co-authored-by: Markus Grönlund <mgronlun@openjdk.org> Co-authored-by: Manuel Hässig <mhaessig@openjdk.org> Co-authored-by: Nick Gasson <ngasson@openjdk.org> Co-authored-by: Patricio Chilano Mateo <pchilanomate@openjdk.org> Co-authored-by: Paul Hübner <phubner@openjdk.org> Co-authored-by: Paul Sandoz <psandoz@openjdk.org> Co-authored-by: Quan Anh Mai <qamai@openjdk.org> Co-authored-by: Roberto Castañeda Lozano <rcastanedalo@openjdk.org> Co-authored-by: Roland Westrelin <roland@openjdk.org> Co-authored-by: Srikanth Adayapalam <sadayapalam@openjdk.org> Co-authored-by: Aleksey Shipilev <shade@openjdk.org> Co-authored-by: Stefan Johansson <sjohanss@openjdk.org> Co-authored-by: Sergey Kuksenko <skuksenko@openjdk.org> Co-authored-by: Serguei Spitsyn <sspitsyn@openjdk.org> Co-authored-by: Stefan Karlsson <stefank@openjdk.org> Co-authored-by: Thomas Stuefe <stuefe@openjdk.org> Co-authored-by: Thomas Schatzl <tschatzl@openjdk.org> Co-authored-by: Zoltan Majo <zmajo@openjdk.org> Co-authored-by: Alan Bateman <alanb@openjdk.org> Co-authored-by: Jaikiran Pai <jpai@openjdk.org> Co-authored-by: Martin Doerr <mdoerr@openjdk.org> Co-authored-by: Richard Reingruber <rrich@openjdk.org> Co-authored-by: Feilong Jiang <fjiang@openjdk.org> Co-authored-by: Daisuke Yamazaki <dyama@openjdk.org> Reviewed-by: mcimadamore, liach, darcy, dcubed, aboldtch, coleenp, iklam, jlahoda, dlong, jpai, vklang, heidinga, sspitsyn, cjplummer
198 lines
6.2 KiB
Plaintext
198 lines
6.2 KiB
Plaintext
#
|
|
# Copyright (c) 2017, 2026, Oracle and/or its affiliates. All rights reserved.
|
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
#
|
|
# This code is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License version 2 only, as
|
|
# published by the Free Software Foundation. Oracle designates this
|
|
# particular file as subject to the "Classpath" exception as provided
|
|
# by Oracle in the LICENSE file that accompanied this code.
|
|
#
|
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
# version 2 for more details (a copy is included in the LICENSE file that
|
|
# accompanied this code).
|
|
#
|
|
# You should have received a copy of the GNU General Public License version
|
|
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
#
|
|
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
# or visit www.oracle.com if you need additional information or have any
|
|
# questions.
|
|
#
|
|
|
|
################################################################################
|
|
# Fake minimalistic spec file for RunTestsPrebuilt.gmk.
|
|
################################################################################
|
|
|
|
# Make sure all shell commands are executed with the C locale
|
|
export LC_ALL := C
|
|
|
|
define VerifyVariable
|
|
ifeq ($$($1), )
|
|
$$(info Error: Variable $1 is missing, needed by RunTestPrebuiltSpec.gmk)
|
|
$$(error Cannot continue.)
|
|
else
|
|
ifneq ($$(findstring $$(LOG_LEVEL), debug trace), )
|
|
$$(info Prebuilt variable $1=$$($1))
|
|
endif
|
|
endif
|
|
endef
|
|
|
|
# It is the responsibility of the file including us to have set these up.
|
|
# Verify that this is correct.
|
|
$(eval $(call VerifyVariable,SPEC))
|
|
$(eval $(call VerifyVariable,TOPDIR))
|
|
$(eval $(call VerifyVariable,OUTPUTDIR))
|
|
$(eval $(call VerifyVariable,BOOT_JDK))
|
|
$(eval $(call VerifyVariable,JT_HOME))
|
|
$(eval $(call VerifyVariable,JDK_IMAGE_DIR))
|
|
$(eval $(call VerifyVariable,TEST_IMAGE_DIR))
|
|
$(eval $(call VerifyVariable,MAKE))
|
|
$(eval $(call VerifyVariable,BASH))
|
|
|
|
include $(TOPDIR)/make/conf/version-numbers.conf
|
|
VERSION_FEATURE := $(DEFAULT_VERSION_FEATURE)
|
|
|
|
################################################################################
|
|
# The "human readable" name of this configuration
|
|
CONF_NAME := run-test-prebuilt
|
|
|
|
# Number of parallel jobs to use for compilation
|
|
JOBS ?= $(NUM_CORES)
|
|
TEST_JOBS ?= 0
|
|
|
|
# Use hard-coded values for java flags (one size, fits all!)
|
|
JAVA_FLAGS := -Duser.language=en -Duser.country=US
|
|
JAVA_FLAGS_BIG := -Xms64M -Xmx2048M
|
|
JAVA_FLAGS_SMALL := -Xms32M -Xmx512M -XX:TieredStopAtLevel=1
|
|
BUILDJDK_JAVA_FLAGS_SMALL := -Xms32M -Xmx512M -XX:TieredStopAtLevel=1
|
|
BUILD_JAVA_FLAGS := $(JAVA_FLAGS_BIG)
|
|
|
|
################################################################################
|
|
# Hard-coded values copied from spec.gmk.in.
|
|
X :=
|
|
SPACE := $(X) $(X)
|
|
COMMA := ,
|
|
MAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \
|
|
MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" LOG_LEVEL=$(LOG_LEVEL)
|
|
BASH_ARGS := -o pipefail -e
|
|
SHELL := $(BASH) $(BASH_ARGS)
|
|
|
|
################################################################################
|
|
# Set some reasonable defaults for features
|
|
DEBUG_LEVEL := release
|
|
HOTSPOT_DEBUG_LEVEL := release
|
|
BUILD_FAILURE_HANDLER := true
|
|
|
|
################################################################################
|
|
# Alias some paths (that should not really be used) to our JDK image under test.
|
|
SUPPORT_OUTPUTDIR := $(OUTPUTDIR)/support
|
|
BUILDTOOLS_OUTPUTDIR := $(OUTPUTDIR)/buildtools
|
|
HOTSPOT_OUTPUTDIR := $(OUTPUTDIR)/hotspot
|
|
JDK_OUTPUTDIR := $(OUTPUTDIR)/jdk
|
|
IMAGES_OUTPUTDIR := $(OUTPUTDIR)/images
|
|
BUNDLES_OUTPUTDIR := $(OUTPUTDIR)/bundles
|
|
TESTMAKE_OUTPUTDIR := $(OUTPUTDIR)/test-make
|
|
MAKESUPPORT_OUTPUTDIR := $(OUTPUTDIR)/make-support
|
|
BUILDJDK_OUTPUTDIR := $(OUTPUTDIR)/buildjdk
|
|
|
|
JRE_IMAGE_DIR := $(JDK_IMAGE_DIR)
|
|
|
|
################################################################################
|
|
# Assume build platform is same as target platform
|
|
OPENJDK_BUILD_OS := $(OPENJDK_TARGET_OS)
|
|
OPENJDK_BUILD_OS_TYPE := $(OPENJDK_TARGET_OS_TYPE)
|
|
OPENJDK_BUILD_OS_ENV := $(OPENJDK_TARGET_OS_ENV)
|
|
|
|
OPENJDK_BUILD_CPU := $(OPENJDK_TARGET_CPU)
|
|
OPENJDK_BUILD_CPU_ARCH := $(OPENJDK_TARGET_CPU_ARCH)
|
|
OPENJDK_BUILD_CPU_BITS := $(OPENJDK_TARGET_CPU_BITS)
|
|
OPENJDK_BUILD_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN)
|
|
|
|
################################################################################
|
|
# Java executable definitions
|
|
JAVA_CMD := $(BOOT_JDK)/bin/java
|
|
JAVAC_CMD := $(BOOT_JDK)/bin/javac
|
|
JAR_CMD := $(BOOT_JDK)/bin/jar
|
|
JLINK_CMD := $(JDK_OUTPUTDIR)/bin/jlink
|
|
JMOD_CMD := $(JDK_OUTPUTDIR)/bin/jmod
|
|
|
|
JAVA := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
|
|
JAVA_SMALL := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
|
|
JAVAC := $(FIXPATH) $(JAVAC_CMD)
|
|
JAR := $(FIXPATH) $(JAR_CMD)
|
|
JLINK := $(FIXPATH) $(JLINK_CMD)
|
|
JMOD := $(FIXPATH) $(JMOD_CMD)
|
|
|
|
JTREG_JAVA := $(FIXPATH) $(JTREG_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
|
|
|
|
BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
|
|
################################################################################
|
|
# Some common tools. Assume most common name and no path.
|
|
AWK := awk
|
|
BASENAME := basename
|
|
CAT := cat
|
|
CD := cd
|
|
CHMOD := chmod
|
|
CP := cp
|
|
CUT := cut
|
|
DATE := date
|
|
DIFF := diff
|
|
DIRNAME := dirname
|
|
FIND := find
|
|
FIND_DELETE := -delete
|
|
ECHO := echo
|
|
EGREP := grep -E
|
|
FGREP := grep -F
|
|
GREP := grep
|
|
GZIP := gzip
|
|
HEAD := head
|
|
LS := ls
|
|
LN := ln
|
|
MIG := mig
|
|
MKDIR := mkdir
|
|
MV := mv
|
|
NICE := nice
|
|
PATCH := patch
|
|
PRINTF := printf
|
|
RM := rm -f
|
|
RMDIR := rmdir
|
|
SED := sed
|
|
SH := sh
|
|
SORT := sort
|
|
TAR := tar
|
|
TAIL := tail
|
|
TEE := tee
|
|
TR := tr
|
|
TOUCH := touch
|
|
WC := wc
|
|
XARGS := xargs
|
|
ZIPEXE := zip
|
|
UNZIP := unzip
|
|
EXPR := expr
|
|
FILE := file
|
|
ULIMIT := ulimit
|
|
|
|
ifeq ($(OPENJDK_BUILD_OS), windows)
|
|
PATHTOOL := cygpath
|
|
endif
|
|
|
|
# These settings are needed to run testing with jvmti agent
|
|
ifeq ($(OPENJDK_BUILD_OS), linux)
|
|
LIBRARY_PREFIX := lib
|
|
SHARED_LIBRARY_SUFFIX := .so
|
|
endif
|
|
|
|
ifeq ($(OPENJDK_BUILD_OS), windows)
|
|
LIBRARY_PREFIX :=
|
|
SHARED_LIBRARY_SUFFIX := .dll
|
|
endif
|
|
|
|
ifeq ($(OPENJDK_BUILD_OS), macosx)
|
|
LIBRARY_PREFIX := lib
|
|
SHARED_LIBRARY_SUFFIX := .dylib
|
|
endif
|