Skip to content

Commit 648582a

Browse files
Daniel D. DaughertyDavid Holmes
authored andcommitted
8368714: [BACKOUT] JDK-8368468 Split out everything but configure results from spec.gmk
Reviewed-by: ihse
1 parent 52e7778 commit 648582a

File tree

12 files changed

+466
-525
lines changed

12 files changed

+466
-525
lines changed

make/RunTestsPrebuilt.gmk

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ $(eval $(call SetupVariable,MAKE,make,NO_CHECK))
131131
$(eval $(call SetupVariable,BASH,bash,NO_CHECK))
132132

133133
# Check optional variables
134-
$(eval $(call SetupVariable,JIB_HOME,OPTIONAL))
134+
$(eval $(call SetupVariable,JIB_JAR,OPTIONAL))
135135

136136
# Now that we have verified that we have the required variables available, we
137137
# can include the prebuilt spec file ourselves, without an ephemeral spec
@@ -265,7 +265,7 @@ $(call CreateNewSpec, $(NEW_SPEC), \
265265
SYMBOLS_IMAGE_DIR := $(SYMBOLS_IMAGE_DIR), \
266266
MAKE := $(MAKE), \
267267
BASH := $(BASH), \
268-
JIB_HOME := $(JIB_HOME), \
268+
JIB_JAR := $(JIB_JAR), \
269269
FIXPATH_BASE := $(FIXPATH_BASE), \
270270
FIXPATH := $(FIXPATH), \
271271
OPENJDK_TARGET_OS := $(OPENJDK_TARGET_OS), \
@@ -295,7 +295,6 @@ test-prebuilt:
295295
# ExecuteWithLog is called in RunTests.gmk. The PrepareFailureLogs macro
296296
# is unfortunately not available at this point.
297297
$(call MakeDir, $(MAKESUPPORT_OUTPUTDIR)/failure-logs)
298-
$(call MakeDir, $(JAVA_TMP_DIR))
299298
@$(RM) -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error
300299
# We need to fill the FindTest cache before entering RunTests.gmk.
301300
@cd $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) SPEC=$(SPEC) \

make/RunTestsPrebuiltSpec.gmk

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
# Fake minimalistic spec file for RunTestsPrebuilt.gmk.
2828
################################################################################
2929

30+
# Make sure all shell commands are executed with the C locale
31+
export LC_ALL := C
32+
3033
define VerifyVariable
3134
ifeq ($$($1), )
3235
$$(info Error: Variable $1 is missing, needed by RunTestPrebuiltSpec.gmk)
@@ -54,25 +57,47 @@ $(eval $(call VerifyVariable,BASH))
5457
# The "human readable" name of this configuration
5558
CONF_NAME := run-test-prebuilt
5659

57-
LOCALE_USED := C
58-
5960
# Number of parallel jobs to use for compilation
60-
CONF_JOBS := $(NUM_CORES)
61-
CONF_TEST_JOBS := 0
61+
JOBS ?= $(NUM_CORES)
62+
TEST_JOBS ?= 0
6263

6364
# Use hard-coded values for java flags (one size, fits all!)
6465
JAVA_FLAGS := -Duser.language=en -Duser.country=US
6566
JAVA_FLAGS_BIG := -Xms64M -Xmx2048M
6667
JAVA_FLAGS_SMALL := -XX:+UseSerialGC -Xms32M -Xmx512M -XX:TieredStopAtLevel=1
67-
BUILD_JAVA_FLAGS_SMALL := -Xms32M -Xmx512M -XX:TieredStopAtLevel=1
68-
BOOTCYCLE_JVM_ARGS_BIG := $(JAVA_FLAGS_BIG)
68+
BUILDJDK_JAVA_FLAGS_SMALL := -Xms32M -Xmx512M -XX:TieredStopAtLevel=1
69+
BUILD_JAVA_FLAGS := $(JAVA_FLAGS_BIG)
70+
71+
################################################################################
72+
# Hard-coded values copied from spec.gmk.in.
73+
X :=
74+
SPACE := $(X) $(X)
75+
COMMA := ,
76+
MAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \
77+
MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" LOG_LEVEL=$(LOG_LEVEL)
78+
BASH_ARGS := -o pipefail -e
79+
SHELL := $(BASH) $(BASH_ARGS)
6980

