Skip to content

Commit d7fa3cc

Browse files
Merge branch 'master' into JDK-8333664
2 parents 098d32d + 4c695fa commit d7fa3cc

File tree

400 files changed

+12278
-4079
lines changed

Some content is hidden

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

400 files changed

+12278
-4079
lines changed

.editorconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,7 @@ trim_trailing_whitespace = true
55

66
[Makefile]
77
trim_trailing_whitespace = true
8+
9+
[src/hotspot/**.{cpp,hpp,h}]
10+
indent_style = space
11+
indent_size = 2

doc/building.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,7 @@ <h2 id="native-compiler-toolchain-requirements">Native Compiler
594594
</tr>
595595
<tr class="odd">
596596
<td>Windows</td>
597-
<td>Microsoft Visual Studio 2022 version 17.6.5</td>
597+
<td>Microsoft Visual Studio 2022 version 17.13.2</td>
598598
</tr>
599599
</tbody>
600600
</table>

doc/building.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -390,11 +390,11 @@ possible to compile the JDK with both older and newer versions, but the closer
390390
you stay to this list, the more likely you are to compile successfully without
391391
issues.
392392

393-
| Operating system | Toolchain version |
394-
| ------------------ | ------------------------------------------- |
395-
| Linux | gcc 14.2.0 |
396-
| macOS | Apple Xcode 14.3.1 (using clang 14.0.3) |
397-
| Windows | Microsoft Visual Studio 2022 version 17.6.5 |
393+
| Operating system | Toolchain version |
394+
| ------------------ | -------------------------------------------- |
395+
| Linux | gcc 14.2.0 |
396+
| macOS | Apple Xcode 14.3.1 (using clang 14.0.3) |
397+
| Windows | Microsoft Visual Studio 2022 version 17.13.2 |
398398

399399
All compilers are expected to be able to handle the C11 language standard for
400400
C, and C++14 for C++.

make/Bundles.gmk

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,11 @@ else
174174
JRE_IMAGE_HOMEDIR := $(JRE_IMAGE_DIR)
175175
JDK_BUNDLE_SUBDIR := jdk-$(VERSION_NUMBER)
176176
JRE_BUNDLE_SUBDIR := jre-$(VERSION_NUMBER)
177+
STATIC_JDK_BUNDLE_SUBDIR := static-jdk-$(VERSION_NUMBER)
177178
ifneq ($(DEBUG_LEVEL), release)
178179
JDK_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
179180
JRE_BUNDLE_SUBDIR := $(JRE_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
181+
STATIC_JDK_BUNDLE_SUBDIR := $(STATIC_JDK_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
180182
endif
181183
# In certain situations, the JDK_IMAGE_DIR points to an image without the
182184
# the symbols and demos. If so, the symobls and demos can be found in a
@@ -500,6 +502,21 @@ ifneq ($(filter static-libs-graal-bundles, $(MAKECMDGOALS)), )
500502
STATIC_LIBS_GRAAL_TARGETS += $(BUILD_STATIC_LIBS_GRAAL_BUNDLE)
501503
endif
502504

505+
#################################################################################
506+
507+
ifneq ($(filter static-jdk-bundles, $(MAKECMDGOALS)), )
508+
STATIC_JDK_BUNDLE_FILES := $(call FindFiles, $(STATIC_JDK_IMAGE_DIR))
509+
510+
$(eval $(call SetupBundleFile, BUILD_STATIC_JDK_BUNDLE, \
511+
BUNDLE_NAME := $(STATIC_JDK_BUNDLE_NAME), \
512+
FILES := $(STATIC_JDK_BUNDLE_FILES), \
513+
BASE_DIRS := $(STATIC_JDK_IMAGE_DIR), \
514+
SUBDIR := $(STATIC_JDK_BUNDLE_SUBDIR), \
515+
))
516+
517+
STATIC_JDK_TARGETS += $(BUILD_STATIC_JDK_BUNDLE)
518+
endif
519+
503520
################################################################################
504521

505522
product-bundles: $(PRODUCT_TARGETS)
@@ -510,11 +527,12 @@ docs-javase-bundles: $(DOCS_JAVASE_TARGETS)
510527
docs-reference-bundles: $(DOCS_REFERENCE_TARGETS)
511528
static-libs-bundles: $(STATIC_LIBS_TARGETS)
512529
static-libs-graal-bundles: $(STATIC_LIBS_GRAAL_TARGETS)
530+
static-jdk-bundles: $(STATIC_JDK_TARGETS)
513531
jcov-bundles: $(JCOV_TARGETS)
514532

515533
.PHONY: product-bundles test-bundles \
516534
docs-jdk-bundles docs-javase-bundles docs-reference-bundles \
517-
static-libs-bundles static-libs-graal-bundles jcov-bundles
535+
static-libs-bundles static-libs-graal-bundles static-jdk-bundles jcov-bundles
518536

519537
################################################################################
520538

make/Docs.gmk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ JAVADOC_DISABLED_DOCLINT_PACKAGES := org.w3c.* javax.smartcardio
9898
JAVADOC_OPTIONS := -use -keywords -notimestamp \
9999
-serialwarn -encoding ISO-8859-1 -docencoding UTF-8 -breakiterator \
100100
-splitIndex --system none -javafx --expand-requires transitive \
101-
--override-methods=summary
101+
--override-methods=summary --syntax-highlight
102102

103103
# The reference options must stay stable to allow for comparisons across the
104104
# development cycle.

make/Main.gmk

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -875,6 +875,12 @@ $(eval $(call SetupTarget, static-libs-graal-bundles, \
875875
DEPS := static-libs-graal-image, \
876876
))
877877

878+
$(eval $(call SetupTarget, static-jdk-bundles, \
879+
MAKEFILE := Bundles, \
880+
TARGET := static-jdk-bundles, \
881+
DEPS := static-jdk-image, \
882+
))
883+
878884
ifeq ($(JCOV_ENABLED), true)
879885
$(eval $(call SetupTarget, jcov-bundles, \
880886
MAKEFILE := Bundles, \

make/autoconf/jdk-options.m4

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -520,8 +520,21 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_UNDEFINED_BEHAVIOR_SANITIZER],
520520
# Silence them for now.
521521
UBSAN_CHECKS="-fsanitize=undefined -fsanitize=float-divide-by-zero -fno-sanitize=shift-base -fno-sanitize=alignment \
522522
$ADDITIONAL_UBSAN_CHECKS"
523-
UBSAN_CFLAGS="$UBSAN_CHECKS -Wno-stringop-truncation -Wno-format-overflow -Wno-array-bounds -Wno-stringop-overflow -fno-omit-frame-pointer -DUNDEFINED_BEHAVIOR_SANITIZER"
523+
UBSAN_CFLAGS="$UBSAN_CHECKS -Wno-array-bounds -fno-omit-frame-pointer -DUNDEFINED_BEHAVIOR_SANITIZER"
524+
if test "x$TOOLCHAIN_TYPE" = "xgcc"; then
525+
UBSAN_CFLAGS="$UBSAN_CFLAGS -Wno-format-overflow -Wno-stringop-overflow -Wno-stringop-truncation"
526+
fi
524527
UBSAN_LDFLAGS="$UBSAN_CHECKS"
528+
# On AIX, the llvm_symbolizer is not found out of the box, so we have to provide the
529+
# full qualified llvm_symbolizer path in the __ubsan_default_options() function in
530+
# make/data/ubsan/ubsan_default_options.c. To get it there we compile our sources
531+
# with an additional define LLVM_SYMBOLIZER, which we set here.
532+
# To calculate the correct llvm_symbolizer path we can use the location of the compiler, because
533+
# their relation is fixed.
534+
if test "x$TOOLCHAIN_TYPE" = "xclang" && test "x$OPENJDK_TARGET_OS" = "xaix"; then
535+
UBSAN_CFLAGS="$UBSAN_CFLAGS -fno-sanitize=function,vptr -DLLVM_SYMBOLIZER=$(dirname $(dirname $CC))/tools/ibm-llvm-symbolizer"
536+
UBSAN_LDFLAGS="$UBSAN_LDFLAGS -fno-sanitize=function,vptr -Wl,-bbigtoc"
537+
fi
525538
UTIL_ARG_ENABLE(NAME: ubsan, DEFAULT: false, RESULT: UBSAN_ENABLED,
526539
DESC: [enable UndefinedBehaviorSanitizer],
527540
CHECK_AVAILABLE: [

make/autoconf/spec.gmk.template

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -846,10 +846,12 @@ SVE_CFLAGS := @SVE_CFLAGS@
846846
JDK_IMAGE_SUBDIR := jdk
847847
JRE_IMAGE_SUBDIR := jre
848848
JCOV_IMAGE_SUBDIR := jdk-jcov
849+
STATIC_JDK_IMAGE_SUBDIR := static-jdk
849850

850851
# Colon left out to be able to override output dir for bootcycle-images
851852
JDK_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR)
852853
JRE_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR)
854+
STATIC_JDK_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(STATIC_JDK_IMAGE_SUBDIR)
853855
JCOV_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JCOV_IMAGE_SUBDIR)
854856

855857
# Test image, as above
@@ -929,6 +931,7 @@ DOCS_JAVASE_BUNDLE_NAME := javase-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz
929931
DOCS_REFERENCE_BUNDLE_NAME := jdk-reference-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz
930932
STATIC_LIBS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs$(DEBUG_PART).tar.gz
931933
STATIC_LIBS_GRAAL_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs-graal$(DEBUG_PART).tar.gz
934+
STATIC_JDK_BUNDLE_NAME := static-jdk-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION)
932935
JCOV_BUNDLE_NAME := jdk-jcov-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION)
933936

934937
JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME)
@@ -939,6 +942,7 @@ TEST_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_BUNDLE_NAME)
939942
DOCS_JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_JDK_BUNDLE_NAME)
940943
DOCS_JAVASE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_JAVASE_BUNDLE_NAME)
941944
DOCS_REFERENCE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_REFERENCE_BUNDLE_NAME)
945+
STATIC_JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(STATIC_JDK_BUNDLE_NAME)
942946
JCOV_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JCOV_BUNDLE_NAME)
943947

944948
# This macro is called to allow inclusion of closed source counterparts.

make/conf/jib-profiles.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1090,7 +1090,7 @@ var getJibProfilesDependencies = function (input, common) {
10901090
var devkit_platform_revisions = {
10911091
linux_x64: "gcc14.2.0-OL6.4+1.0",
10921092
macosx: "Xcode14.3.1+1.0",
1093-
windows_x64: "VS2022-17.6.5+1.0",
1093+
windows_x64: "VS2022-17.13.2+1.0",
10941094
linux_aarch64: "gcc14.2.0-OL7.6+1.0",
10951095
linux_arm: "gcc8.2.0-Fedora27+1.0",
10961096
linux_ppc64le: "gcc14.2.0-Fedora_41+1.0",

make/data/ubsan/ubsan_default_options.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2022, 2025, 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
@@ -43,12 +43,24 @@
4343
#define ATTRIBUTE_USED
4444
#endif
4545

46+
// On AIX, the llvm_symbolizer is not found out of the box, so we have to provide the
47+
// full qualified llvm_symbolizer path in the __ubsan_default_options() function.
48+
// To get it here we compile our sources with an additional define LLVM_SYMBOLIZER
49+
// containing the path, which we set in make/autoconf/jdk-options.m4.
50+
#ifdef LLVM_SYMBOLIZER
51+
#define _LLVM_SYMBOLIZER(X) ",external_symbolizer_path=" X_LLVM_SYMBOLIZER(X)
52+
#define X_LLVM_SYMBOLIZER(X) #X
53+
#else
54+
#define LLVM_SYMBOLIZER
55+
#define _LLVM_SYMBOLIZER(X)
56+
#endif
57+
4658
// Override weak symbol exposed by UBSan to override default options. This is called by UBSan
4759
// extremely early during library loading, before main is called. We need to override the default
4860
// options because by default UBSan only prints a warning for each occurrence. We want jtreg tests
4961
// to fail when undefined behavior is encountered. We also want a full stack trace for the offending
5062
// thread so it is easier to track down. You can override these options by setting the environment
5163
// variable UBSAN_OPTIONS.
5264
ATTRIBUTE_DEFAULT_VISIBILITY ATTRIBUTE_USED const char* __ubsan_default_options() {
53-
return "halt_on_error=1,print_stacktrace=1";
65+
return "halt_on_error=1,print_stacktrace=1" _LLVM_SYMBOLIZER(LLVM_SYMBOLIZER);
5466
}

0 commit comments

Comments
 (0)