Skip to content

Commit df6ef87

Browse files
committed
Merge
2 parents 3906467 + 6d4782b commit df6ef87

File tree

1,118 files changed

+73809
-12994
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,118 files changed

+73809
-12994
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ jobs:
148148
apt-architecture: 'i386'
149149
# Some multilib libraries do not have proper inter-dependencies, so we have to
150150
# install their dependencies manually.
151-
apt-extra-packages: 'libfreetype6-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libc6-i386'
151+
apt-extra-packages: 'libfreetype6-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libc6-i386 libgcc-s1:i386 libstdc++6:i386'
152152
extra-conf-options: '--with-target-bits=32'
153153
configure-arguments: ${{ github.event.inputs.configure-arguments }}
154154
make-arguments: ${{ github.event.inputs.make-arguments }}

make/RunTests.gmk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,6 @@ define SetupRunMicroTestBody
602602
--add-exports java.base/jdk.internal.classfile.attribute=ALL-UNNAMED \
603603
--add-exports java.base/jdk.internal.classfile.constantpool=ALL-UNNAMED \
604604
--add-exports java.base/jdk.internal.classfile.instruction=ALL-UNNAMED \
605-
--add-exports java.base/jdk.internal.classfile.java.lang.constant=ALL-UNNAMED \
606605
--add-exports java.base/jdk.internal.classfile.components=ALL-UNNAMED \
607606
--add-exports java.base/jdk.internal.classfile.impl=ALL-UNNAMED
608607

make/autoconf/flags-cflags.m4

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,14 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
5151
SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
5252
SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1'
5353
54+
elif test "x$OPENJDK_TARGET_OS" = xaix; then
55+
# Linking is different on aix
56+
SHARED_LIBRARY_FLAGS="-shared -Wl,-bM:SRE -Wl,-bnoentry"
57+
SET_EXECUTABLE_ORIGIN=""
58+
SET_SHARED_LIBRARY_ORIGIN=''
59+
SET_SHARED_LIBRARY_NAME=''
60+
SET_SHARED_LIBRARY_MAPFILE=''
61+
5462
else
5563
# Default works for linux, might work on other platforms as well.
5664
SHARED_LIBRARY_FLAGS='-shared'
@@ -206,7 +214,6 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
206214
WARNINGS_ENABLE_ALL="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
207215
208216
DISABLED_WARNINGS="unknown-warning-option unused-parameter unused"
209-
210217
;;
211218
212219
xlc)
@@ -284,9 +291,15 @@ AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
284291
C_O_FLAG_NONE="${C_O_FLAG_NONE} ${DISABLE_FORTIFY_CFLAGS}"
285292
fi
286293
elif test "x$TOOLCHAIN_TYPE" = xclang; then
287-
C_O_FLAG_HIGHEST_JVM="-O3"
288-
C_O_FLAG_HIGHEST="-O3"
289-
C_O_FLAG_HI="-O3"
294+
if test "x$OPENJDK_TARGET_OS" = xaix; then
295+
C_O_FLAG_HIGHEST_JVM="-O3 -finline-functions"
296+
C_O_FLAG_HIGHEST="-O3 -finline-functions"
297+
C_O_FLAG_HI="-O3 -finline-functions"
298+
else
299+
C_O_FLAG_HIGHEST_JVM="-O3"
300+
C_O_FLAG_HIGHEST="-O3"
301+
C_O_FLAG_HI="-O3"
302+
fi
290303
C_O_FLAG_NORM="-O2"
291304
C_O_FLAG_DEBUG_JVM="-O0"
292305
C_O_FLAG_SIZE="-Os"
@@ -458,6 +471,9 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
458471
# so for debug we build with '-qpic=large -bbigtoc'.
459472
DEBUG_CFLAGS_JVM="-qpic=large"
460473
fi
474+
if test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
475+
DEBUG_CFLAGS_JVM="-fpic -mcmodel=large"
476+
fi
461477
fi
462478
463479
if test "x$DEBUG_LEVEL" != xrelease; then
@@ -493,6 +509,12 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
493509
-fvisibility=hidden -fno-strict-aliasing -fno-omit-frame-pointer"
494510
fi
495511
512+
if test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
513+
# clang compiler on aix needs -ffunction-sections
514+
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -ffunction-sections -ftls-model -fno-math-errno -fstack-protector"
515+
TOOLCHAIN_CFLAGS_JDK="-ffunction-sections -fsigned-char -fstack-protector"
516+
fi
517+
496518
if test "x$TOOLCHAIN_TYPE" = xgcc; then
497519
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fstack-protector"
498520
TOOLCHAIN_CFLAGS_JDK="-pipe -fstack-protector"
@@ -601,6 +623,9 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
601623
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
602624
PICFLAG="-fPIC"
603625
PIEFLAG="-fPIE"
626+
elif test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
627+
JVM_PICFLAG="-fpic -mcmodel=large -Wl,-bbigtoc
628+
JDK_PICFLAG="-fpic
604629
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
605630
# '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
606631
# one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
@@ -746,6 +771,9 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
746771
$1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
747772
fi
748773
fi
774+
if test "x$OPENJDK_TARGET_OS" = xaix; then
775+
$1_CFLAGS_CPU="-mcpu=pwr8"
776+
fi
749777
750778
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
751779
if test "x$FLAGS_CPU" = xppc64; then