7081
################################################################################
7182
# Set some reasonable defaults for features
7283
DEBUG_LEVEL := release
7384
HOTSPOT_DEBUG_LEVEL := release
7485
BUILD_FAILURE_HANDLER := true
7586

87+
################################################################################
88+
# Alias some paths (that should not really be used) to our JDK image under test.
89+
SUPPORT_OUTPUTDIR := $(OUTPUTDIR)/support
90+
BUILDTOOLS_OUTPUTDIR := $(OUTPUTDIR)/buildtools
91+
HOTSPOT_OUTPUTDIR := $(OUTPUTDIR)/hotspot
92+
JDK_OUTPUTDIR := $(OUTPUTDIR)/jdk
93+
IMAGES_OUTPUTDIR := $(OUTPUTDIR)/images
94+
BUNDLES_OUTPUTDIR := $(OUTPUTDIR)/bundles
95+
TESTMAKE_OUTPUTDIR := $(OUTPUTDIR)/test-make
96+
MAKESUPPORT_OUTPUTDIR := $(OUTPUTDIR)/make-support
97+
BUILDJDK_OUTPUTDIR := $(OUTPUTDIR)/buildjdk
98+
99+
JRE_IMAGE_DIR := $(JDK_IMAGE_DIR)
100+
76101
################################################################################
77102
# Assume build platform is same as target platform
78103
OPENJDK_BUILD_OS := $(OPENJDK_TARGET_OS)
@@ -84,19 +109,30 @@ OPENJDK_BUILD_CPU_ARCH := $(OPENJDK_TARGET_CPU_ARCH)
84109
OPENJDK_BUILD_CPU_BITS := $(OPENJDK_TARGET_CPU_BITS)
85110
OPENJDK_BUILD_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN)
86111

87-
EXTERNAL_BUILDJDK_PATH :=
88-
89112
################################################################################
90113
# Java executable definitions
91-
JAVA_CMD := $(FIXPATH) $(BOOT_JDK)/bin/java
92-
JAVAC_CMD := $(FIXPATH) $(BOOT_JDK)/bin/javac
93-
JAR_CMD := $(FIXPATH) $(BOOT_JDK)/bin/jar
94-
114+
JAVA_CMD := $(BOOT_JDK)/bin/java
115+
JAVAC_CMD := $(BOOT_JDK)/bin/javac
116+
JAR_CMD := $(BOOT_JDK)/bin/jar
117+
JLINK_CMD := $(JDK_OUTPUTDIR)/bin/jlink
118+
JMOD_CMD := $(JDK_OUTPUTDIR)/bin/jmod
119+
120+
JAVA := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
121+
JAVA_SMALL := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
122+
JAVAC := $(FIXPATH) $(JAVAC_CMD)
123+
JAR := $(FIXPATH) $(JAR_CMD)
124+
JLINK := $(FIXPATH) $(JLINK_CMD)
125+
JMOD := $(FIXPATH) $(JMOD_CMD)
126+
127+
JTREG_JAVA := $(FIXPATH) $(JTREG_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
128+
129+
BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
95130
################################################################################
96131
# Some common tools. Assume most common name and no path.
97132
AWK := awk
98133
BASENAME := basename
99134
CAT := cat
135+
CD := cd
100136
CHMOD := chmod
101137
CP := cp
102138
CUT := cut

make/autoconf/boot-jdk.m4

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -376,10 +376,10 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
376376
AC_SUBST(BOOT_JDK)
377377
378378
# Setup tools from the Boot JDK.
379-
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA_CMD, java)
380-
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC_CMD, javac)
381-
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC_CMD, javadoc)
382-
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR_CMD, jar)
379+
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA, java)
380+
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac)
381+
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC, javadoc)
382+
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar)
383383
384384
# Finally, set some other options...
385385

make/autoconf/bootcycle-spec.gmk.template

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,23 @@
2828
# First include the real base spec.gmk file
2929
include @SPEC@
3030

