Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
48c8494
8387853: HttpServer unexpectedly closes the connection after first re…
vy Aug 13, 2026
3b1f203
8390136: ResourceMark needed for external_name calls in continuationF…
MBaesken Aug 13, 2026
0a2e196
8390190: [IR-Framework] Integrate valhalla IR nodes into IRNode.java
mhaessig Aug 13, 2026
34dda4e
8389325: Remove the UseObjectMonitorTable flag and related code
fbredber Aug 13, 2026
0ffccaa
8390122: Shenandoah: SBS::oop_load drops memory ordering decorators
shipilev Aug 13, 2026
740621f
8382604: Remove unused kscratch temp register from mask_opers_evex
Aug 13, 2026
5a91262
8389209: Add sccache support to the build
raneashay Aug 13, 2026
66a0483
8388458: RISC-V: Use LSB for conditional card mark in G1 post-write b…
zifeihan Aug 13, 2026
b820734
8386510: AArch64: MacroAssembler constructor undefined behaviour
Aug 13, 2026
1f74b50
8389868: Empty LocalVariableTable attribute is generated for an unuse…
Aug 13, 2026
bc6d4fd
8390215: Shenandoah: Simplify GC logging by dropping unnecessary suff…
shipilev Aug 13, 2026
f9ee545
8389293: Remove developer flag -XX:ArchiveHeapTestClass
iklam Aug 13, 2026
4771360
8389866: ZGC: Accepts an extremely negative ZAllocationSpikeTolerance…
Aug 13, 2026
3efdba9
8388596: Virtual-thread freeze asserts on MethodHandle frame with sca…
pchilano Aug 13, 2026
844f1fe
8389071: Javac crashes with OutOfMemoryError during Least Upper Bound…
Aug 13, 2026
993f7b3
8389187: -XX:+VerifyContinuations triggers assert(max_thawing_size() …
pchilano Aug 13, 2026
aa0fbef
8387792: Enable PAC-RET for VM code on Windows/ARM64
raneashay Aug 13, 2026
9646856
8387332: Template Framework: Add utility methods to build scopes
chhagedorn Aug 14, 2026
a0d9b0a
8389987: null is accepted as synchronized lock
lahodaj Aug 14, 2026
88dfb74
8389659: Cannot invoke "com.sun.tools.javac.code.Type.getTag()" becau…
lahodaj Aug 14, 2026
782b49e
8378525: ZGC: Refactor ZBarrierSet to better fit with ZGC coding style
stefank Aug 14, 2026
16bf273
8390329: Obsolete AlwaysCompileLoopMethods VM flag
Aug 14, 2026
982afa5
8388525: Disallow different module options between AOT training and a…
iklam Aug 15, 2026
2749a4c
8389677: RISC-V: Prefer vmv.v.i to zero vector registers
zangcq Aug 15, 2026
3d47518
8387267: Editor for the last column in JTable is hard to activate aft…
prsadhuk Aug 15, 2026
88521b3
8390249: Add missing @Override annotations in "javax.imageio.stream" …
mrserb Aug 17, 2026
157c492
8390183: Some typos in JavaDocs for the java.desktop module
prsadhuk Aug 17, 2026
3ef007a
8390296: Swing MultiUIDefaults#containsKey inconsistancy
prsadhuk Aug 17, 2026
5eaf42f
8389579: C2: Missed Ideal optimization opportunity in PhaseIterGVN fo…
hgqxjj Aug 17, 2026
5962e82
8386580: Typing corrections and style improvements in x86 ML DSA/KEM/…
Aug 17, 2026
1d3c7e2
8252185: [Valhalla] Improve performance of identityHashCode for value…
marc-chevalier Aug 17, 2026
4555cf2
8390101: RISC-V: Use vmandn.mm for vector mask and-not
DingliZhang Aug 17, 2026
8588809
8387494: ResolvedMethodName::vmtarget is not updated when class in AO…
iklam Aug 17, 2026
3eefd7a
8389829: (fs) Copying symbolic link fails in Developer Mode (win)
raneashay Aug 17, 2026
134c07f
8390447: Update ProblemList-Xcomp.txt entries for 8388438
iklam Aug 17, 2026
c328739
8390357: AOTMapTest.java fails --vmoptions:--enable-preview
iklam Aug 17, 2026
f5a5934
8390202: Typos in the javadoc of various classes in jdk.sctp module
jaikiran Aug 17, 2026
0d2320a
8368350: Do not support -XX:+AOTClassLinking for static CDS archive
Aug 17, 2026
079d77c
8390184: Some typos in the jdk.jdi module
Aug 17, 2026
efd8ae1
8378896: A make target "clean-microbenchmark", for micro development
benshuai5D Aug 17, 2026
9c924f9
8382471: Improve Resource Resolving
wangweij Apr 30, 2026
d8605e3
8384708: Enhance HTTP Connections
dfuch Jun 12, 2026
b2d3948
8386298: Improve font loading
prrace Jun 17, 2026
44e6f04
8386205: Enhance TLS server
Jun 24, 2026
9139138
8390429: Enable suspend001 jdb test to run with virtual threads
shivshah-oracle Aug 17, 2026
f3cf3e2
8390484: Problem list appcds/aotCache/ tests
Aug 17, 2026
4d812a6
8390452: RISC-V: gc/shenandoah/TestSieveObjects.java fails with "asse…
DingliZhang Aug 17, 2026
92e236a
8390493: Remove vmTestbase/nsk/jvmti/IterateOverReachableObjects/iter…
Aug 18, 2026
764e83c
8390441: RISC-V: Fix C2 stack-to-stack spill copies with large offsets
zifeihan Aug 18, 2026
4a653f8
8390455: Fix more typos in java.desktop module
prsadhuk Aug 18, 2026
64e0cf4
8389859: Missing TYPE_USE annotations on type variable uses
Aug 18, 2026
c2d84f0
8362117: C2: compiler/stringopts/TestStackedConcatsAppendUncommonTrap…
Aug 18, 2026
0741f25
8390467: C2: _map != nullptr assert failure in LibraryCallKit::inline…
rwestrel Aug 18, 2026
c2e49da
8390065: TestDockerMemoryMetrics.java fails in MetricsMemoryTester fa…
Domest0s Aug 18, 2026
3be31d1
8390133: JFR: OngoingStream reads stale header
egahlin Aug 18, 2026
8a507d8
8390102: RISC-V: Support AOT Code Cache
cczdsq Aug 18, 2026
60140b6
8381564: [IR Framework] Fix race between accept thread and Driver VM …
chhagedorn Aug 18, 2026
29c7198
8390307: Shenandoah: Print region age in region printouts
shipilev Aug 18, 2026
57649b4
8389873: C2 crashes in ConnectionGraph::can_reduce_phi during escape …
Aug 18, 2026
c82f3b8
8388292: Shenandoah: Micro-optimize CompressedOops uses
shipilev Aug 18, 2026
8ac703a
8386861: [Valhalla] emit_opSubstitutabilityCheck speedup
PeyaPeyaPeyang Aug 18, 2026
87e206b
8388792: False positives in jdk_foreign test suite
JornVernee Aug 18, 2026
2432d59
Merge
Aug 18, 2026
8f39657
8368597: make should support selection by status for JTREG tests
Aug 19, 2026
a30608c
8389858: [VectorAPI] VectorMask.toVector API note incorrectly describ…
Aug 19, 2026
d59bc6d
8390330: Remove deprecated Log() constructor and logTo() method from …
shivshah-oracle Aug 19, 2026
7d95b50
8389378: RISC-V: Eliminate redundant sext.w by fusing ConvI2L with in…
zifeihan Aug 19, 2026
4b77534
8390590: [BACKOUT] C2: Fix the memory around some intrinsics nodes
Aug 19, 2026
aa7e2c6
8390432: Zero i386 build broken after JDK-8389219
vpa1977 Aug 19, 2026
efb9d9f
8390044: RISC-V: Support vector integer division
Elain520 Aug 19, 2026
90f142d
8387014: C2: stringopts produces NegativeArraySizeException instead o…
Aug 19, 2026
45f3ef3
8389576: Test resourcehogs/runtime/ValueTearingTest.java fails due to…
johan-sjolen Aug 19, 2026
a158131
8389096: Multiple hangs trying to execute GC with GCALotAtAllSafepoin…
Aug 19, 2026
03f94c6
8383567: VM.class_print_layout should use external class names
caspernorrbin Aug 19, 2026
6994a51
8390591: Add regression test for JDK-8390590
Aug 19, 2026
d36bead
8390480: Remove unnecessary check in ThawBase::patch
pchilano Aug 19, 2026
5da4e41
8389310: Virtual thread can miss deoptimization when propagating exce…
pchilano Aug 19, 2026
c1090a0
8384600: Improve java_lang_Throwable::fill_in_stack_trace
coleenp Aug 19, 2026
bbd0ca0
8388979: javac crashes with NullPointerException in Types.erasure whe…
Aug 19, 2026
bc03802
8378071: Class ThreadSnapshot$ThreadLock is not initialized by VM
lmesnik Aug 19, 2026
212d3a2
8390683: Problemlist gc/TestGCALotAtSafepoints tests
Aug 19, 2026
d4bfdf7
8387798: VectorAPI: VectorOperators.DIV javadoc incorrectly says "Flo…
Aug 19, 2026
9a601b4
8390335: Refactor AOTClassLocationConfig::validate()
iklam Aug 19, 2026
84f01bb
8390240: Full chunk thawing path misses deoptimization check in monit…
pchilano Aug 19, 2026
bd929ac
8390522: RISC-V: Avoid clobbering ra in the nmethod entry barrier
zifeihan Aug 20, 2026
de2b1b8
8298991: vmTestbase/nsk/sysdict tests fail with OOME: Java heap space…
shivshah-oracle Aug 20, 2026
87952df
8390521: RISC-V: Clean up vector register dispatch in MachSpillCopyNo…
DingliZhang Aug 20, 2026
ab2ddc4
8389939: RISC-V: OrderAccess can be simplified by UseZtso
Aug 20, 2026
6175a0a
8390625: C2_MacroAssembler::vector_iota_entry_index hits assert(regs[…
TobiHartmann Aug 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 16 additions & 5 deletions doc/building.html
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ <h1 class="title">Building the JDK</h1>
<li><a href="#virus-checking" id="toc-virus-checking">Virus
Checking</a></li>
<li><a href="#ccache" id="toc-ccache">Ccache</a></li>
<li><a href="#sccache" id="toc-sccache">Sccache</a></li>
<li><a href="#precompiled-headers"
id="toc-precompiled-headers">Precompiled Headers</a></li>
<li><a href="#icecc-icecream" id="toc-icecc-icecream">Icecc /
Expand Down Expand Up @@ -365,11 +366,13 @@ <h3 id="building-on-aarch64">Building on aarch64</h3>
also possible to use <a href="#cross-compiling">cross-compiling</a>.</p>
<h4 id="branch-protection">Branch Protection</h4>
<p>In order to use Branch Protection features in the VM,
<code>--enable-branch-protection</code> must be used. This option
requires C++ compiler support (GCC 9.1.0+ or Clang 10+). The resulting
build can be run on both machines with and without support for branch
protection in hardware. Branch Protection is only supported for Linux
targets.</p>
<code>--enable-branch-protection</code> must be used. This option requires C++
compiler support for <code>-mbranch-protection=standard</code> in GCC 9.1.0+ or
Clang 10+ on Linux/AArch64 or for <code>/guard:signret</code> in Visual Studio
2019+ on Windows/ARM64. The resulting build can be run on both machines with and
without support for branch protection in hardware. Branch Protection is fully
supported for the Linux/AArch64 target and only partially supported for the
Windows/ARM64 targets.</p>
<h3 id="building-on-32-bit-arm">Building on 32-bit ARM</h3>
<p>This is not recommended. Instead, see the section on <a
href="#cross-compiling">Cross-compiling</a>.</p>
Expand Down Expand Up @@ -1814,6 +1817,14 @@ <h3 id="ccache">Ccache</h3>
often rebuild the same sources. Your mileage may vary however, so we
recommend evaluating it for yourself. To enable it, make sure it's on
the path and configure with <code>--enable-ccache</code>.</p>
<h3 id="sccache">Sccache</h3>
<p>The JDK build supports building with sccache when using gcc, clang, or
Microsoft toolchains. To enable it, make sure the sccache binary is on the path
(or specify the path to the binary using the <code>SCCACHE</code> argument to
the configure script) and configure with <code>--enable-sccache</code>. To
optionally specify where sccache stores its cache files, use
<code>--with-sccache-dir</code>. Precompiled headers are disabled when sccache
is enabled.</p>
<h3 id="precompiled-headers">Precompiled Headers</h3>
<p>By default, the Hotspot build uses pre-compiled headers (PCH) on the
toolchains were it is properly supported (clang, gcc, and Visual
Expand Down
17 changes: 14 additions & 3 deletions doc/building.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,11 @@ possible to use [cross-compiling](#cross-compiling).

In order to use Branch Protection features in the VM,
`--enable-branch-protection` must be used. This option requires C++ compiler
support (GCC 9.1.0+ or Clang 10+). The resulting build can be run on both
machines with and without support for branch protection in hardware. Branch
Protection is only supported for Linux targets.
support for `-mbranch-protection=standard` in GCC 9.1.0+ or Clang 10+ on
Linux/AArch64 or for `/guard:signret` in Visual Studio 2019+ on Windows/ARM64.
The resulting build can be run on both machines with and without support for
branch protection in hardware. Branch Protection is fully supported for the
Linux/AArch64 target and only partially supported for the Windows/ARM64 target.

### Building on 32-bit ARM

Expand Down Expand Up @@ -1555,6 +1557,15 @@ the same sources. Your mileage may vary however, so we recommend evaluating it
for yourself. To enable it, make sure it's on the path and configure with
`--enable-ccache`.

### Sccache

The JDK build supports building with sccache when using gcc, clang, or Microsoft
toolchains. To enable it, make sure the sccache binary is on the path (or
specify the path to the binary using the `SCCACHE` argument to the configure
script) and configure with `--enable-sccache`. To optionally specify where
sccache stores its cache files, use `--with-sccache-dir`. Precompiled headers
are disabled when sccache is enabled.

### Precompiled Headers

By default, the Hotspot build uses pre-compiled headers (PCH) on the toolchains
Expand Down
6 changes: 5 additions & 1 deletion make/Main.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -1420,6 +1420,9 @@ clean: $(CLEAN_DIR_TARGETS)
clean-docs:
$(call CleanDocs)

clean-microbenchmark:
$(call CleanMicrobenchmark)

clean-compile-commands:
$(call CleanMakeSupportDir,compile-commands)

Expand Down Expand Up @@ -1468,7 +1471,8 @@ dist-clean: clean
)
$(ECHO) Cleaned everything, you will have to re-run configure.

ALL_TARGETS += clean clean-docs clean-compile-commands dist-clean $(CLEAN_DIR_TARGETS) \
ALL_TARGETS += clean clean-docs clean-microbenchmark clean-compile-commands \
dist-clean $(CLEAN_DIR_TARGETS) \
$(CLEAN_SUPPORT_DIR_TARGETS) $(CLEAN_TEST_TARGETS) $(CLEAN_PHASE_TARGETS) \
$(CLEAN_MODULE_TARGETS) $(CLEAN_MODULE_PHASE_TARGETS)

Expand Down
8 changes: 8 additions & 0 deletions make/MainSupport.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,14 @@ define CleanDocs
@$(ECHO) " done"
endef

define CleanMicrobenchmark
@$(PRINTF) "Cleaning microbenchmark build artifacts ..."
@$(ECHO) "" $(LOG_DEBUG)
$(RM) -r $(SUPPORT_OUTPUTDIR)/test/micro
$(RM) -r $(TEST_IMAGE_DIR)/micro
@$(ECHO) " done"
endef

# Cleans the dir given as $1
define CleanDir
@$(PRINTF) "Cleaning %s build artifacts ..." "$(strip $1)"
Expand Down
8 changes: 5 additions & 3 deletions make/RunTests.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -1054,9 +1054,11 @@ define SetupRunJtregTestBody
$1_JTREG_BASIC_OPTIONS += -timeoutFactor:$$(JTREG_TIMEOUT_FACTOR)

clean-outputdirs-$1:
$$(call LogWarn, Clean up dirs for $1)
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
$$(RM) -r $$($1_TEST_RESULTS_DIR)
ifeq ($(JTREG_STATUS),)
$$(call LogWarn, Clean up dirs for $1)
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
$$(RM) -r $$($1_TEST_RESULTS_DIR)
endif

$1_COMMAND_LINE := \
$$(JTREG_JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
Expand Down
111 changes: 110 additions & 1 deletion make/autoconf/build-performance.m4
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,109 @@ AC_DEFUN([BPERF_SETUP_CCACHE_USAGE],
fi
])

AC_DEFUN([BPERF_SETUP_SCCACHE],
[
# Check if sccache is available
SCCACHE_AVAILABLE=true

UTIL_LOOKUP_TOOLCHAIN_PROGS(SCCACHE, sccache)

AC_MSG_CHECKING([if sccache is available])
if test "x$TOOLCHAIN_TYPE" != "xgcc" && test "x$TOOLCHAIN_TYPE" != "xclang" && \
test "x$TOOLCHAIN_TYPE" != "xmicrosoft"; then
AC_MSG_RESULT([no, not supported for toolchain type $TOOLCHAIN_TYPE])
SCCACHE_AVAILABLE=false
elif test "x$SCCACHE" = "x"; then
AC_MSG_RESULT([no, sccache binary missing or not executable])
SCCACHE_AVAILABLE=false
else
AC_MSG_RESULT([yes])
fi

SCCACHE_STATUS=""
UTIL_ARG_ENABLE(NAME: sccache, DEFAULT: false, AVAILABLE: $SCCACHE_AVAILABLE,
DESC: [enable using sccache to speed up recompilations],
CHECKING_MSG: [if sccache is enabled],
IF_ENABLED: [
if test "x$CCACHE" != x; then
AC_MSG_ERROR([Cannot enable both ccache and sccache])
fi
# Versions of sccache before 0.10.0 can restore stale or incorrect
# dependency files for cached C/C++ compilations, breaking our build.
SCCACHE_VERSION=[`$SCCACHE --version | head -n1 | $CUT -d " " -f 2 | $TR -d '\r'`]
if test "x$SCCACHE_VERSION" = x; then
AC_MSG_ERROR([Could not determine sccache version])
fi
HAS_BAD_SCCACHE=[`$ECHO $SCCACHE_VERSION | \
$GREP -e '^0\.[0-9]\.' -e '^0\.[0-9]$'`]
if test "x$HAS_BAD_SCCACHE" != "x"; then
AC_MSG_ERROR([[sccache 0.10.0 or later is required, found $SCCACHE_VERSION]])
fi
SCCACHE_STATUS="Active ($SCCACHE_VERSION)"
],
IF_DISABLED: [
SCCACHE=""
])
AC_SUBST(SCCACHE)

AC_ARG_WITH([sccache-dir],
[AS_HELP_STRING([--with-sccache-dir],
[where to store sccache files @<:@~/.cache/sccache@:>@])])

if test "x$with_sccache_dir" != x; then
SCCACHE_DIR="$with_sccache_dir"
SCCACHE_DIR_FOR_SCCACHE="$SCCACHE_DIR"

# Ideally, we'd use `UTIL_FIXUP_PATH()`, but it expects the supplied path to
# already exist, which might not be true for the sccache directory during
# the configure step. As a workaround, we manually invoke fixpath.sh.
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
SCCACHE_DIR_FOR_SCCACHE=`$FIXPATH_BASE -m print "$SCCACHE_DIR_FOR_SCCACHE"`
fi

SET_SCCACHE_DIR="SCCACHE_DIR=$SCCACHE_DIR_FOR_SCCACHE"
if test "x$SCCACHE" = x; then
AC_MSG_WARN([--with-sccache-dir has no meaning when sccache is not enabled])
fi
fi

if test "x$SCCACHE" != x; then
BPERF_SETUP_SCCACHE_USAGE
fi
])

AC_DEFUN([BPERF_SETUP_SCCACHE_USAGE],
[
if test "x$SCCACHE" != x; then
if test "x$USE_PRECOMPILED_HEADER" = "xtrue"; then
if test "x$PRECOMPILED_HEADERS_EXPLICITLY_SET" = "xtrue"; then
AC_MSG_ERROR([Cannot use sccache with precompiled headers. Use --disable-precompiled-headers.])
else
AC_MSG_NOTICE([Disabling precompiled headers because sccache is enabled])
USE_PRECOMPILED_HEADER=false
fi
fi

# On Windows, the sccache binary must be launched through fixpath and the
# compiler argument passed to sccache must be the actual compiler
# (gcc/clang/cl) and not another fixpath invocation, otherwise sccache will
# try to execute fixpath as the compiler.
[ if [[ "$OPENJDK_BUILD_OS" = "windows" && "$SCCACHE" =~ ^"$FIXPATH " ]]; then ]
[ if [[ "$CC" =~ ^"$FIXPATH " ]]; then ]
CC="${CC#"$FIXPATH "}"
[ fi ]
[ if [[ "$CXX" =~ ^"$FIXPATH " ]]; then ]
CXX="${CXX#"$FIXPATH "}"
[ fi ]
[ fi ]

if test "x$SET_SCCACHE_DIR" != x; then
SCCACHE="$SET_SCCACHE_DIR $SCCACHE"
mkdir -p "$SCCACHE_DIR" > /dev/null 2>&1
fi
fi
])

################################################################################
#
# Runs icecc-create-env once and prints the error if it fails
Expand Down Expand Up @@ -372,7 +475,13 @@ AC_DEFUN_ONCE([BPERF_SETUP_PRECOMPILED_HEADERS],

UTIL_ARG_ENABLE(NAME: precompiled-headers, DEFAULT: auto,
RESULT: USE_PRECOMPILED_HEADER, AVAILABLE: $PRECOMPILED_HEADERS_AVAILABLE,
DESC: [enable using precompiled headers when compiling C++])
DESC: [enable using precompiled headers when compiling C++],
IF_GIVEN: [
PRECOMPILED_HEADERS_EXPLICITLY_SET=true
],
IF_NOT_GIVEN: [
PRECOMPILED_HEADERS_EXPLICITLY_SET=false
])
AC_SUBST(USE_PRECOMPILED_HEADER)
])

Expand Down
3 changes: 3 additions & 0 deletions make/autoconf/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,9 @@ BPERF_SETUP_PRECOMPILED_HEADERS
# Setup use of ccache, if available
BPERF_SETUP_CCACHE

# Setup use of sccache, if available
BPERF_SETUP_SCCACHE

################################################################################
#
# And now the finish...
Expand Down
16 changes: 13 additions & 3 deletions make/autoconf/flags-cflags.m4
Original file line number Diff line number Diff line change
Expand Up @@ -945,17 +945,27 @@ AC_DEFUN_ONCE([FLAGS_SETUP_BRANCH_PROTECTION],
[
# Is branch protection available?
BRANCH_PROTECTION_AVAILABLE=false
BRANCH_PROTECTION_FLAG="-mbranch-protection=standard"
BRANCH_PROTECTION_CFLAG=""
BRANCH_PROTECTION_ASFLAG=""

if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$BRANCH_PROTECTION_FLAG],
BRANCH_PROTECTION_CFLAG="-mbranch-protection=standard"
# The GCC/Clang assembler accepts the same flag as the compiler.
BRANCH_PROTECTION_ASFLAG="$BRANCH_PROTECTION_CFLAG"
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$BRANCH_PROTECTION_CFLAG],
IF_TRUE: [BRANCH_PROTECTION_AVAILABLE=true])
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
BRANCH_PROTECTION_CFLAG="/guard:signret"
# MSVC's assembler does not support branch protection flags, so
# BRANCH_PROTECTION_ASFLAG is intentionally left empty.
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$BRANCH_PROTECTION_CFLAG],
IF_TRUE: [BRANCH_PROTECTION_AVAILABLE=true])
fi
fi