make/autoconf/flags-ldflags.m4

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -75,7 +75,11 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
7575
elif test "x$TOOLCHAIN_TYPE" = xclang; then
7676
BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
7777
-fPIC"
78-
78+
if test "x$OPENJDK_TARGET_OS" = xaix; then
79+
BASIC_LDFLAGS="-Wl,-b64 -Wl,-brtl -Wl,-bnorwexec -Wl,-bnolibpath -Wl,-bnoexpall \
80+
-Wl,-bernotok -Wl,-bdatapsize:64k -Wl,-btextpsize:64k -Wl,-bstackpsize:64k"
81+
BASIC_LDFLAGS_JVM_ONLY="$BASIC_LDFLAGS_JVM_ONLY -Wl,-lC_r -Wl,-bbigtoc"
82+
fi
7983
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
8084
BASIC_LDFLAGS="-b64 -brtl -bnorwexec -bnolibpath -bnoexpall -bernotok -btextpsize:64K \
8185
-bdatapsize:64K -bstackpsize:64K"
@@ -88,7 +92,8 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
8892
BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
8993
fi
9094
91-
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
95+
if (test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang) \
96+
&& test "x$OPENJDK_TARGET_OS" != xaix; then
9297
if test -n "$HAS_NOEXECSTACK"; then
9398
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,noexecstack"
9499
fi
@@ -116,6 +121,14 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
116121
if test "x$DEBUG_LEVEL" != xrelease; then
117122
DEBUGLEVEL_LDFLAGS_JVM_ONLY="$DEBUGLEVEL_LDFLAGS_JVM_ONLY -bbigtoc"
118123
fi
124+
125+
elif test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
126+
# We need '-fpic' or '-fpic -mcmodel=large -Wl,-bbigtoc' if the TOC overflows.
127+
# Hotspot now overflows its 64K TOC (currently only for debug),
128+
# so we build with '-fpic -mcmodel=large -Wl,-bbigtoc'.
129+
if test "x$DEBUG_LEVEL" != xrelease; then
130+
DEBUGLEVEL_LDFLAGS_JVM_ONLY="$DEBUGLEVEL_LDFLAGS_JVM_ONLY -Wl,-bbigtoc"
131+
fi
119132
fi
120133
121134
# Setup LDFLAGS for linking executables

make/autoconf/toolchain.m4

Lines changed: 52 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -40,7 +40,7 @@ VALID_TOOLCHAINS_all="gcc clang xlc microsoft"
4040
# These toolchains are valid on different platforms
4141
VALID_TOOLCHAINS_linux="gcc clang"
4242
VALID_TOOLCHAINS_macosx="clang"
43-
VALID_TOOLCHAINS_aix="xlc"
43+
VALID_TOOLCHAINS_aix="xlc clang"
4444
VALID_TOOLCHAINS_windows="microsoft"
4545