31-
IS_BOOTCYCLE_JDK_SPEC := true
31+
# Override specific values to do a boot cycle build
32+
33+
# Use a different Boot JDK
34+
BOOT_JDK := $(JDK_IMAGE_DIR)
35+
36+
# The bootcycle build has a different output directory
37+
OLD_OUTPUTDIR := @OUTPUTDIR@
38+
OUTPUTDIR := $(OLD_OUTPUTDIR)/bootcycle-build
39+
# No spaces in patsubst to avoid leading space in variable
40+
JAVAC_SERVER_DIR := $(patsubst $(OLD_OUTPUTDIR)%,$(OUTPUTDIR)%,$(JAVAC_SERVER_DIR))
41+
42+
JAVA_CMD := $(FIXPATH) $(BOOT_JDK)/bin/java
43+
JAVAC_CMD := $(FIXPATH) $(BOOT_JDK)/bin/javac
44+
JAR_CMD := $(FIXPATH) $(BOOT_JDK)/bin/jar
45+
# The bootcycle JVM arguments may differ from the original boot jdk.
46+
JAVA_FLAGS_BIG := @BOOTCYCLE_JVM_ARGS_BIG@
47+
# Any CDS settings generated for the bootjdk are invalid in the bootcycle build.
48+
# By filtering out those JVM args, the bootcycle JVM will use its default
49+
# settings for CDS.
50+
JAVA_FLAGS := $(filter-out -XX:SharedArchiveFile% -Xshare%, $(JAVA_FLAGS))

make/autoconf/build-performance.m4

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -130,18 +130,18 @@ AC_DEFUN_ONCE([BPERF_SETUP_BUILD_JOBS],
130130
memory_gb=`expr $MEMORY_SIZE / 1024`
131131
# Pick the lowest of memory in gb and number of cores.
132132
if test "$memory_gb" -lt "$NUM_CORES"; then
133-
CONF_JOBS="$memory_gb"
133+
JOBS="$memory_gb"
134134
else
135-
CONF_JOBS="$NUM_CORES"
135+
JOBS="$NUM_CORES"
136136
fi
137-
if test "$CONF_JOBS" -eq "0"; then
138-
CONF_JOBS=1
137+
if test "$JOBS" -eq "0"; then
138+
JOBS=1
139139
fi
140-
AC_MSG_RESULT([$CONF_JOBS])
140+
AC_MSG_RESULT([$JOBS])
141141
else
142-
CONF_JOBS=$with_jobs
142+
JOBS=$with_jobs
143143
fi
144-
AC_SUBST(CONF_JOBS)
144+
AC_SUBST(JOBS)
145145
])
146146

147147
AC_DEFUN_ONCE([BPERF_SETUP_TEST_JOBS],
@@ -150,11 +150,11 @@ AC_DEFUN_ONCE([BPERF_SETUP_TEST_JOBS],
150150
AC_ARG_WITH(test-jobs, [AS_HELP_STRING([--with-test-jobs],
151151
[number of parallel tests jobs to run @<:@based on build jobs@:>@])])
152152
if test "x$with_test_jobs" = x; then
153-
CONF_TEST_JOBS=0
153+
TEST_JOBS=0
154154
else
155-
CONF_TEST_JOBS=$with_test_jobs
155+
TEST_JOBS=$with_test_jobs
156156
fi
157-
AC_SUBST(CONF_TEST_JOBS)
157+
AC_SUBST(TEST_JOBS)
158158
])
159159