UTIL_ARG_ENABLE(NAME: branch-protection, DEFAULT: false,
RESULT: BRANCH_PROTECTION_ENABLED, AVAILABLE: $BRANCH_PROTECTION_AVAILABLE,
DESC: [enable branch protection when compiling C/C++],
IF_ENABLED: [BRANCH_PROTECTION_CFLAGS=$BRANCH_PROTECTION_FLAG])
IF_ENABLED: [BRANCH_PROTECTION_CFLAGS=$BRANCH_PROTECTION_CFLAG])
])
2 changes: 1 addition & 1 deletion make/autoconf/flags-other.m4
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ AC_DEFUN([FLAGS_SETUP_ASFLAGS_CPU_DEP],
fi
if test "x$BRANCH_PROTECTION_ENABLED" = "xtrue"; then
$2JVM_ASFLAGS="${$2JVM_ASFLAGS} $BRANCH_PROTECTION_FLAG"
$2JVM_ASFLAGS="${$2JVM_ASFLAGS} $BRANCH_PROTECTION_ASFLAG"
fi
AC_SUBST($2JVM_ASFLAGS)
Expand Down
3 changes: 3 additions & 0 deletions make/autoconf/help.m4
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,9 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
if test "x$CCACHE_STATUS" != "x"; then
$ECHO "* ccache status: $CCACHE_STATUS"
fi
if test "x$SCCACHE_STATUS" != "x"; then
$ECHO "* sccache status: $SCCACHE_STATUS"
fi
$ECHO ""
if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xtrue"; then
Expand Down
5 changes: 3 additions & 2 deletions make/autoconf/spec.gmk.template
Original file line number Diff line number Diff line change
Expand Up @@ -545,7 +545,7 @@ ADLC_LANGSTD_CXXFLAGS := @ADLC_LANGSTD_CXXFLAGS@
ADLC_LDFLAGS := @ADLC_LDFLAGS@

# Tools that potentially need to be cross compilation aware.
CC := @CCACHE@ @ICECC@ @CC@
CC := @SCCACHE@ @CCACHE@ @ICECC@ @CC@

# CFLAGS used to compile the jdk native libraries (C-code)
CFLAGS_JDKLIB := @CFLAGS_JDKLIB@
Expand All @@ -571,7 +571,7 @@ EXTRA_CXXFLAGS := @EXTRA_CXXFLAGS@
EXTRA_LDFLAGS := @EXTRA_LDFLAGS@
EXTRA_ASFLAGS := @EXTRA_ASFLAGS@

CXX := @CCACHE@ @ICECC@ @CXX@
CXX := @SCCACHE@ @CCACHE@ @ICECC@ @CXX@

CPP := @CPP@

Expand Down Expand Up @@ -740,6 +740,7 @@ RCFLAGS := @RCFLAGS@
AWK := @AWK@
BASENAME := @BASENAME@
CAT := @CAT@
SCCACHE := @SCCACHE@
CCACHE := @CCACHE@
# CD is going away, but remains to cater for legacy makefiles.
CD := cd
Expand Down
5 changes: 3 additions & 2 deletions src/hotspot/cpu/aarch64/assembler_aarch64.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -457,17 +457,18 @@ class Address {

Address(address target, relocInfo::relocType rtype = relocInfo::external_word_type);

Address(Register base, RegisterOrConstant index, extend ext = lsl()) {
Address(Register base, RegisterOrConstant index, extend ext = lsl(0)) {
if (index.is_register()) {
_mode = base_plus_offset_reg;
new (&_nonliteral) Nonliteral(base, index.as_register(), 0, ext);
} else {
guarantee(ext.option() == ext::uxtx, "should be");
assert(index.is_constant(), "should be");
assert(ext.shift() == 0, "must be");
_mode = base_plus_offset;
new (&_nonliteral) Nonliteral(base,
noreg,
index.as_constant() << ext.shift());
index.as_constant());
}
}

Expand Down
Loading
Loading