4646
# Toolchain descriptions
@@ -234,6 +234,25 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
234234
# First toolchain type in the list is the default
235235
DEFAULT_TOOLCHAIN=${VALID_TOOLCHAINS%% *}
236236
237+
# On AIX the default toolchain depends on the installed (found) compiler
238+
# xlclang++ -> xlc toolchain
239+
# ibm-clang++_r -> clang toolchain
240+
# The compiler is searched on the PATH and TOOLCHAIN_PATH
241+
# xlclang++ has precedence over ibm-clang++_r if both are installed
242+
if test "x$OPENJDK_TARGET_OS" = xaix; then
243+
DEFAULT_TOOLCHAIN="clang"
244+
if test "x$TOOLCHAIN_PATH" != x; then
245+
if test -e ${TOOLCHAIN_PATH}/xlclang++; then
246+
DEFAULT_TOOLCHAIN="xlc"
247+
fi
248+
else
249+
UTIL_LOOKUP_PROGS(XLCLANG_TEST_PATH, xlclang++)
250+
if test "x$XLCLANG_TEST_PATH" != x; then
251+
DEFAULT_TOOLCHAIN="xlc"
252+
fi
253+
fi
254+
fi
255+
237256
if test "x$with_toolchain_type" = xlist; then
238257
# List all toolchains
239258
AC_MSG_NOTICE([The following toolchains are valid on this platform:])
@@ -263,22 +282,40 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
263282
if test "x$TOOLCHAIN_PATH" != x; then
264283
XLC_TEST_PATH=${TOOLCHAIN_PATH}/
265284
fi
266-
267-
XLCLANG_VERSION_OUTPUT=`${XLC_TEST_PATH}xlclang++ -qversion 2>&1 | $HEAD -n 1`
268-
$ECHO "$XLCLANG_VERSION_OUTPUT" | $GREP "IBM XL C/C++ for AIX" > /dev/null
269-
if test $? -eq 0; then
270-
AC_MSG_NOTICE([xlclang++ output: $XLCLANG_VERSION_OUTPUT])
285+
if test "x$TOOLCHAIN_TYPE" = xclang; then
286+
TOOLCHAIN_DESCRIPTION_clang="IBM Open XL C/C++"
287+
XLCLANG_VERSION_OUTPUT=`${XLC_TEST_PATH}ibm-clang++_r --version 2>&1 | $HEAD -n 1`
288+
$ECHO "$XLCLANG_VERSION_OUTPUT" | $GREP "IBM Open XL C/C++ for AIX" > /dev/null
289+
if test $? -eq 0; then
290+
AC_MSG_NOTICE([ibm-clang++_r output: $XLCLANG_VERSION_OUTPUT])
291+
else
292+
AC_MSG_ERROR([ibm-clang++_r version output check failed, output: $XLCLANG_VERSION_OUTPUT])
293+
fi
271294
else
272-
AC_MSG_ERROR([xlclang++ version output check failed, output: $XLCLANG_VERSION_OUTPUT])
295+
XLCLANG_VERSION_OUTPUT=`${XLC_TEST_PATH}xlclang++ -qversion 2>&1 | $HEAD -n 1`
296+
$ECHO "$XLCLANG_VERSION_OUTPUT" | $GREP "IBM XL C/C++ for AIX" > /dev/null
297+
if test $? -eq 0; then
298+
AC_MSG_NOTICE([xlclang++ output: $XLCLANG_VERSION_OUTPUT])
299+
else
300+
AC_MSG_ERROR([xlclang++ version output check failed, output: $XLCLANG_VERSION_OUTPUT])
301+
fi
273302
fi
274303
fi
275304
276-
TOOLCHAIN_CC_BINARY_clang="clang"
305+
if test "x$OPENJDK_TARGET_OS" = xaix; then
306+
TOOLCHAIN_CC_BINARY_clang="ibm-clang_r"
307+
else
308+
TOOLCHAIN_CC_BINARY_clang="clang"
309+
fi
277310
TOOLCHAIN_CC_BINARY_gcc="gcc"
278311
TOOLCHAIN_CC_BINARY_microsoft="cl"
279312
TOOLCHAIN_CC_BINARY_xlc="xlclang"
280313
281-
TOOLCHAIN_CXX_BINARY_clang="clang++"
314+
if test "x$OPENJDK_TARGET_OS" = xaix; then
315+
TOOLCHAIN_CXX_BINARY_clang="ibm-clang++_r"
316+
else
317+
TOOLCHAIN_CXX_BINARY_clang="clang++"
318+
fi
282319
TOOLCHAIN_CXX_BINARY_gcc="g++"
283320
TOOLCHAIN_CXX_BINARY_microsoft="cl"
284321
TOOLCHAIN_CXX_BINARY_xlc="xlclang++"
@@ -966,7 +1003,11 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
9661003
# Setup hotspot lecagy names for toolchains
9671004
HOTSPOT_TOOLCHAIN_TYPE=$TOOLCHAIN_TYPE
9681005
if test "x$TOOLCHAIN_TYPE" = xclang; then
969-
HOTSPOT_TOOLCHAIN_TYPE=gcc
1006+
if test "x$OPENJDK_TARGET_OS" = xaix; then
1007+
HOTSPOT_TOOLCHAIN_TYPE=xlc
1008+
else
1009+
HOTSPOT_TOOLCHAIN_TYPE=gcc
1010+
fi
9701011
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
9711012
HOTSPOT_TOOLCHAIN_TYPE=visCPP
9721013
fi