160160
AC_DEFUN([BPERF_SETUP_CCACHE],

make/autoconf/buildjdk-spec.gmk.template

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,81 @@
3030
# First include the real base spec.gmk file
3131
include @SPEC@
3232

33-
IS_BUILD_JDK_SPEC := true
33+
CC := @BUILD_CC@
34+
CXX := @BUILD_CXX@
35+
# Ideally this should be probed by configure but that is tricky to implement,
36+
# and this should work in most cases.
37+
CPP := @BUILD_CC@ -E
38+
LD := @BUILD_LD@
39+
LDCXX := @BUILD_LDCXX@
40+
AS := @BUILD_AS@
41+
NM := @BUILD_NM@
42+
AR := @BUILD_AR@
43+
LIB := @BUILD_LIB@
44+
OBJCOPY := @BUILD_OBJCOPY@
45+
STRIP := @BUILD_STRIP@
46+
SYSROOT_CFLAGS := @BUILD_SYSROOT_CFLAGS@
47+
SYSROOT_LDFLAGS := @BUILD_SYSROOT_LDFLAGS@
48+
49+
# These directories should not be moved to BUILDJDK_OUTPUTDIR
50+
HOTSPOT_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(HOTSPOT_OUTPUTDIR))
51+
BUILDTOOLS_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(BUILDTOOLS_OUTPUTDIR))
52+
SUPPORT_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(SUPPORT_OUTPUTDIR))
53+
JDK_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(JDK_OUTPUTDIR))
54+
IMAGES_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(IMAGES_OUTPUTDIR))
55+
56+
OPENJDK_BUILD_CPU_LEGACY := @OPENJDK_BUILD_CPU_LEGACY@
57+
OPENJDK_BUILD_CPU_LEGACY_LIB := @OPENJDK_BUILD_CPU_LEGACY_LIB@
58+
OPENJDK_BUILD_LIBC := @OPENJDK_BUILD_LIBC@
59+
OPENJDK_TARGET_CPU := @OPENJDK_BUILD_CPU@
60+
OPENJDK_TARGET_CPU_ARCH := @OPENJDK_BUILD_CPU_ARCH@
61+
OPENJDK_TARGET_CPU_BITS := @OPENJDK_BUILD_CPU_BITS@
62+
OPENJDK_TARGET_CPU_ENDIAN := @OPENJDK_BUILD_CPU_ENDIAN@
63+
OPENJDK_TARGET_CPU_LEGACY := @OPENJDK_BUILD_CPU_LEGACY@
64+
OPENJDK_TARGET_LIBC := @OPENJDK_BUILD_LIBC@
65+
OPENJDK_TARGET_OS_INCLUDE_SUBDIR := @OPENJDK_BUILD_OS_INCLUDE_SUBDIR@
66+
67+
HOTSPOT_TARGET_OS := @HOTSPOT_BUILD_OS@
68+
HOTSPOT_TARGET_OS_TYPE := @HOTSPOT_BUILD_OS_TYPE@
69+
HOTSPOT_TARGET_CPU := @HOTSPOT_BUILD_CPU@
70+
HOTSPOT_TARGET_CPU_ARCH := @HOTSPOT_BUILD_CPU_ARCH@
71+
HOTSPOT_TARGET_CPU_DEFINE := @HOTSPOT_BUILD_CPU_DEFINE@
72+
HOTSPOT_TARGET_LIBC := @HOTSPOT_BUILD_LIBC@
73+
74+
CFLAGS_JDKLIB := @OPENJDK_BUILD_CFLAGS_JDKLIB@
75+
CXXFLAGS_JDKLIB := @OPENJDK_BUILD_CXXFLAGS_JDKLIB@
76+
LDFLAGS_JDKLIB := @OPENJDK_BUILD_LDFLAGS_JDKLIB@
77+
CFLAGS_JDKEXE := @OPENJDK_BUILD_CFLAGS_JDKEXE@
78+
CXXFLAGS_JDKEXE := @OPENJDK_BUILD_CXXFLAGS_JDKEXE@
79+
LDFLAGS_JDKEXE := @OPENJDK_BUILD_LDFLAGS_JDKEXE@
80+
81+
JVM_CFLAGS := @OPENJDK_BUILD_JVM_CFLAGS@
82+
JVM_LDFLAGS := @OPENJDK_BUILD_JVM_LDFLAGS@
83+
JVM_ASFLAGS := @OPENJDK_BUILD_JVM_ASFLAGS@
84+
JVM_LIBS := @OPENJDK_BUILD_JVM_LIBS@
85+
86+
FDLIBM_CFLAGS := @OPENJDK_BUILD_FDLIBM_CFLAGS@
87+
88+
INTERIM_LANGTOOLS_ARGS := $(subst $(OUTPUTDIR),$(BUILDJDK_OUTPUTDIR),$(INTERIM_LANGTOOLS_ARGS))
89+
90+
# The compiler for the build platform is likely not warning compatible with the official
91+
# compiler.
92+
WARNINGS_AS_ERRORS := false
93+
DISABLE_WARNING_PREFIX := @BUILD_CC_DISABLE_WARNING_PREFIX@
94+
95+
# Save speed and disk space by not enabling debug symbols for the buildjdk
96+
ENABLE_DEBUG_SYMBOLS := false
97+
98+
JVM_VARIANTS := server
99+
JVM_VARIANT_MAIN := server
100+
JVM_FEATURES_server := cds compiler1 compiler2 g1gc serialgc
101+
102+
# Some users still set EXTRA_*FLAGS on the make command line. Must
103+
# make sure to override that when building buildjdk.
104+
override EXTRA_CFLAGS :=
105+
override EXTRA_CXXFLAGS :=
106+
override EXTRA_LDFLAGS :=
107+
108+
# hsdis is not needed
109+
HSDIS_BACKEND := none
110+
ENABLE_HSDIS_BUNDLING := false