make/hotspot/gensrc/GensrcAdlc.gmk

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -37,8 +37,13 @@ ifeq ($(call check-jvm-feature, compiler2), true)
3737
ifeq ($(call isBuildOs, linux), true)
3838
ADLC_CFLAGS := -fno-exceptions -DLINUX
3939
else ifeq ($(call isBuildOs, aix), true)
40-
ADLC_LDFLAGS += -q64
41-
ADLC_CFLAGS := -qnortti -qeh -q64 -DAIX
40+
ifeq ($(TOOLCHAIN_TYPE), clang)
41+
ADLC_LDFLAGS += -m64
42+
ADLC_CFLAGS := -fno-rtti -fexceptions -ffunction-sections -m64 -DAIX -mcpu=pwr8
43+
else
44+
ADLC_LDFLAGS += -q64
45+
ADLC_CFLAGS := -qnortti -qeh -q64 -DAIX
46+
endif
4247
else ifeq ($(call isBuildOs, windows), true)
4348
ADLC_LDFLAGS += -nologo
4449
ADLC_CFLAGS := -nologo -EHsc
@@ -167,6 +172,8 @@ ifeq ($(call check-jvm-feature, compiler2), true)
167172

168173
ifeq ($(call check-jvm-feature, zgc), true)
169174
AD_SRC_FILES += $(call uniq, $(wildcard $(foreach d, $(AD_SRC_ROOTS), \
175+
$d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/gc/x/x_$(HOTSPOT_TARGET_CPU).ad \
176+
$d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/gc/x/x_$(HOTSPOT_TARGET_CPU_ARCH).ad \
170177
$d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/gc/z/z_$(HOTSPOT_TARGET_CPU).ad \
171178
$d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/gc/z/z_$(HOTSPOT_TARGET_CPU_ARCH).ad \
172179
)))

make/hotspot/lib/CompileJvm.gmk

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,10 +168,14 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
168168
DISABLED_WARNINGS_clang_management.cpp := missing-field-initializers, \
169169
DISABLED_WARNINGS_clang_notificationThread.cpp := bitwise-instead-of-logical, \
170170
DISABLED_WARNINGS_clang_os_posix.cpp := mismatched-tags missing-field-initializers, \
171+
DISABLED_WARNINGS_clang_aix_os_posix.cpp := format-nonliteral, \
171172
DISABLED_WARNINGS_clang_postaloc.cpp := tautological-undefined-compare, \
172173
DISABLED_WARNINGS_clang_serviceThread.cpp := bitwise-instead-of-logical, \
173174
DISABLED_WARNINGS_clang_vm_version_x86.cpp := missing-field-initializers, \
174175
DISABLED_WARNINGS_clang_zTracer.cpp := undefined-var-template, \
176+
DISABLED_WARNINGS_clang_aix_debug.cpp := format-nonliteral, \
177+
DISABLED_WARNINGS_clang_aix_jvm.cpp := format-nonliteral, \
178+
DISABLED_WARNINGS_clang_aix_osThread_aix.cpp := tautological-undefined-compare, \
175179
DISABLED_WARNINGS_xlc := $(DISABLED_WARNINGS_xlc), \
176180
DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft), \
177181
ASFLAGS := $(JVM_ASFLAGS), \

make/hotspot/lib/JvmFeatures.gmk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ endif
149149
ifneq ($(call check-jvm-feature, zgc), true)
150150
JVM_CFLAGS_FEATURES += -DINCLUDE_ZGC=0
151151
JVM_EXCLUDE_PATTERNS += gc/z
152+
JVM_EXCLUDE_PATTERNS += gc/x
152153
endif
153154

154155
ifneq ($(call check-jvm-feature, shenandoahgc), true)

make/hotspot/lib/JvmOverrideFiles.gmk

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -109,7 +109,11 @@ else ifeq ($(call isTargetOs, macosx), true)
109109
endif
110110

111111
else ifeq ($(call isTargetOs, aix), true)
112-
BUILD_LIBJVM_synchronizer.cpp_CXXFLAGS := -qnoinline
112+
ifeq ($(TOOLCHAIN_TYPE), clang)
113+
BUILD_LIBJVM_synchronizer.cpp_CXXFLAGS := -fno-inline
114+
else
115+
BUILD_LIBJVM_synchronizer.cpp_CXXFLAGS := -qnoinline
116+
endif
113117
BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := $(CXX_O_FLAG_NONE)
114118
# Disable aggressive optimizations for functions in sharedRuntimeTrig.cpp
115119
# and sharedRuntimeTrans.cpp on ppc64.

0 commit comments

Comments
 (0)