make/autoconf/help.m4

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
305305
$ECHO "* Version string: $VERSION_STRING ($VERSION_SHORT)"
306306
307307
if test "x$SOURCE_DATE" != xupdated; then
308-
source_date_info="$SOURCE_DATE ($SOURCE_DATE_ISO_8601_FIXED)"
308+
source_date_info="$SOURCE_DATE ($SOURCE_DATE_ISO_8601)"
309309
else
310310
source_date_info="Determined at build time"
311311
fi
@@ -330,7 +330,7 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
330330
331331
$ECHO ""
332332
$ECHO "Build performance summary:"
333-
$ECHO "* Build jobs: $CONF_JOBS"
333+
$ECHO "* Build jobs: $JOBS"
334334
$ECHO "* Memory limit: $MEMORY_SIZE MB"
335335
if test "x$CCACHE_STATUS" != "x"; then
336336
$ECHO "* ccache status: $CCACHE_STATUS"

make/autoconf/hotspot.m4

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_MISC],
129129
AC_MSG_RESULT([determined at build time (default)])
130130
else
131131
# If we have a fixed value for SOURCE_DATE, use it as default
132-
HOTSPOT_BUILD_TIME="$SOURCE_DATE_ISO_8601_FIXED"
132+
HOTSPOT_BUILD_TIME="$SOURCE_DATE_ISO_8601"
133133
AC_MSG_RESULT([$HOTSPOT_BUILD_TIME (from --with-source-date)])
134134
fi
135135
fi

make/autoconf/jdk-options.m4

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -897,15 +897,15 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_REPRODUCIBLE_BUILD],
897897
# for the rest of configure.
898898
SOURCE_DATE_EPOCH="$SOURCE_DATE"
899899
if test "x$IS_GNU_DATE" = xyes; then
900-
SOURCE_DATE_ISO_8601_FIXED=`$DATE --utc --date="@$SOURCE_DATE" +"$ISO_8601_FORMAT_STRING" 2> /dev/null`
900+
SOURCE_DATE_ISO_8601=`$DATE --utc --date="@$SOURCE_DATE" +"$ISO_8601_FORMAT_STRING" 2> /dev/null`
901901
else
902-
SOURCE_DATE_ISO_8601_FIXED=`$DATE -u -j -f "%s" "$SOURCE_DATE" +"$ISO_8601_FORMAT_STRING" 2> /dev/null`
902+
SOURCE_DATE_ISO_8601=`$DATE -u -j -f "%s" "$SOURCE_DATE" +"$ISO_8601_FORMAT_STRING" 2> /dev/null`
903903
fi
904904
fi
905905
906906
AC_SUBST(SOURCE_DATE)
907907
AC_SUBST(ISO_8601_FORMAT_STRING)
908-
AC_SUBST(SOURCE_DATE_ISO_8601_FIXED)
908+
AC_SUBST(SOURCE_DATE_ISO_8601)
909909
])
910910

911911
################################################################################

0 commit comments

Comments
 (0)