mirror of
https://github.com/openjdk/jdk.git
synced 2026-08-04 07:05:31 +00:00
Merge branch 'master' into JDK-8350212 to fix conflict.
This commit is contained in:
commit
348cf0e2bc
11
.editorconfig
Normal file
11
.editorconfig
Normal file
@ -0,0 +1,11 @@
|
||||
root = true
|
||||
|
||||
[*.{cpp,hpp,c,h,java,cc,hh,m,mm,S,md,properties,gmk,m4,ac}]
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[Makefile]
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[src/hotspot/**.{cpp,hpp,h}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
4
.github/actions/do-build/action.yml
vendored
4
.github/actions/do-build/action.yml
vendored
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2022, 2025, 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
|
||||
@ -42,7 +42,7 @@ runs:
|
||||
- name: 'Build'
|
||||
id: build
|
||||
run: >
|
||||
make LOG=info ${{ inputs.make-target }}
|
||||
make -k LOG=info ${{ inputs.make-target }}
|
||||
|| bash ./.github/scripts/gen-build-failure-report.sh "$GITHUB_STEP_SUMMARY"
|
||||
shell: bash
|
||||
|
||||
|
||||
5
.github/actions/upload-bundles/action.yml
vendored
5
.github/actions/upload-bundles/action.yml
vendored
@ -32,6 +32,9 @@ inputs:
|
||||
debug-suffix:
|
||||
description: 'File name suffix denoting debug level, possibly empty'
|
||||
required: false
|
||||
bundle-suffix:
|
||||
description: 'Bundle name suffix, possibly empty'
|
||||
required: false
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
@ -75,7 +78,7 @@ runs:
|
||||
- name: 'Upload bundles artifact'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
|
||||
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}${{ inputs.bundle-suffix }}
|
||||
path: bundles
|
||||
retention-days: 1
|
||||
if: steps.bundles.outputs.bundles-found == 'true'
|
||||
|
||||
20
.github/workflows/build-linux.yml
vendored
20
.github/workflows/build-linux.yml
vendored
@ -61,6 +61,9 @@ on:
|
||||
make-arguments:
|
||||
required: false
|
||||
type: string
|
||||
bundle-suffix:
|
||||
required: false
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
@ -71,10 +74,6 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
debug-level: ${{ fromJSON(inputs.debug-levels) }}
|
||||
include:
|
||||
- debug-level: debug
|
||||
flags: --with-debug-level=fastdebug
|
||||
suffix: -debug
|
||||
|
||||
steps:
|
||||
- name: 'Checkout the JDK source'
|
||||
@ -118,7 +117,7 @@ jobs:
|
||||
run: >
|
||||
bash configure
|
||||
--with-conf-name=${{ inputs.platform }}
|
||||
${{ matrix.flags }}
|
||||
${{ matrix.debug-level == 'debug' && '--with-debug-level=fastdebug' || '' }}
|
||||
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
||||
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
|
||||
--with-jtreg=${{ steps.jtreg.outputs.path }}
|
||||
@ -133,17 +132,14 @@ jobs:
|
||||
- name: 'Build'
|
||||
id: build
|
||||
uses: ./.github/actions/do-build
|
||||
env:
|
||||
# Only build static-libs-bundles for release builds.
|
||||
# For debug builds, building static-libs often exceeds disk space.
|
||||
STATIC_LIBS: ${{ matrix.debug-level == 'release' && 'static-libs-bundles' }}
|
||||
with:
|
||||
make-target: '${{ inputs.make-target }} ${STATIC_LIBS} ${{ inputs.make-arguments }}'
|
||||
make-target: '${{ inputs.make-target }} ${{ inputs.make-arguments }}'
|
||||
platform: ${{ inputs.platform }}
|
||||
debug-suffix: '${{ matrix.suffix }}'
|
||||
debug-suffix: "${{ matrix.debug-level == 'debug' && '-debug' || '' }}"
|
||||
|
||||
- name: 'Upload bundles'
|
||||
uses: ./.github/actions/upload-bundles
|
||||
with:
|
||||
platform: ${{ inputs.platform }}
|
||||
debug-suffix: '${{ matrix.suffix }}'
|
||||
debug-suffix: "${{ matrix.debug-level == 'debug' && '-debug' || '' }}"
|
||||
bundle-suffix: ${{ inputs.bundle-suffix }}
|
||||
|
||||
37
.github/workflows/main.yml
vendored
37
.github/workflows/main.yml
vendored
@ -225,6 +225,43 @@ jobs:
|
||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||
if: needs.prepare.outputs.linux-x64-variants == 'true'
|
||||
|
||||
build-linux-x64-static:
|
||||
name: linux-x64-static
|
||||
needs: prepare
|
||||
uses: ./.github/workflows/build-linux.yml
|
||||
with:
|
||||
platform: linux-x64
|
||||
make-target: 'static-jdk-image'
|
||||
# There are issues with fastdebug static build in GHA due to space limit.
|
||||
# Only do release build for now.
|
||||
debug-levels: '[ "release" ]'
|
||||
gcc-major-version: '10'
|
||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||
# It currently doesn't produce any bundles, but probably will do in
|
||||
# the future.
|
||||
bundle-suffix: "-static"
|
||||
if: needs.prepare.outputs.linux-x64 == 'true'
|
||||
|
||||
build-linux-x64-static-libs:
|
||||
name: linux-x64-static-libs
|
||||
needs: prepare
|
||||
uses: ./.github/workflows/build-linux.yml
|
||||
with:
|
||||
platform: linux-x64
|
||||
make-target: 'static-libs-bundles'
|
||||
# Only build static-libs-bundles for release builds.
|
||||
# For debug builds, building static-libs often exceeds disk space.
|
||||
debug-levels: '[ "release" ]'
|
||||
gcc-major-version: '10'
|
||||
configure-arguments: ${{ github.event.inputs.configure-arguments }}
|
||||
make-arguments: ${{ github.event.inputs.make-arguments }}
|
||||
# Upload static libs bundles separately to avoid interference with normal linux-x64 bundle.
|
||||
# This bundle is not used by testing jobs, but downstreams use it to check that
|
||||
# dependent projects, e.g. libgraal, builds fine.
|
||||
bundle-suffix: "-static-libs"
|
||||
if: needs.prepare.outputs.linux-x64-variants == 'true'
|
||||
|
||||
build-linux-cross-compile:
|
||||
name: linux-cross-compile
|
||||
needs: prepare
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -22,3 +22,4 @@ NashornProfile.txt
|
||||
/.cache
|
||||
/.gdbinit
|
||||
/.lldbinit
|
||||
**/core.[0-9]*
|
||||
|
||||
@ -36,6 +36,6 @@ pattern=^([124-8][0-9]{6}): (\S.*)$
|
||||
dirs=test/jdk|test/langtools|test/lib-test|test/hotspot/jtreg|test/jaxp
|
||||
|
||||
[checks "copyright"]
|
||||
files=^(?!LICENSE|license\.txt|.*\.bin|.*\.gif|.*\.jpg|.*\.png|.*\.icon|.*\.tiff|.*\.dat|.*\.patch|.*\.wav|.*\.class|.*-header|.*\.jar|).*
|
||||
files=^(?!LICENSE|license\.txt|.*\.bin|.*\.gif|.*\.jpg|.*\.png|.*\.icon|.*\.tiff|.*\.dat|.*\.patch|.*\.wav|.*\.class|.*-header|.*\.jar).*
|
||||
oracle_locator=.*Copyright \(c\)(.*)Oracle and/or its affiliates\. All rights reserved\.
|
||||
oracle_validator=.*Copyright \(c\) (\d{4})(?:, (\d{4}))?, Oracle and/or its affiliates\. All rights reserved\.
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
# Contributing to the JDK
|
||||
|
||||
Please see the [OpenJDK Developers’ Guide](https://openjdk.org/guide/).
|
||||
Please see the [OpenJDK Developers' Guide](https://openjdk.org/guide/).
|
||||
|
||||
@ -376,7 +376,7 @@ to date at the time of writing.</p>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>macOS</td>
|
||||
<td>macOS 13.x (Ventura)</td>
|
||||
<td>macOS 14.x</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>Windows</td>
|
||||
@ -513,8 +513,8 @@ this makes it difficult for a project such as the JDK to keep pace with
|
||||
a continuously updated machine running macOS. See the section on <a
|
||||
href="#apple-xcode">Apple Xcode</a> on some strategies to deal with
|
||||
this.</p>
|
||||
<p>It is recommended that you use at least macOS 13 (Ventura) and Xcode
|
||||
14, but earlier versions may also work.</p>
|
||||
<p>It is recommended that you use at least macOS 14 and Xcode 15.4, but
|
||||
earlier versions may also work.</p>
|
||||
<p>The standard macOS environment contains the basic tooling needed to
|
||||
build, but for external libraries a package manager is recommended. The
|
||||
JDK uses <a href="https://brew.sh/">homebrew</a> in the examples, but
|
||||
@ -586,15 +586,15 @@ to compile successfully without issues.</p>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>Linux</td>
|
||||
<td>gcc 13.2.0</td>
|
||||
<td>gcc 14.2.0</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>macOS</td>
|
||||
<td>Apple Xcode 14.3.1 (using clang 14.0.3)</td>
|
||||
<td>Apple Xcode 15.4 (using clang 15.0.0)</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>Windows</td>
|
||||
<td>Microsoft Visual Studio 2022 version 17.6.5</td>
|
||||
<td>Microsoft Visual Studio 2022 version 17.13.2</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -604,7 +604,7 @@ standard for C, and C++14 for C++.</p>
|
||||
<p>The minimum accepted version of gcc is 10.0. Older versions will not
|
||||
be accepted by <code>configure</code>.</p>
|
||||
<p>The JDK is currently known to compile successfully with gcc version
|
||||
13.2 or newer.</p>
|
||||
14.2 or newer.</p>
|
||||
<p>In general, any version between these two should be usable.</p>
|
||||
<h3 id="clang">clang</h3>
|
||||
<p>The minimum accepted version of clang is 13. Older versions will not
|
||||
@ -1722,6 +1722,20 @@ packages in the sysroot, configure the build with
|
||||
--with-devkit=$DEVKIT \
|
||||
--with-sysroot=$SYSROOT</code></pre>
|
||||
<p>and run <code>make</code> normally.</p>
|
||||
<h4 id="building-for-windows-aarch64">Building for Windows AArch64</h4>
|
||||
<p>The Visual Studio Build Tools can be used for building the JDK
|
||||
without a full Visual Studio installation. To set up the Visual Studio
|
||||
2022 Build Tools on a Windows AArch64 machine for a native build, launch
|
||||
the installer as follows in a Windows command prompt:</p>
|
||||
<pre><code>vs_buildtools.exe --quiet --wait --norestart --nocache ^
|
||||
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ^
|
||||
--add Microsoft.VisualStudio.Component.VC.CoreBuildTools ^
|
||||
--add Microsoft.VisualStudio.Component.VC.Tools.ARM64 ^
|
||||
--add Microsoft.VisualStudio.Component.Windows11SDK.22621</code></pre>
|
||||
<p>To generate Windows AArch64 builds using Cygwin on a Windows x64
|
||||
machine, you must set the proper target platform by adding
|
||||
<code>--openjdk-target=aarch64-unknown-cygwin</code> to your configure
|
||||
command line.</p>
|
||||
<h2 id="build-performance">Build Performance</h2>
|
||||
<p>Building the JDK requires a lot of horsepower. Some of the build
|
||||
tools can be adjusted to utilize more or less of resources such as
|
||||
|
||||
@ -175,7 +175,7 @@ time of writing.
|
||||
| ----------------- | ---------------------------------- |
|
||||
| Linux/x64 | Oracle Enterprise Linux 6.4 / 8.x |
|
||||
| Linux/aarch64 | Oracle Enterprise Linux 7.6 / 8.x |
|
||||
| macOS | macOS 13.x (Ventura) |
|
||||
| macOS | macOS 14.x |
|
||||
| Windows | Windows Server 2016 |
|
||||
|
||||
The double version numbers for Linux are due to the hybrid model used at
|
||||
@ -327,7 +327,7 @@ difficult for a project such as the JDK to keep pace with a continuously
|
||||
updated machine running macOS. See the section on [Apple Xcode](#apple-xcode)
|
||||
on some strategies to deal with this.
|
||||
|
||||
It is recommended that you use at least macOS 13 (Ventura) and Xcode 14, but
|
||||
It is recommended that you use at least macOS 14 and Xcode 15.4, but
|
||||
earlier versions may also work.
|
||||
|
||||
The standard macOS environment contains the basic tooling needed to build, but
|
||||
@ -390,11 +390,11 @@ possible to compile the JDK with both older and newer versions, but the closer
|
||||
you stay to this list, the more likely you are to compile successfully without
|
||||
issues.
|
||||
|
||||
| Operating system | Toolchain version |
|
||||
| ------------------ | ------------------------------------------- |
|
||||
| Linux | gcc 13.2.0 |
|
||||
| macOS | Apple Xcode 14.3.1 (using clang 14.0.3) |
|
||||
| Windows | Microsoft Visual Studio 2022 version 17.6.5 |
|
||||
| Operating system | Toolchain version |
|
||||
| ------------------ | -------------------------------------------- |
|
||||
| Linux | gcc 14.2.0 |
|
||||
| macOS | Apple Xcode 15.4 (using clang 15.0.0) |
|
||||
| Windows | Microsoft Visual Studio 2022 version 17.13.2 |
|
||||
|
||||
All compilers are expected to be able to handle the C11 language standard for
|
||||
C, and C++14 for C++.
|
||||
@ -404,7 +404,7 @@ C, and C++14 for C++.
|
||||
The minimum accepted version of gcc is 10.0. Older versions will not be accepted
|
||||
by `configure`.
|
||||
|
||||
The JDK is currently known to compile successfully with gcc version 13.2 or
|
||||
The JDK is currently known to compile successfully with gcc version 14.2 or
|
||||
newer.
|
||||
|
||||
In general, any version between these two should be usable.
|
||||
@ -1457,6 +1457,24 @@ sh ./configure --with-jvm-variants=server \
|
||||
|
||||
and run `make` normally.
|
||||
|
||||
#### Building for Windows AArch64
|
||||
The Visual Studio Build Tools can be used for building the JDK without a full
|
||||
Visual Studio installation. To set up the Visual Studio 2022 Build Tools on a
|
||||
Windows AArch64 machine for a native build, launch the installer as follows
|
||||
in a Windows command prompt:
|
||||
|
||||
```
|
||||
vs_buildtools.exe --quiet --wait --norestart --nocache ^
|
||||
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ^
|
||||
--add Microsoft.VisualStudio.Component.VC.CoreBuildTools ^
|
||||
--add Microsoft.VisualStudio.Component.VC.Tools.ARM64 ^
|
||||
--add Microsoft.VisualStudio.Component.Windows11SDK.22621
|
||||
```
|
||||
|
||||
To generate Windows AArch64 builds using Cygwin on a Windows x64 machine,
|
||||
you must set the proper target platform by adding
|
||||
`--openjdk-target=aarch64-unknown-cygwin` to your configure command line.
|
||||
|
||||
## Build Performance
|
||||
|
||||
Building the JDK requires a lot of horsepower. Some of the build tools can be
|
||||
|
||||
@ -207,23 +207,38 @@ the simple "getter".</p></li>
|
||||
<ul>
|
||||
<li><p>All source files must have a globally unique basename. The build
|
||||
system depends on this uniqueness.</p></li>
|
||||
<li><p>Keep the include lines within a section alphabetically sorted by
|
||||
their lowercase value. If an include must be out of order for
|
||||
correctness, suffix with it a comment such as
|
||||
<code>// do not reorder</code>. Source code processing tools can also
|
||||
use this hint.</p></li>
|
||||
<li><p>Put conditional inclusions (<code>#if ...</code>) at the end of
|
||||
the section of HotSpot include lines. This also applies to
|
||||
macro-expanded includes of platform dependent files.</p></li>
|
||||
<li><p>Put system includes in a section after the HotSpot include lines
|
||||
with a blank line separating the two sections.</p></li>
|
||||
<li><p>Do not put non-trivial function implementations in .hpp files. If
|
||||
the implementation depends on other .hpp files, put it in a .cpp or a
|
||||
.inline.hpp file.</p></li>
|
||||
<li><p>.inline.hpp files should only be included in .cpp or .inline.hpp
|
||||
files.</p></li>
|
||||
<li><p>All .inline.hpp files should include their corresponding .hpp
|
||||
file as the first include line. Declarations needed by other files
|
||||
should be put in the .hpp file, and not in the .inline.hpp file. This
|
||||
rule exists to resolve problems with circular dependencies between
|
||||
.inline.hpp files.</p></li>
|
||||
file as the first include line with a blank line separating it from the
|
||||
rest of the include lines. Declarations needed by other files should be
|
||||
put in the .hpp file, and not in the .inline.hpp file. This rule exists
|
||||
to resolve problems with circular dependencies between .inline.hpp
|
||||
files.</p></li>
|
||||
<li><p>Do not include a .hpp file if the corresponding .inline.hpp file
|
||||
is included.</p></li>
|
||||
<li><p>Use include guards for .hpp and .inline.hpp files. The name of
|
||||
the defined guard should be derived from the full search path of the
|
||||
file relative to the hotspot source directory. The guard should be all
|
||||
upper case with all paths separators and periods replaced by
|
||||
underscores.</p></li>
|
||||
<li><p>Some build configurations use precompiled headers to speed up the
|
||||
build times. The precompiled headers are included in the precompiled.hpp
|
||||
file. Note that precompiled.hpp is just a build time optimization, so
|
||||
don't rely on it to resolve include problems.</p></li>
|
||||
<li><p>Keep the include lines alphabetically sorted.</p></li>
|
||||
<li><p>Put conditional inclusions (<code>#if ...</code>) at the end of
|
||||
the include list.</p></li>
|
||||
</ul>
|
||||
<h3 id="jtreg-tests">JTReg Tests</h3>
|
||||
<ul>
|
||||
|
||||
@ -135,9 +135,21 @@ change should be done with a "setter" accessor matched to the simple
|
||||
|
||||
### Source Files
|
||||
|
||||
* All source files must have a globally unique basename. The build
|
||||
* All source files must have a globally unique basename. The build
|
||||
system depends on this uniqueness.
|
||||
|
||||
* Keep the include lines within a section alphabetically sorted by their
|
||||
lowercase value. If an include must be out of order for correctness,
|
||||
suffix with it a comment such as `// do not reorder`. Source code
|
||||
processing tools can also use this hint.
|
||||
|
||||
* Put conditional inclusions (`#if ...`) at the end of the section of HotSpot
|
||||
include lines. This also applies to macro-expanded includes of platform
|
||||
dependent files.
|
||||
|
||||
* Put system includes in a section after the HotSpot include lines with a blank
|
||||
line separating the two sections.
|
||||
|
||||
* Do not put non-trivial function implementations in .hpp files. If
|
||||
the implementation depends on other .hpp files, put it in a .cpp or
|
||||
a .inline.hpp file.
|
||||
@ -146,19 +158,23 @@ a .inline.hpp file.
|
||||
files.
|
||||
|
||||
* All .inline.hpp files should include their corresponding .hpp file as
|
||||
the first include line. Declarations needed by other files should be put
|
||||
in the .hpp file, and not in the .inline.hpp file. This rule exists to
|
||||
resolve problems with circular dependencies between .inline.hpp files.
|
||||
the first include line with a blank line separating it from the rest of the
|
||||
include lines. Declarations needed by other files should be put in the .hpp
|
||||
file, and not in the .inline.hpp file. This rule exists to resolve problems
|
||||
with circular dependencies between .inline.hpp files.
|
||||
|
||||
* Do not include a .hpp file if the corresponding .inline.hpp file is included.
|
||||
|
||||
* Use include guards for .hpp and .inline.hpp files. The name of the defined
|
||||
guard should be derived from the full search path of the file relative to the
|
||||
hotspot source directory. The guard should be all upper case with all paths
|
||||
separators and periods replaced by underscores.
|
||||
|
||||
* Some build configurations use precompiled headers to speed up the
|
||||
build times. The precompiled headers are included in the precompiled.hpp
|
||||
file. Note that precompiled.hpp is just a build time optimization, so
|
||||
don't rely on it to resolve include problems.
|
||||
|
||||
* Keep the include lines alphabetically sorted.
|
||||
|
||||
* Put conditional inclusions (`#if ...`) at the end of the include list.
|
||||
|
||||
### JTReg Tests
|
||||
|
||||
* JTReg tests should have meaningful names.
|
||||
|
||||
@ -106,7 +106,7 @@ Prefer having checks inside test code.
|
||||
|
||||
Not only does having test logic outside, e.g. verification method,
|
||||
depending on asserts in product code contradict with several items
|
||||
above but also decreases test’s readability and stability. It is much
|
||||
above but also decreases test's readability and stability. It is much
|
||||
easier to understand that a test is testing when all testing logic is
|
||||
located inside a test or nearby in shared test libraries. As a rule of
|
||||
thumb, the closer a check to a test, the better.
|
||||
@ -119,7 +119,7 @@ Prefer `EXPECT` over `ASSERT` if possible.
|
||||
|
||||
This is related to the [informativeness](#informativeness) property of
|
||||
tests, information for other checks can help to better localize a
|
||||
defect’s root-cause. One should use `ASSERT` if it is impossible to
|
||||
defect's root-cause. One should use `ASSERT` if it is impossible to
|
||||
continue test execution or if it does not make much sense. Later in
|
||||
the text, `EXPECT` forms will be used to refer to both
|
||||
`ASSERT/EXPECT`.
|
||||
@ -160,7 +160,7 @@ value of the difference between `v1` and `v2` is not greater than `eps`.
|
||||
|
||||
Use string special macros for C strings comparisons.
|
||||
|
||||
`EXPECT_EQ` just compares pointers’ values, which is hardly what one
|
||||
`EXPECT_EQ` just compares pointers' values, which is hardly what one
|
||||
wants comparing C strings. GoogleTest provides `EXPECT_STREQ` and
|
||||
`EXPECT_STRNE` macros to compare C string contents. There are also
|
||||
case-insensitive versions `EXPECT_STRCASEEQ`, `EXPECT_STRCASENE`.
|
||||
@ -226,7 +226,7 @@ subsystem, etc.
|
||||
|
||||
This naming scheme helps to find tests, filter them and simplifies
|
||||
test failure analysis. For example, class `Foo` - test group `Foo`,
|
||||
compiler logging subsystem - test group `CompilerLogging`, G1 GC — test
|
||||
compiler logging subsystem - test group `CompilerLogging`, G1 GC - test
|
||||
group `G1GC`, and so forth.
|
||||
|
||||
### Filename
|
||||
@ -287,7 +287,7 @@ Fixture classes should be named after tested classes, subsystems, etc
|
||||
|
||||
All test purpose friends should have either `Test` or `Testable` suffix.
|
||||
|
||||
It greatly simplifies understanding of friendship’s purpose and allows
|
||||
It greatly simplifies understanding of friendship's purpose and allows
|
||||
statically check that private members are not exposed unexpectedly.
|
||||
Having `FooTest` as a friend of `Foo` without any comments will be
|
||||
understood as a necessary evil to get testability.
|
||||
@ -397,7 +397,7 @@ and filter out inapplicable tests.
|
||||
Restore changed flags.
|
||||
|
||||
It is quite common for tests to configure JVM in a certain way
|
||||
changing flags’ values. GoogleTest provides two ways to set up
|
||||
changing flags' values. GoogleTest provides two ways to set up
|
||||
environment before a test and restore it afterward: using either
|
||||
constructor and destructor or `SetUp` and `TearDown` functions. Both ways
|
||||
require to use a test fixture class, which sometimes is too wordy. The
|
||||
@ -406,7 +406,7 @@ be used in such cases to restore/set values.
|
||||
|
||||
Caveats:
|
||||
|
||||
* Changing a flag’s value could break the invariants between flags' values and hence could lead to unexpected/unsupported JVM state.
|
||||
* Changing a flag's value could break the invariants between flags' values and hence could lead to unexpected/unsupported JVM state.
|
||||
|
||||
* `FLAG_SET_*` macros can change more than one flag (in order to
|
||||
maintain invariants) so it is hard to predict what flags will be
|
||||
|
||||
@ -411,6 +411,13 @@ instrumentation
|
||||
special target <code>jcov-test</code> instead of <code>test</code>, e.g.
|
||||
<code>make jcov-test TEST=jdk_lang</code>. This will make sure the JCov
|
||||
image is built, and that JCov reporting is enabled.</p>
|
||||
<p>To include JCov coverage for just a subset of all modules, you can
|
||||
use the <code>--with-jcov-modules</code> arguments to
|
||||
<code>configure</code>, e.g.
|
||||
<code>--with-jcov-modules=jdk.compiler,java.desktop</code>.</p>
|
||||
<p>For more fine-grained control, you can pass arbitrary filters to JCov
|
||||
using <code>--with-jcov-filters</code>, and you can specify a specific
|
||||
JDK to instrument using <code>--with-jcov-input-jdk</code>.</p>
|
||||
<p>The JCov report is stored in
|
||||
<code>build/$BUILD/test-results/jcov-output/report</code>.</p>
|
||||
<p>Please note that running with JCov reporting can be very memory
|
||||
|
||||
@ -345,6 +345,14 @@ The simplest way to run tests with JCov coverage report is to use the special
|
||||
target `jcov-test` instead of `test`, e.g. `make jcov-test TEST=jdk_lang`. This
|
||||
will make sure the JCov image is built, and that JCov reporting is enabled.
|
||||
|
||||
To include JCov coverage for just a subset of all modules, you can use the
|
||||
`--with-jcov-modules` arguments to `configure`, e.g.
|
||||
`--with-jcov-modules=jdk.compiler,java.desktop`.
|
||||
|
||||
For more fine-grained control, you can pass arbitrary filters to JCov using
|
||||
`--with-jcov-filters`, and you can specify a specific JDK to instrument
|
||||
using `--with-jcov-input-jdk`.
|
||||
|
||||
The JCov report is stored in `build/$BUILD/test-results/jcov-output/report`.
|
||||
|
||||
Please note that running with JCov reporting can be very memory intensive.
|
||||
|
||||
@ -174,9 +174,11 @@ else
|
||||
JRE_IMAGE_HOMEDIR := $(JRE_IMAGE_DIR)
|
||||
JDK_BUNDLE_SUBDIR := jdk-$(VERSION_NUMBER)
|
||||
JRE_BUNDLE_SUBDIR := jre-$(VERSION_NUMBER)
|
||||
STATIC_JDK_BUNDLE_SUBDIR := static-jdk-$(VERSION_NUMBER)
|
||||
ifneq ($(DEBUG_LEVEL), release)
|
||||
JDK_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
|
||||
JRE_BUNDLE_SUBDIR := $(JRE_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
|
||||
STATIC_JDK_BUNDLE_SUBDIR := $(STATIC_JDK_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
|
||||
endif
|
||||
# In certain situations, the JDK_IMAGE_DIR points to an image without the
|
||||
# the symbols and demos. If so, the symobls and demos can be found in a
|
||||
@ -242,7 +244,10 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
|
||||
)
|
||||
|
||||
JDK_SYMBOLS_BUNDLE_FILES := \
|
||||
$(call FindFiles, $(SYMBOLS_IMAGE_DIR))
|
||||
$(filter-out \
|
||||
%.stripped.pdb, \
|
||||
$(call FindFiles, $(SYMBOLS_IMAGE_DIR)) \
|
||||
)
|
||||
|
||||
TEST_DEMOS_BUNDLE_FILES := $(filter $(JDK_DEMOS_IMAGE_HOMEDIR)/demo/%, \
|
||||
$(ALL_JDK_DEMOS_FILES))
|
||||
@ -497,6 +502,21 @@ ifneq ($(filter static-libs-graal-bundles, $(MAKECMDGOALS)), )
|
||||
STATIC_LIBS_GRAAL_TARGETS += $(BUILD_STATIC_LIBS_GRAAL_BUNDLE)
|
||||
endif
|
||||
|
||||
#################################################################################
|
||||
|
||||
ifneq ($(filter static-jdk-bundles, $(MAKECMDGOALS)), )
|
||||
STATIC_JDK_BUNDLE_FILES := $(call FindFiles, $(STATIC_JDK_IMAGE_DIR))
|
||||
|
||||
$(eval $(call SetupBundleFile, BUILD_STATIC_JDK_BUNDLE, \
|
||||
BUNDLE_NAME := $(STATIC_JDK_BUNDLE_NAME), \
|
||||
FILES := $(STATIC_JDK_BUNDLE_FILES), \
|
||||
BASE_DIRS := $(STATIC_JDK_IMAGE_DIR), \
|
||||
SUBDIR := $(STATIC_JDK_BUNDLE_SUBDIR), \
|
||||
))
|
||||
|
||||
STATIC_JDK_TARGETS += $(BUILD_STATIC_JDK_BUNDLE)
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
|
||||
product-bundles: $(PRODUCT_TARGETS)
|
||||
@ -507,11 +527,12 @@ docs-javase-bundles: $(DOCS_JAVASE_TARGETS)
|
||||
docs-reference-bundles: $(DOCS_REFERENCE_TARGETS)
|
||||
static-libs-bundles: $(STATIC_LIBS_TARGETS)
|
||||
static-libs-graal-bundles: $(STATIC_LIBS_GRAAL_TARGETS)
|
||||
static-jdk-bundles: $(STATIC_JDK_TARGETS)
|
||||
jcov-bundles: $(JCOV_TARGETS)
|
||||
|
||||
.PHONY: product-bundles test-bundles \
|
||||
docs-jdk-bundles docs-javase-bundles docs-reference-bundles \
|
||||
static-libs-bundles static-libs-graal-bundles jcov-bundles
|
||||
static-libs-bundles static-libs-graal-bundles static-jdk-bundles jcov-bundles
|
||||
|
||||
################################################################################
|
||||
|
||||
|
||||
@ -34,21 +34,28 @@ else
|
||||
JCOV_INPUT_IMAGE_DIR := $(JDK_IMAGE_DIR)
|
||||
endif
|
||||
|
||||
JCOV_SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/jcov
|
||||
|
||||
#moving instrumented jdk image in and out of jcov_temp because of CODETOOLS-7902299
|
||||
JCOV_TEMP := $(SUPPORT_OUTPUTDIR)/jcov_temp
|
||||
JCOV_TEMP := $(JCOV_SUPPORT_DIR)/temp
|
||||
|
||||
ifneq ($(JCOV_MODULES), )
|
||||
JCOV_MODULES_FILTER := $(foreach m, $(JCOV_MODULES), -include_module $m)
|
||||
endif
|
||||
|
||||
$(JCOV_IMAGE_DIR)/release: $(JCOV_INPUT_IMAGE_DIR)/release
|
||||
$(call LogWarn, Creating instrumented jdk image with JCov)
|
||||
$(call MakeDir, $(JCOV_TEMP) $(IMAGES_OUTPUTDIR))
|
||||
$(RM) -r $(JCOV_IMAGE_DIR) $(JCOV_TEMP)/*
|
||||
$(CP) -r $(JCOV_INPUT_IMAGE_DIR) $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)
|
||||
$(JAVA) -Xmx3g -jar $(JCOV_HOME)/lib/jcov.jar JREInstr \
|
||||
$(call ExecuteWithLog, $(JCOV_SUPPORT_DIR)/run-jcov, \
|
||||
$(JAVA) -Xmx3g -jar $(JCOV_HOME)/lib/jcov.jar JREInstr \
|
||||
-t $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)/template.xml \
|
||||
-rt $(JCOV_HOME)/lib/jcov_network_saver.jar \
|
||||
-exclude 'java.lang.Object' \
|
||||
-exclude jdk.test.Main -exclude '**\$Proxy*' \
|
||||
$(JCOV_FILTERS) \
|
||||
$(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)
|
||||
$(JCOV_MODULES_FILTER) $(JCOV_FILTERS) \
|
||||
$(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR))
|
||||
$(MV) $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR) $(JCOV_IMAGE_DIR)
|
||||
$(RMDIR) $(JCOV_TEMP)
|
||||
|
||||
|
||||
@ -79,6 +79,8 @@ JAVADOC_TAGS := \
|
||||
-tag see \
|
||||
-taglet build.tools.taglet.ExtLink \
|
||||
-taglet build.tools.taglet.Incubating \
|
||||
-taglet build.tools.taglet.PreviewNote \
|
||||
--preview-note-tag previewNote \
|
||||
-tagletpath $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||
$(CUSTOM_JAVADOC_TAGS) \
|
||||
#
|
||||
@ -92,20 +94,16 @@ REFERENCE_TAGS := $(JAVADOC_TAGS)
|
||||
JAVADOC_DISABLED_DOCLINT_WARNINGS := missing
|
||||
JAVADOC_DISABLED_DOCLINT_PACKAGES := org.w3c.* javax.smartcardio
|
||||
|
||||
# Allow overriding on the command line
|
||||
# (intentionally sharing name with the javac option)
|
||||
JAVA_WARNINGS_ARE_ERRORS ?= -Werror
|
||||
|
||||
# The initial set of options for javadoc
|
||||
JAVADOC_OPTIONS := -use -keywords -notimestamp \
|
||||
-encoding ISO-8859-1 -docencoding UTF-8 -breakiterator \
|
||||
-serialwarn -encoding ISO-8859-1 -docencoding UTF-8 -breakiterator \
|
||||
-splitIndex --system none -javafx --expand-requires transitive \
|
||||
--override-methods=summary
|
||||
--override-methods=summary --syntax-highlight
|
||||
|
||||
# The reference options must stay stable to allow for comparisons across the
|
||||
# development cycle.
|
||||
REFERENCE_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
|
||||
-encoding ISO-8859-1 -breakiterator -splitIndex --system none \
|
||||
-serialwarn -encoding ISO-8859-1 -breakiterator -splitIndex --system none \
|
||||
-html5 -javafx --expand-requires transitive
|
||||
|
||||
# Should we add DRAFT stamps to the generated javadoc?
|
||||
@ -264,7 +262,7 @@ define create_overview_file
|
||||
$$($1_OVERVIEW): $$($1_OVERVIEW_VARDEPS_FILE)
|
||||
$$(call LogInfo, Creating overview.html for $1)
|
||||
$$(call MakeDir, $$(@D))
|
||||
$$(PRINTF) > $$@ '$$($1_OVERVIEW_TEXT)'
|
||||
$$(ECHO) -n '$$($1_OVERVIEW_TEXT)' > $$@
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
@ -322,7 +320,9 @@ define SetupApiDocsGenerationBody
|
||||
# Ignore the doclint warnings in certain packages
|
||||
$1_OPTIONS += -Xdoclint/package:$$(call CommaList, $$(addprefix -, \
|
||||
$$(JAVADOC_DISABLED_DOCLINT_PACKAGES)))
|
||||
$1_OPTIONS += $$(JAVA_WARNINGS_ARE_ERRORS)
|
||||
ifeq ($$(JAVA_WARNINGS_AS_ERRORS), true)
|
||||
$1_OPTIONS += -Werror
|
||||
endif
|
||||
|
||||
$1_DOC_TITLE := $$($1_LONG_NAME)<br>Version $$(VERSION_SPECIFICATION) API \
|
||||
Specification
|
||||
@ -673,7 +673,7 @@ ifeq ($(ENABLE_PANDOC), true)
|
||||
|
||||
$(foreach m, $(ALL_MODULES), \
|
||||
$(eval MAN_$m := $(call ApplySpecFilter, $(filter %.md, $(call FindFiles, \
|
||||
$(call FindModuleManDirs, $m))))) \
|
||||
$(call FindModuleManDirsForDocs, $m))))) \
|
||||
$(if $(MAN_$m), \
|
||||
$(eval $(call SetupProcessMarkdown, MAN_TO_HTML_$m, \
|
||||
FILES := $(MAN_$m), \
|
||||
|
||||
@ -97,6 +97,10 @@ ifeq ($(JLINK_PRODUCE_LINKABLE_RUNTIME), true)
|
||||
JLINK_JDK_EXTRA_OPTS += --generate-linkable-runtime
|
||||
endif
|
||||
|
||||
ifneq ($(JLINK_USER_EXTRA_FLAGS), )
|
||||
JLINK_JDK_EXTRA_OPTS += $(JLINK_USER_EXTRA_FLAGS)
|
||||
endif
|
||||
|
||||
$(eval $(call SetupExecute, jlink_jdk, \
|
||||
WARN := Creating jdk image, \
|
||||
DEPS := $(JDK_JMODS) $(BASE_RELEASE_FILE) \
|
||||
|
||||
@ -37,11 +37,9 @@ include MakeFileStart.gmk
|
||||
include $(TOPDIR)/make/InitSupport.gmk
|
||||
include LogUtils.gmk
|
||||
|
||||
# Force early generation of module-deps.gmk and find-tests.gmk
|
||||
# Force early generation of module-deps.gmk
|
||||
GENERATE_MODULE_DEPS_FILE := true
|
||||
include Modules.gmk
|
||||
GENERATE_FIND_TESTS_FILE := true
|
||||
include FindTests.gmk
|
||||
|
||||
# Inclusion of this pseudo-target will cause make to execute this file
|
||||
# serially, regardless of -j.
|
||||
@ -139,7 +137,7 @@ main: MAKEOVERRIDES :=
|
||||
main: $(INIT_TARGETS)
|
||||
ifneq ($(SEQUENTIAL_TARGETS)$(PARALLEL_TARGETS), )
|
||||
$(call RotateLogFiles)
|
||||
$(PRINTF) "Building $(TARGET_DESCRIPTION)\n" $(BUILD_LOG_PIPE_SIMPLE)
|
||||
$(ECHO) "Building $(TARGET_DESCRIPTION)" $(BUILD_LOG_PIPE_SIMPLE)
|
||||
ifneq ($(SEQUENTIAL_TARGETS), )
|
||||
# Don't touch build output dir since we might be cleaning. That
|
||||
# means no log pipe.
|
||||
@ -160,7 +158,8 @@ main: $(INIT_TARGETS)
|
||||
-f make/Main.gmk $(USER_MAKE_VARS) \
|
||||
$(PARALLEL_TARGETS) $(COMPARE_BUILD_MAKE) $(BUILD_LOG_PIPE) || \
|
||||
( exitcode=$$? && \
|
||||
$(PRINTF) "\nERROR: Build failed for $(TARGET_DESCRIPTION) (exit code $$exitcode) \n" \
|
||||
$(ECHO) "" $(BUILD_LOG_PIPE_SIMPLE) && \
|
||||
$(ECHO) "ERROR: Build failed for $(TARGET_DESCRIPTION) (exit code $$exitcode)" \
|
||||
$(BUILD_LOG_PIPE_SIMPLE) && \
|
||||
cd $(TOPDIR) && $(MAKE) $(MAKE_ARGS) -j 1 -f make/Init.gmk \
|
||||
on-failure ; \
|
||||
@ -172,7 +171,7 @@ main: $(INIT_TARGETS)
|
||||
if test -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error ; then \
|
||||
exit 1 ; \
|
||||
fi
|
||||
$(PRINTF) "Finished building $(TARGET_DESCRIPTION)\n" $(BUILD_LOG_PIPE_SIMPLE)
|
||||
$(ECHO) "Finished building $(TARGET_DESCRIPTION)" $(BUILD_LOG_PIPE_SIMPLE)
|
||||
$(call ReportProfileTimes)
|
||||
endif
|
||||
|
||||
@ -183,7 +182,8 @@ on-failure:
|
||||
$(call PrintFailureReports)
|
||||
$(call PrintBuildLogFailures)
|
||||
$(call ReportProfileTimes)
|
||||
$(PRINTF) "HELP: Run 'make doctor' to diagnose build problems.\n\n"
|
||||
$(ECHO) "HELP: Run 'make doctor' to diagnose build problems."
|
||||
$(ECHO) ""
|
||||
ifneq ($(COMPARE_BUILD), )
|
||||
$(call CleanupCompareBuild)
|
||||
endif
|
||||
|
||||
@ -173,9 +173,10 @@ define PrintFailureReports
|
||||
$(RM) $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log ; \
|
||||
$(if $(wildcard $(MAKESUPPORT_OUTPUTDIR)/failure-logs/*.log), \
|
||||
( \
|
||||
$(PRINTF) "\n=== Output from failing command(s) repeated here ===\n" ; \
|
||||
$(ECHO) "" ; \
|
||||
$(ECHO) "=== Output from failing command(s) repeated here ===" ; \
|
||||
$(foreach logfile, $(sort $(wildcard $(MAKESUPPORT_OUTPUTDIR)/failure-logs/*.log)), \
|
||||
$(PRINTF) "* For target $(notdir $(basename $(logfile))):\n" ; \
|
||||
$(ECHO) "* For target $(notdir $(basename $(logfile))):" ; \
|
||||
$(if $(filter all, $(LOG_REPORT)), \
|
||||
$(GREP) -v -e "^Note: including file:" < $(logfile) || true ; \
|
||||
, \
|
||||
@ -185,8 +186,9 @@ define PrintFailureReports
|
||||
fi ; \
|
||||
) \
|
||||
) \
|
||||
$(PRINTF) "\n* All command lines available in $(MAKESUPPORT_OUTPUTDIR)/failure-logs.\n" ; \
|
||||
$(PRINTF) "=== End of repeated output ===\n" ; \
|
||||
$(ECHO) "" ; \
|
||||
$(ECHO) "* All command lines available in $(MAKESUPPORT_OUTPUTDIR)/failure-logs." ; \
|
||||
$(ECHO) "=== End of repeated output ===" ; \
|
||||
) >> $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log \
|
||||
) \
|
||||
)
|
||||
@ -195,13 +197,16 @@ endef
|
||||
define PrintBuildLogFailures
|
||||
$(if $(filter none, $(LOG_REPORT)), , \
|
||||
if $(GREP) -q "recipe for target .* failed" $(BUILD_LOG) 2> /dev/null; then \
|
||||
$(PRINTF) "\n=== Make failed targets repeated here ===\n" ; \
|
||||
$(ECHO) "" ; \
|
||||
$(ECHO) "=== Make failed targets repeated here ===" ; \
|
||||
$(GREP) "recipe for target .* failed" $(BUILD_LOG) ; \
|
||||
$(PRINTF) "=== End of repeated output ===\n" ; \
|
||||
$(PRINTF) "\nHELP: Try searching the build log for the name of the first failed target.\n" ; \
|
||||
$(ECHO) "=== End of repeated output ===" ; \
|
||||
$(ECHO) "" ; \
|
||||
$(ECHO) "HELP: Try searching the build log for the name of the first failed target." ; \
|
||||
else \
|
||||
$(PRINTF) "\nNo indication of failed target found.\n" ; \
|
||||
$(PRINTF) "HELP: Try searching the build log for '] Error'.\n" ; \
|
||||
$(ECHO) "" ; \
|
||||
$(ECHO) "No indication of failed target found." ; \
|
||||
$(ECHO) "HELP: Try searching the build log for '] Error'." ; \
|
||||
fi >> $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log ; \
|
||||
$(CAT) $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log \
|
||||
)
|
||||
|
||||
@ -753,6 +753,17 @@ $(eval $(call SetupTarget, test-image-lib, \
|
||||
DEPS := build-test-lib, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupTarget, build-test-setup-aot, \
|
||||
MAKEFILE := test/BuildTestSetupAOT, \
|
||||
DEPS := interim-langtools exploded-image, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupTarget, test-image-setup-aot, \
|
||||
MAKEFILE := test/BuildTestSetupAOT, \
|
||||
TARGET := images, \
|
||||
DEPS := build-test-setup-aot, \
|
||||
))
|
||||
|
||||
ifeq ($(BUILD_FAILURE_HANDLER), true)
|
||||
# Builds the failure handler jtreg extension
|
||||
$(eval $(call SetupTarget, build-test-failure-handler, \
|
||||
@ -864,6 +875,12 @@ $(eval $(call SetupTarget, static-libs-graal-bundles, \
|
||||
DEPS := static-libs-graal-image, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupTarget, static-jdk-bundles, \
|
||||
MAKEFILE := Bundles, \
|
||||
TARGET := static-jdk-bundles, \
|
||||
DEPS := static-jdk-image, \
|
||||
))
|
||||
|
||||
ifeq ($(JCOV_ENABLED), true)
|
||||
$(eval $(call SetupTarget, jcov-bundles, \
|
||||
MAKEFILE := Bundles, \
|
||||
@ -1281,7 +1298,8 @@ all-docs-bundles: docs-jdk-bundles docs-javase-bundles docs-reference-bundles
|
||||
# This target builds the test image
|
||||
test-image: prepare-test-image test-image-jdk-jtreg-native \
|
||||
test-image-demos-jdk test-image-libtest-jtreg-native \
|
||||
test-image-lib test-image-lib-native
|
||||
test-image-lib test-image-lib-native \
|
||||
test-image-setup-aot
|
||||
|
||||
ifneq ($(JVM_TEST_IMAGE_TARGETS), )
|
||||
# If JVM_TEST_IMAGE_TARGETS is externally defined, use it instead of the
|
||||
@ -1309,10 +1327,7 @@ endif
|
||||
################################################################################
|
||||
|
||||
# all-images builds all our deliverables as images.
|
||||
all-images: product-images test-image all-docs-images
|
||||
ifeq ($(call isTargetOs, linux macosx windows), true)
|
||||
all-images: static-jdk-image
|
||||
endif
|
||||
all-images: product-images static-jdk-image test-image all-docs-images
|
||||
|
||||
# all-bundles packages all our deliverables as tar.gz bundles.
|
||||
all-bundles: product-bundles test-bundles docs-bundles static-libs-bundles
|
||||
|
||||
@ -57,77 +57,77 @@ define SetupTargetBody
|
||||
endef
|
||||
|
||||
define CleanDocs
|
||||
@$(PRINTF) "Cleaning docs ..."
|
||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||
@$(ECHO) -n "Cleaning docs ..."
|
||||
@$(ECHO) "" $(LOG_DEBUG)
|
||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/docs
|
||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/javadoc
|
||||
$(RM) -r $(IMAGES_OUTPUTDIR)/docs
|
||||
@$(PRINTF) " done\n"
|
||||
@$(ECHO) " done"
|
||||
endef
|
||||
|
||||
# Cleans the dir given as $1
|
||||
define CleanDir
|
||||
@$(PRINTF) "Cleaning $(strip $1) build artifacts ..."
|
||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||
@$(ECHO) -n "Cleaning $(strip $1) build artifacts ..."
|
||||
@$(ECHO) "" $(LOG_DEBUG)
|
||||
($(CD) $(OUTPUTDIR) && $(RM) -r $1)
|
||||
@$(PRINTF) " done\n"
|
||||
@$(ECHO) " done"
|
||||
endef
|
||||
|
||||
define CleanSupportDir
|
||||
@$(PRINTF) "Cleaning $(strip $1) build artifacts ..."
|
||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||
@$(ECHO) -n "Cleaning$(strip $1) build artifacts ..."
|
||||
@$(ECHO) "" $(LOG_DEBUG)
|
||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/$(strip $1)
|
||||
@$(PRINTF) " done\n"
|
||||
@$(ECHO) " done"
|
||||
endef
|
||||
|
||||
define CleanMakeSupportDir
|
||||
@$(PRINTF) "Cleaning $(strip $1) make support artifacts ..."
|
||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||
@$(ECHO) -n "Cleaning $(strip $1) make support artifacts ..."
|
||||
@$(ECHO) "" $(LOG_DEBUG)
|
||||
$(RM) -r $(MAKESUPPORT_OUTPUTDIR)/$(strip $1)
|
||||
@$(PRINTF) " done\n"
|
||||
@$(ECHO) " done"
|
||||
endef
|
||||
|
||||
define CleanTest
|
||||
@$(PRINTF) "Cleaning test $(strip $1) ..."
|
||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||
@$(ECHO) -n "Cleaning test $(strip $1) ..."
|
||||
@$(ECHO) "" $(LOG_DEBUG)
|
||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/test/$(strip $(subst -,/,$1))
|
||||
# Remove as much of the test directory structure as is empty
|
||||
$(RMDIR) -p $(dir $(SUPPORT_OUTPUTDIR)/test/$(strip $(subst -,/,$1))) 2> /dev/null || true
|
||||
@$(PRINTF) " done\n"
|
||||
@$(ECHO) " done"
|
||||
endef
|
||||
|
||||
define Clean-gensrc
|
||||
@$(PRINTF) "Cleaning gensrc $(if $1,for $(strip $1) )..."
|
||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||
@$(ECHO) -n "Cleaning gensrc $(if $1,for $(strip $1) )..."
|
||||
@$(ECHO) "" $(LOG_DEBUG)
|
||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/gensrc/$(strip $1)
|
||||
@$(PRINTF) " done\n"
|
||||
@$(ECHO) " done"
|
||||
endef
|
||||
|
||||
define Clean-java
|
||||
@$(PRINTF) "Cleaning java $(if $1,for $(strip $1) )..."
|
||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||
@$(ECHO) -n "Cleaning java $(if $1,for $(strip $1) )..."
|
||||
@$(ECHO) "" $(LOG_DEBUG)
|
||||
$(RM) -r $(JDK_OUTPUTDIR)/modules/$(strip $1)
|
||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/special_classes/$(strip $1)
|
||||
$(PRINTF) " done\n"
|
||||
$(PRINTF) "Cleaning headers $(if $1,for $(strip $1)) ..."
|
||||
$(ECHO) " done"
|
||||
$(ECHO) -n "Cleaning headers $(if $1,for $(strip $1) )..."
|
||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/headers/$(strip $1)
|
||||
@$(PRINTF) " done\n"
|
||||
@$(ECHO) " done"
|
||||
endef
|
||||
|
||||
define Clean-native
|
||||
@$(PRINTF) "Cleaning native $(if $1,for $(strip $1) )..."
|
||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||
@$(ECHO) -n "Cleaning native $(if $1,for $(strip $1) )..."
|
||||
@$(ECHO) "" $(LOG_DEBUG)
|
||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/native/$(strip $1)
|
||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_libs/$(strip $1)
|
||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_cmds/$(strip $1)
|
||||
@$(PRINTF) " done\n"
|
||||
@$(ECHO) " done"
|
||||
endef
|
||||
|
||||
define Clean-include
|
||||
@$(PRINTF) "Cleaning include $(if $1,for $(strip $1) )..."
|
||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||
@$(ECHO) -n "Cleaning include $(if $1,for $(strip $1) )..."
|
||||
@$(ECHO) "" $(LOG_DEBUG)
|
||||
$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_include/$(strip $1)
|
||||
@$(PRINTF) " done\n"
|
||||
@$(ECHO) " done"
|
||||
endef
|
||||
|
||||
define CleanModule
|
||||
|
||||
@ -48,6 +48,10 @@ include $(TOPDIR)/make/common/LogUtils.gmk
|
||||
# a configuration. This will define ALL_GLOBAL_TARGETS.
|
||||
include $(TOPDIR)/make/Global.gmk
|
||||
|
||||
# Targets provided by Init.gmk.
|
||||
ALL_INIT_TARGETS := print-modules print-targets print-configuration \
|
||||
print-tests reconfigure pre-compare-build post-compare-build
|
||||
|
||||
# CALLED_TARGETS is the list of targets that the user provided,
|
||||
# or "default" if unspecified.
|
||||
CALLED_TARGETS := $(if $(MAKECMDGOALS), $(MAKECMDGOALS), default)
|
||||
@ -75,7 +79,6 @@ ifneq ($(SKIP_SPEC), true)
|
||||
|
||||
# Basic checks on environment and command line.
|
||||
$(eval $(call CheckControlVariables))
|
||||
$(eval $(call CheckDeprecatedEnvironment))
|
||||
$(eval $(call CheckInvalidMakeFlags))
|
||||
|
||||
# Check that CONF_CHECK is valid.
|
||||
@ -94,10 +97,6 @@ ifneq ($(SKIP_SPEC), true)
|
||||
# This will setup ALL_MAIN_TARGETS.
|
||||
$(eval $(call DefineMainTargets, FORCE, $(firstword $(SPECS))))
|
||||
|
||||
# Targets provided by Init.gmk.
|
||||
ALL_INIT_TARGETS := print-modules print-targets print-configuration \
|
||||
print-tests reconfigure pre-compare-build post-compare-build
|
||||
|
||||
# Separate called targets depending on type.
|
||||
INIT_TARGETS := $(filter $(ALL_INIT_TARGETS), $(CALLED_SPEC_TARGETS))
|
||||
MAIN_TARGETS := $(filter $(ALL_MAIN_TARGETS), $(CALLED_SPEC_TARGETS))
|
||||
|
||||
@ -94,18 +94,6 @@ define CheckControlVariables
|
||||
endif
|
||||
endef
|
||||
|
||||
# Check for deprecated ALT_ variables
|
||||
define CheckDeprecatedEnvironment
|
||||
defined_alt_variables := $$(filter ALT_%, $$(.VARIABLES))
|
||||
ifneq ($$(defined_alt_variables), )
|
||||
$$(info Warning: You have the following ALT_ variables set:)
|
||||
$$(foreach var, $$(defined_alt_variables), $$(info * $$(var)=$$($$(var))))
|
||||
$$(info ALT_ variables are deprecated, and may result in a failed build.)
|
||||
$$(info Please clean your environment.)
|
||||
$$(info )
|
||||
endif
|
||||
endef
|
||||
|
||||
# Check for invalid make flags like -j
|
||||
define CheckInvalidMakeFlags
|
||||
# This is a trick to get this rule to execute before any other rules
|
||||
@ -279,6 +267,9 @@ define DefineMainTargets
|
||||
|
||||
$$(main_targets_file):
|
||||
@( cd $$(TOPDIR) && \
|
||||
$$(MAKE) $$(MAKE_LOG_FLAGS) -r -R -f $$(TOPDIR)/make/GenerateFindTests.gmk \
|
||||
-I $$(TOPDIR)/make/common SPEC=$(strip $2) )
|
||||
@( cd $$(TOPDIR) && \
|
||||
$$(MAKE) $$(MAKE_LOG_FLAGS) -r -R -f $$(TOPDIR)/make/Main.gmk \
|
||||
-I $$(TOPDIR)/make/common SPEC=$(strip $2) NO_RECIPES=true \
|
||||
$$(MAKE_LOG_VARS) \
|
||||
|
||||
@ -75,9 +75,6 @@ endif
|
||||
|
||||
# This is the JDK that we will test
|
||||
JDK_UNDER_TEST := $(JDK_IMAGE_DIR)
|
||||
# The JDK used to compile jtreg test code. By default it is the same as
|
||||
# JDK_UNDER_TEST.
|
||||
JDK_FOR_COMPILE := $(JDK_IMAGE_DIR)
|
||||
|
||||
TEST_RESULTS_DIR := $(OUTPUTDIR)/test-results
|
||||
TEST_SUPPORT_DIR := $(OUTPUTDIR)/test-support
|
||||
@ -118,6 +115,7 @@ JTREG_COV_OPTIONS :=
|
||||
|
||||
ifeq ($(TEST_OPTS_JCOV), true)
|
||||
JCOV_OUTPUT_DIR := $(TEST_RESULTS_DIR)/jcov-output
|
||||
JCOV_SUPPORT_DIR := $(TEST_SUPPORT_DIR)/jcov-support
|
||||
JCOV_GRABBER_LOG := $(JCOV_OUTPUT_DIR)/grabber.log
|
||||
JCOV_RESULT_FILE := $(JCOV_OUTPUT_DIR)/result.xml
|
||||
JCOV_REPORT := $(JCOV_OUTPUT_DIR)/report
|
||||
@ -530,21 +528,33 @@ define SetupRunGtestTestBody
|
||||
$$(call LogWarn, Test report is stored in $$(strip \
|
||||
$$(subst $$(TOPDIR)/, , $$($1_TEST_RESULTS_DIR))))
|
||||
$$(if $$(wildcard $$($1_RESULT_FILE)), \
|
||||
$$(eval $1_TOTAL := $$(shell $$(AWK) '/==========.* tests? from .* \
|
||||
test (cases?|suites?) ran/ { print $$$$2 }' $$($1_RESULT_FILE))) \
|
||||
$$(if $$($1_TOTAL), , $$(eval $1_TOTAL := 0)) \
|
||||
$$(eval $1_RUN := $$(shell $$(AWK) \
|
||||
'/==========.* tests? from .* test (cases?|suites?) ran/ { print $$$$2 }' \
|
||||
$$($1_RESULT_FILE))) \
|
||||
$$(if $$($1_RUN), , $$(eval $1_RUN := 0)) \
|
||||
$$(eval $1_PASSED := $$(shell $$(AWK) '/\[ PASSED \] .* tests?./ \
|
||||
{ print $$$$4 }' $$($1_RESULT_FILE))) \
|
||||
$$(if $$($1_PASSED), , $$(eval $1_PASSED := 0)) \
|
||||
$$(eval $1_GTEST_DISABLED := $$(shell $$(AWK) '/YOU HAVE .* DISABLED TEST/ \
|
||||
{ print $$$$3 }' $$($1_RESULT_FILE))) \
|
||||
$$(if $$($1_GTEST_DISABLED), , $$(eval $1_GTEST_DISABLED := 0)) \
|
||||
$$(eval $1_GTEST_SKIPPED := $$(shell $$(AWK) '/\[ SKIPPED \] .* tests?.*/ \
|
||||
{ print $$$$4 }' $$($1_RESULT_FILE))) \
|
||||
$$(if $$($1_GTEST_SKIPPED), , $$(eval $1_GTEST_SKIPPED := 0)) \
|
||||
$$(eval $1_SKIPPED := $$(shell \
|
||||
$$(EXPR) $$($1_GTEST_DISABLED) + $$($1_GTEST_SKIPPED))) \
|
||||
$$(eval $1_FAILED := $$(shell $$(AWK) '/\[ FAILED \] .* tests?, \
|
||||
listed below/ { print $$$$4 }' $$($1_RESULT_FILE))) \
|
||||
$$(if $$($1_FAILED), , $$(eval $1_FAILED := 0)) \
|
||||
$$(eval $1_ERROR := $$(shell \
|
||||
$$(EXPR) $$($1_TOTAL) - $$($1_PASSED) - $$($1_FAILED))) \
|
||||
$$(EXPR) $$($1_RUN) - $$($1_PASSED) - $$($1_FAILED) - $$($1_GTEST_SKIPPED))) \
|
||||
$$(eval $1_TOTAL := $$(shell \
|
||||
$$(EXPR) $$($1_RUN) + $$($1_GTEST_DISABLED))) \
|
||||
, \
|
||||
$$(eval $1_PASSED := 0) \
|
||||
$$(eval $1_FAILED := 0) \
|
||||
$$(eval $1_ERROR := 1) \
|
||||
$$(eval $1_SKIPPED := 0) \
|
||||
$$(eval $1_TOTAL := 1) \
|
||||
)
|
||||
|
||||
@ -668,6 +678,7 @@ define SetupRunMicroTestBody
|
||||
$$(eval $1_ERROR := 1) \
|
||||
$$(eval $1_TOTAL := 1) \
|
||||
)
|
||||
$$(eval $1_SKIPPED := 0)
|
||||
|
||||
$1: run-test-$1 parse-test-$1
|
||||
|
||||
@ -703,6 +714,9 @@ define SetJtregValue
|
||||
endif
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
# Helper function for creating a customized AOT cache for running tests
|
||||
################################################################################
|
||||
|
||||
# Parameter 1 is the name of the rule.
|
||||
#
|
||||
@ -713,48 +727,50 @@ endef
|
||||
# $1_AOT_TARGETS List of all targets that the test rule will need to depend on
|
||||
# $1_AOT_JDK_CACHE The AOT cache file to be used to run the test with
|
||||
#
|
||||
SetupAot = $(NamedParamsMacroTemplate)
|
||||
define SetupAotBody
|
||||
$1_AOT_JDK_CONF := $$($1_TEST_SUPPORT_DIR)/aot/jdk.aotconf
|
||||
$1_AOT_JDK_CACHE := $$($1_TEST_SUPPORT_DIR)/aot/jdk.aotcache
|
||||
SetupAOT = $(NamedParamsMacroTemplate)
|
||||
define SetupAOTBody
|
||||
$1_AOT_JDK_OUTPUT_DIR := $$($1_TEST_SUPPORT_DIR)/aot
|
||||
$1_AOT_JDK_CONF := $$($1_AOT_JDK_OUTPUT_DIR)/jdk.aotconf
|
||||
$1_AOT_JDK_CACHE := $$($1_AOT_JDK_OUTPUT_DIR)/jdk.aotcache
|
||||
$1_AOT_JDK_LOG := $$($1_AOT_JDK_OUTPUT_DIR)/TestSetupAOT.log
|
||||
|
||||
$1_JAVA_TOOL_OPTS := $$(addprefix -J, $$($1_VM_OPTIONS))
|
||||
# We execute the training run with the TestSetupAOT class from $(TEST_IMAGE_DIR)/setup_aot/TestSetupAOT.jar
|
||||
# to touch a fair number of classes inside the JDK. Note that we can't specify a classpath,
|
||||
# or else the AOT cache cannot be used with jtreg test cases that use a different value
|
||||
# for their classpaths. Instead, we cd in the $$($1_AOT_JDK_OUTPUT_DIR) directory,
|
||||
# extract the TestSetupAOT.jar there, and run in that directory without specifying a classpath.
|
||||
# The "java" launcher will have an implicit classpath of ".", so it can pick up the TestSetupAOT
|
||||
# class from the JVM's current directory.
|
||||
#
|
||||
# The TestSetupAOT class (or any other classes that are loaded from ".") will be excluded
|
||||
# from the the AOT cache as "." is an unsupported location. As a result, the AOT cache will contain
|
||||
# only classes from the JDK.
|
||||
|
||||
$$($1_AOT_JDK_CACHE): $$(JDK_IMAGE_DIR)/release
|
||||
$$(call MakeDir, $$($1_TEST_SUPPORT_DIR)/aot)
|
||||
$$(call MakeDir, $$($1_AOT_JDK_OUTPUT_DIR))
|
||||
|
||||
$(foreach jtool, javac javap jlink jar, \
|
||||
$(info AOT: Create cache configuration for $(jtool)) \
|
||||
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/aot.$(jtool), ( \
|
||||
$$(FIXPATH) $(JDK_UNDER_TEST)/bin/$(jtool) $$($1_JAVA_TOOL_OPTS) \
|
||||
-J-XX:AOTMode=record -J-XX:AOTConfiguration=$$($1_AOT_JDK_CONF).$(jtool) --help \
|
||||
))
|
||||
)
|
||||
|
||||
$$(info AOT: Copy $(JDK_UNDER_TEST)/lib/classlist to $$($1_AOT_JDK_CONF).jdk )
|
||||
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/aot, ( \
|
||||
$$(FIXPATH) $(CP) $(JDK_UNDER_TEST)/lib/classlist $$($1_AOT_JDK_CONF).jdk \
|
||||
$$(call LogWarn, AOT: Create cache configuration) \
|
||||
$$(call ExecuteWithLog, $$($1_AOT_JDK_OUTPUT_DIR), ( \
|
||||
cd $$($1_AOT_JDK_OUTPUT_DIR); \
|
||||
$(JAR) --extract --file $(TEST_IMAGE_DIR)/setup_aot/TestSetupAOT.jar; \
|
||||
$$(FIXPATH) $(JDK_UNDER_TEST)/bin/java $$($1_VM_OPTIONS) \
|
||||
-Xlog:class+load,cds,cds+class=debug:file=$$($1_AOT_JDK_CONF).log -Xlog:cds*=error \
|
||||
-XX:AOTMode=record -XX:AOTConfiguration=$$($1_AOT_JDK_CONF) \
|
||||
TestSetupAOT $$($1_AOT_JDK_OUTPUT_DIR) > $$($1_AOT_JDK_LOG) \
|
||||
))
|
||||
|
||||
$$(FIXPATH) $$(CAT) $$($1_AOT_JDK_CONF).* > $$($1_AOT_JDK_CONF).temp
|
||||
$$(FIXPATH) $$(CAT) $$($1_AOT_JDK_CONF).temp | $(GREP) -v '#' | $(GREP) -v '@' | $(SORT) | \
|
||||
$(SED) -e 's/id:.*//g' | uniq \
|
||||
> $$($1_AOT_JDK_CONF)
|
||||
$$(FIXPATH) $$(CAT) $$($1_AOT_JDK_CONF).temp | $(GREP) '@cp' | $(SORT) \
|
||||
>> $$($1_AOT_JDK_CONF)
|
||||
|
||||
$$(info AOT: Generate AOT cache $$($1_AOT_JDK_CACHE) with flags: $$($1_VM_OPTIONS))
|
||||
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/aot, ( \
|
||||
$$(FIXPATH) $(JDK_UNDER_TEST)/bin/java \
|
||||
$$($1_VM_OPTIONS) -Xlog:cds,cds+class=debug:file=$$($1_AOT_JDK_CACHE).log \
|
||||
-XX:AOTMode=create -XX:AOTConfiguration=$$($1_AOT_JDK_CONF) -XX:AOTCache=$$($1_AOT_JDK_CACHE) \
|
||||
$$(call LogWarn, AOT: Generate AOT cache $$($1_AOT_JDK_CACHE) with flags: $$($1_VM_OPTIONS))
|
||||
$$(call ExecuteWithLog, $$($1_AOT_JDK_OUTPUT_DIR), ( \
|
||||
$$(FIXPATH) $(JDK_UNDER_TEST)/bin/java \
|
||||
$$($1_VM_OPTIONS) -Xlog:cds,cds+class=debug:file=$$($1_AOT_JDK_CACHE).log -Xlog:cds*=error \
|
||||
-XX:ExtraSharedClassListFile=$(JDK_UNDER_TEST)/lib/classlist \
|
||||
-XX:AOTMode=create -XX:AOTConfiguration=$$($1_AOT_JDK_CONF) -XX:AOTCache=$$($1_AOT_JDK_CACHE) \
|
||||
))
|
||||
|
||||
$1_AOT_TARGETS += $$($1_AOT_JDK_CACHE)
|
||||
|
||||
endef
|
||||
|
||||
|
||||
SetupRunJtregTest = $(NamedParamsMacroTemplate)
|
||||
define SetupRunJtregTestBody
|
||||
$1_TEST_RESULTS_DIR := $$(TEST_RESULTS_DIR)/$1
|
||||
@ -914,6 +930,11 @@ define SetupRunJtregTestBody
|
||||
JTREG_AUTO_PROBLEM_LISTS += ProblemList-shenandoah.txt
|
||||
endif
|
||||
|
||||
ifneq ($$(findstring --enable-preview, $$(JTREG_ALL_OPTIONS)), )
|
||||
JTREG_AUTO_PROBLEM_LISTS += ProblemList-enable-preview.txt
|
||||
endif
|
||||
|
||||
|
||||
ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), )
|
||||
# Accept both absolute paths as well as relative to the current test root.
|
||||
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$(wildcard \
|
||||
@ -926,6 +947,11 @@ define SetupRunJtregTestBody
|
||||
$1_JTREG_BASIC_OPTIONS += -e:JIB_HOME=$$(JIB_HOME)
|
||||
endif
|
||||
|
||||
ifneq ($$(JDK_FOR_COMPILE), )
|
||||
# Allow overriding the JDK used for compilation from the command line
|
||||
$1_JTREG_BASIC_OPTIONS += -compilejdk:$$(JDK_FOR_COMPILE)
|
||||
endif
|
||||
|
||||
$1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_DIR=$(TEST_IMAGE_DIR)
|
||||
|
||||
$1_JTREG_BASIC_OPTIONS += -e:DOCS_JDK_IMAGE_DIR=$$(DOCS_JDK_IMAGE_DIR)
|
||||
@ -946,11 +972,10 @@ define SetupRunJtregTestBody
|
||||
endif
|
||||
|
||||
ifeq ($$(JTREG_AOT_JDK), true)
|
||||
$$(info Add AOT target for $1)
|
||||
$$(eval $$(call SetupAot, $1, VM_OPTIONS := $$(JTREG_ALL_OPTIONS) ))
|
||||
$$(call LogWarn, Add AOT target for $1)
|
||||
$$(eval $$(call SetupAOT, $1, VM_OPTIONS := $$(JTREG_ALL_OPTIONS) ))
|
||||
|
||||
$$(info AOT_TARGETS=$$($1_AOT_TARGETS))
|
||||
$$(info AOT_JDK_CACHE=$$($1_AOT_JDK_CACHE))
|
||||
$$(call LogWarn, AOT_JDK_CACHE=$$($1_AOT_JDK_CACHE))
|
||||
|
||||
$1_JTREG_BASIC_OPTIONS += -vmoption:-XX:AOTCache="$$($1_AOT_JDK_CACHE)"
|
||||
endif
|
||||
@ -979,7 +1004,6 @@ define SetupRunJtregTestBody
|
||||
$$(JTREG_JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
|
||||
-Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
|
||||
$$($1_JTREG_BASIC_OPTIONS) \
|
||||
-compilejdk:$$(JDK_FOR_COMPILE) \
|
||||
-testjdk:$$(JDK_UNDER_TEST) \
|
||||
-dir:$$(JTREG_TOPDIR) \
|
||||
-reportDir:$$($1_TEST_RESULTS_DIR) \
|
||||
@ -998,7 +1022,8 @@ define SetupRunJtregTestBody
|
||||
$1_COMMAND_LINE := \
|
||||
for i in {0..$$(JTREG_RETRY_COUNT)}; do \
|
||||
if [ "$$$$i" != 0 ]; then \
|
||||
$$(PRINTF) "\nRetrying Jtreg run. Attempt: $$$$i\n"; \
|
||||
$$(ECHO) ""; \
|
||||
$$(ECHO) "Retrying Jtreg run. Attempt: $$$$i"; \
|
||||
fi; \
|
||||
$$($1_COMMAND_LINE); \
|
||||
if [ "`$$(CAT) $$($1_EXITCODE)`" = "0" ]; then \
|
||||
@ -1011,10 +1036,12 @@ define SetupRunJtregTestBody
|
||||
ifneq ($$(JTREG_REPEAT_COUNT), 0)
|
||||
$1_COMMAND_LINE := \
|
||||
for i in {1..$$(JTREG_REPEAT_COUNT)}; do \
|
||||
$$(PRINTF) "\nRepeating Jtreg run: $$$$i out of $$(JTREG_REPEAT_COUNT)\n"; \
|
||||
$$(ECHO) ""; \
|
||||
$$(ECHO) "Repeating Jtreg run: $$$$i out of $$(JTREG_REPEAT_COUNT)"; \
|
||||
$$($1_COMMAND_LINE); \
|
||||
if [ "`$$(CAT) $$($1_EXITCODE)`" != "0" ]; then \
|
||||
$$(PRINTF) "\nFailures detected, no more repeats.\n"; \
|
||||
$$(ECHO) ""; \
|
||||
$$(ECHO) "Failures detected, no more repeats."; \
|
||||
break; \
|
||||
fi; \
|
||||
done
|
||||
@ -1035,23 +1062,64 @@ define SetupRunJtregTestBody
|
||||
$$(call LogWarn, Finished running test '$$($1_TEST)')
|
||||
$$(call LogWarn, Test report is stored in $$(strip \
|
||||
$$(subst $$(TOPDIR)/, , $$($1_TEST_RESULTS_DIR))))
|
||||
|
||||
# Read jtreg documentation to learn on the test stats categories:
|
||||
# https://github.com/openjdk/jtreg/blob/master/src/share/doc/javatest/regtest/faq.md#what-do-all-those-numbers-in-the-test-results-line-mean
|
||||
# In jtreg, "skipped:" category accounts for tests that threw jtreg.SkippedException at runtime.
|
||||
# At the same time these tests contribute to "passed:" tests.
|
||||
# In here we don't want that and so we substract number of "skipped:" from "passed:".
|
||||
|
||||
$$(if $$(wildcard $$($1_RESULT_FILE)), \
|
||||
$$(eval $1_PASSED := $$(shell $$(AWK) '{ gsub(/[,;]/, ""); \
|
||||
$$(eval $1_PASSED_AND_RUNTIME_SKIPPED := $$(shell $$(AWK) '{ gsub(/[,;]/, ""); \
|
||||
for (i=1; i<=NF; i++) { if ($$$$i == "passed:") \
|
||||
print $$$$(i+1) } }' $$($1_RESULT_FILE))) \
|
||||
$$(if $$($1_PASSED), , $$(eval $1_PASSED := 0)) \
|
||||
$$(if $$($1_PASSED_AND_RUNTIME_SKIPPED), , $$(eval $1_PASSED_AND_RUNTIME_SKIPPED := 0)) \
|
||||
$$(eval $1_FAILED := $$(shell $$(AWK) '{gsub(/[,;]/, ""); \
|
||||
for (i=1; i<=NF; i++) { if ($$$$i == "failed:") \
|
||||
print $$$$(i+1) } }' $$($1_RESULT_FILE))) \
|
||||
$$(if $$($1_FAILED), , $$(eval $1_FAILED := 0)) \
|
||||
$$(eval $1_RUNTIME_SKIPPED := $$(shell $$(AWK) '{gsub(/[,;]/, ""); \
|
||||
for (i=1; i<=NF; i++) { if ($$$$i == "skipped:") \
|
||||
print $$$$(i+1) } }' $$($1_RESULT_FILE))) \
|
||||
$$(if $$($1_RUNTIME_SKIPPED), , $$(eval $1_RUNTIME_SKIPPED := 0)) \
|
||||
$$(eval $1_SKIPPED := $$(shell \
|
||||
$$(AWK) \
|
||||
'BEGIN { \
|
||||
overall_skipped = 0; \
|
||||
patterns[1] = "skipped"; \
|
||||
patterns[2] = "excluded"; \
|
||||
patterns[3] = "not in match-list"; \
|
||||
patterns[4] = "did not match keywords"; \
|
||||
patterns[5] = "did not meet module requirements"; \
|
||||
patterns[6] = "did not meet platform requirements"; \
|
||||
patterns[7] = "did not match prior status"; \
|
||||
patterns[8] = "did not meet time-limit requirements"; \
|
||||
} { \
|
||||
split($$$$0, arr, ";"); \
|
||||
for (item in arr) { \
|
||||
for (p in patterns) { \
|
||||
if (match(arr[item], patterns[p] ": [0-9]+")) { \
|
||||
overall_skipped += substr(arr[item], RSTART + length(patterns[p]) + 2, RLENGTH); \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
print overall_skipped; \
|
||||
}' \
|
||||
$$($1_RESULT_FILE) \
|
||||
)) \
|
||||
$$(eval $1_ERROR := $$(shell $$(AWK) '{gsub(/[,;]/, ""); \
|
||||
for (i=1; i<=NF; i++) { if ($$$$i == "error:") \
|
||||
print $$$$(i+1) } }' $$($1_RESULT_FILE))) \
|
||||
$$(if $$($1_ERROR), , $$(eval $1_ERROR := 0)) \
|
||||
\
|
||||
$$(eval $1_PASSED := $$(shell \
|
||||
$$(EXPR) $$($1_PASSED_AND_RUNTIME_SKIPPED) - $$($1_RUNTIME_SKIPPED))) \
|
||||
$$(eval $1_TOTAL := $$(shell \
|
||||
$$(EXPR) $$($1_PASSED) + $$($1_FAILED) + $$($1_ERROR))) \
|
||||
$$(EXPR) $$($1_PASSED) + $$($1_FAILED) + $$($1_ERROR) + $$($1_SKIPPED))) \
|
||||
, \
|
||||
$$(eval $1_PASSED := 0) \
|
||||
$$(eval $1_PASSED_AND_RUNTIME_SKIPPED := 0) \
|
||||
$$(eval $1_RUNTIME_SKIPPED := 0) \
|
||||
$$(eval $1_SKIPPED := 0) \
|
||||
$$(eval $1_FAILED := 0) \
|
||||
$$(eval $1_ERROR := 1) \
|
||||
$$(eval $1_TOTAL := 1) \
|
||||
@ -1110,8 +1178,6 @@ define SetupRunSpecialTestBody
|
||||
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||
))
|
||||
|
||||
$1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/gtest.txt
|
||||
|
||||
# We can not parse the various "special" tests.
|
||||
parse-test-$1: run-test-$1
|
||||
$$(call LogWarn, Finished running test '$$($1_TEST)')
|
||||
@ -1121,6 +1187,7 @@ define SetupRunSpecialTestBody
|
||||
$$(eval $1_PASSED := $$(shell \
|
||||
if [ `$(CAT) $$($1_EXITCODE)` = "0" ]; then $(ECHO) 1; else $(ECHO) 0; fi \
|
||||
))
|
||||
$$(eval $1_SKIPPED := 0)
|
||||
$$(eval $1_FAILED := $$(shell \
|
||||
if [ `$(CAT) $$($1_EXITCODE)` = "0" ]; then $(ECHO) 0; else $(ECHO) 1; fi \
|
||||
))
|
||||
@ -1230,8 +1297,8 @@ run-test-report: post-run-test
|
||||
$(ECHO) >> $(TEST_SUMMARY) ==============================
|
||||
$(ECHO) >> $(TEST_SUMMARY) Test summary
|
||||
$(ECHO) >> $(TEST_SUMMARY) ==============================
|
||||
$(PRINTF) >> $(TEST_SUMMARY) "%2s %-49s %5s %5s %5s %5s %2s\n" " " \
|
||||
TEST TOTAL PASS FAIL ERROR " "
|
||||
$(PRINTF) >> $(TEST_SUMMARY) "%2s %-49s %5s %5s %5s %5s %5s %2s\n" " " \
|
||||
TEST TOTAL PASS FAIL ERROR SKIP " "
|
||||
$(foreach test, $(TESTS_TO_RUN), \
|
||||
$(eval TEST_ID := $(shell $(ECHO) $(strip $(test)) | \
|
||||
$(TR) -cs '[a-z][A-Z][0-9]\n' '[_*1000]')) \
|
||||
@ -1243,15 +1310,15 @@ run-test-report: post-run-test
|
||||
, \
|
||||
$(eval TEST_NAME := $(test)) \
|
||||
) \
|
||||
$(if $(filter $($(TEST_ID)_PASSED), $($(TEST_ID)_TOTAL)), \
|
||||
$(PRINTF) >> $(TEST_SUMMARY) "%2s %-49s %5d %5d %5d %5d %2s\n" \
|
||||
" " "$(TEST_NAME)" $($(TEST_ID)_TOTAL) $($(TEST_ID)_PASSED) \
|
||||
$($(TEST_ID)_FAILED) $($(TEST_ID)_ERROR) " " $(NEWLINE) \
|
||||
, \
|
||||
$(PRINTF) >> $(TEST_SUMMARY) "%2s %-49s %5d %5d %5d %5d %2s\n" \
|
||||
$(if $(filter-out 0, $($(TEST_ID)_FAILED) $($(TEST_ID)_ERROR)), \
|
||||
$(PRINTF) >> $(TEST_SUMMARY) "%2s %-49s %5d %5d %5d %5d %5d %2s\n" \
|
||||
">>" "$(TEST_NAME)" $($(TEST_ID)_TOTAL) $($(TEST_ID)_PASSED) \
|
||||
$($(TEST_ID)_FAILED) $($(TEST_ID)_ERROR) "<<" $(NEWLINE) \
|
||||
$($(TEST_ID)_FAILED) $($(TEST_ID)_ERROR) $($(TEST_ID)_SKIPPED) "<<" $(NEWLINE) \
|
||||
$(eval TEST_FAILURE := true) \
|
||||
, \
|
||||
$(PRINTF) >> $(TEST_SUMMARY) "%2s %-49s %5d %5d %5d %5d %5d %2s\n" \
|
||||
" " "$(TEST_NAME)" $($(TEST_ID)_TOTAL) $($(TEST_ID)_PASSED) \
|
||||
$($(TEST_ID)_FAILED) $($(TEST_ID)_ERROR) $($(TEST_ID)_SKIPPED) " " $(NEWLINE) \
|
||||
) \
|
||||
)
|
||||
$(ECHO) >> $(TEST_SUMMARY) ==============================
|
||||
@ -1277,12 +1344,14 @@ TARGETS += run-all-tests pre-run-test post-run-test run-test-report run-test
|
||||
|
||||
ifeq ($(TEST_OPTS_JCOV), true)
|
||||
|
||||
JCOV_VM_OPTS := -Xmx4g -Djdk.xml.totalEntitySizeLimit=0 -Djdk.xml.maxGeneralEntitySizeLimit=0
|
||||
|
||||
jcov-do-start-grabber:
|
||||
$(call MakeDir, $(JCOV_OUTPUT_DIR))
|
||||
if $(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -status 1>/dev/null 2>&1 ; then \
|
||||
$(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -stop -stoptimeout 3600 ; \
|
||||
fi
|
||||
$(JAVA) -Xmx4g -jar $(JCOV_HOME)/lib/jcov.jar Grabber -v -t \
|
||||
$(JAVA) $(JCOV_VM_OPTS) -jar $(JCOV_HOME)/lib/jcov.jar Grabber -v -t \
|
||||
$(JCOV_IMAGE_DIR)/template.xml -o $(JCOV_RESULT_FILE) \
|
||||
1>$(JCOV_GRABBER_LOG) 2>&1 &
|
||||
|
||||
@ -1295,6 +1364,10 @@ ifeq ($(TEST_OPTS_JCOV), true)
|
||||
$(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -stop -stoptimeout 3600
|
||||
|
||||
JCOV_REPORT_TITLE := JDK code coverage report<br/>
|
||||
ifneq ($(JCOV_MODULES), )
|
||||
JCOV_MODULES_FILTER := $(foreach m, $(JCOV_MODULES), -include_module $m)
|
||||
JCOV_REPORT_TITLE += Included modules: $(JCOV_MODULES)<br>
|
||||
endif
|
||||
ifneq ($(JCOV_FILTERS), )
|
||||
JCOV_REPORT_TITLE += Code filters: $(JCOV_FILTERS)<br>
|
||||
endif
|
||||
@ -1302,11 +1375,12 @@ ifeq ($(TEST_OPTS_JCOV), true)
|
||||
|
||||
jcov-gen-report: jcov-stop-grabber
|
||||
$(call LogWarn, Generating JCov report ...)
|
||||
$(JAVA) -Xmx4g -jar $(JCOV_HOME)/lib/jcov.jar RepGen -sourcepath \
|
||||
$(call ExecuteWithLog, $(JCOV_SUPPORT_DIR)/run-jcov-repgen, \
|
||||
$(JAVA) $(JCOV_VM_OPTS) -jar $(JCOV_HOME)/lib/jcov.jar RepGen -sourcepath \
|
||||
`$(ECHO) $(TOPDIR)/src/*/share/classes/ | $(TR) ' ' ':'` -fmt html \
|
||||
$(JCOV_FILTERS) \
|
||||
$(JCOV_MODULES_FILTER) $(JCOV_FILTERS) \
|
||||
-mainReportTitle "$(JCOV_REPORT_TITLE)" \
|
||||
-o $(JCOV_REPORT) $(JCOV_RESULT_FILE)
|
||||
-o $(JCOV_REPORT) $(JCOV_RESULT_FILE))
|
||||
|
||||
TARGETS += jcov-do-start-grabber jcov-start-grabber jcov-stop-grabber \
|
||||
jcov-gen-report
|
||||
@ -1326,7 +1400,7 @@ ifeq ($(TEST_OPTS_JCOV), true)
|
||||
jcov-gen-diffcoverage: jcov-stop-grabber
|
||||
$(call LogWarn, Generating diff coverage with changeset $(TEST_OPTS_JCOV_DIFF_CHANGESET) ... )
|
||||
$(DIFF_COMMAND)
|
||||
$(JAVA) -Xmx4g -jar $(JCOV_HOME)/lib/jcov.jar \
|
||||
$(JAVA) $(JCOV_VM_OPTS) -jar $(JCOV_HOME)/lib/jcov.jar \
|
||||
DiffCoverage -replaceDiff "src/.*/classes/:" -all \
|
||||
$(JCOV_RESULT_FILE) $(JCOV_SOURCE_DIFF) > \
|
||||
$(JCOV_DIFF_COVERAGE_REPORT)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2017, 2025, 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
|
||||
@ -140,7 +140,6 @@ $(eval $(call SetupVariable,JIB_JAR,OPTIONAL))
|
||||
include $(TOPDIR)/make/PreInitSupport.gmk
|
||||
include $(TOPDIR)/make/common/LogUtils.gmk
|
||||
|
||||
$(eval $(call CheckDeprecatedEnvironment))
|
||||
$(eval $(call CheckInvalidMakeFlags))
|
||||
$(eval $(call ParseLogLevel))
|
||||
|
||||
@ -218,9 +217,9 @@ else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
else ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
NUM_CORES := $(NUMBER_OF_PROCESSORS)
|
||||
MEMORY_SIZE := $(shell \
|
||||
$(EXPR) `wmic computersystem get totalphysicalmemory -value \
|
||||
| $(GREP) = | $(SED) 's/\\r//g' \
|
||||
| $(CUT) -d "=" -f 2-` / 1024 / 1024 \
|
||||
$(EXPR) `powershell -Command \
|
||||
"(Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory" \
|
||||
| $(SED) 's/\\r//g' ` / 1024 / 1024 \
|
||||
)
|
||||
endif
|
||||
ifeq ($(NUM_CORES), )
|
||||
@ -299,7 +298,7 @@ test-prebuilt:
|
||||
@$(RM) -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error
|
||||
# We need to fill the FindTest cache before entering RunTests.gmk.
|
||||
@cd $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) SPEC=$(SPEC) \
|
||||
-f RunTestsPrebuiltFindTests.gmk
|
||||
-f GenerateFindTests.gmk
|
||||
@cd $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
|
||||
TEST="$(TEST)"
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@ ifneq ($(and $(GIT), $(wildcard $(TOPDIR)/.git)), )
|
||||
SCM_DIR := .git
|
||||
ID_COMMAND := $(PRINTF) "git:%s%s\n" \
|
||||
"$$($(GIT) log -n1 --format=%H | cut -c1-12)" \
|
||||
"$$(if test -n "$$($(GIT) status --porcelain)"; then printf '+'; fi)"
|
||||
"$$(if test -n "$$($(GIT) status --porcelain)"; then $(PRINTF) '+'; fi)"
|
||||
endif
|
||||
|
||||
ifeq ($(USE_SCM), true)
|
||||
|
||||
@ -31,6 +31,7 @@ include CopyFiles.gmk
|
||||
include DebugInfoUtils.gmk
|
||||
include Modules.gmk
|
||||
include modules/LauncherCommon.gmk
|
||||
include Execute.gmk
|
||||
|
||||
################################################################################
|
||||
#
|
||||
@ -68,6 +69,10 @@ else ifeq ($(call isTargetOs, windows), true)
|
||||
BROKEN_STATIC_LIBS += sspi_bridge
|
||||
# dt_shmem define jdwpTransport_OnLoad which conflict with dt_socket
|
||||
BROKEN_STATIC_LIBS += dt_shmem
|
||||
else ifeq ($(call isTargetOs, aix), true)
|
||||
# libsplashscreen has a name conflict with libawt in the function
|
||||
# BitmapToYXBandedRectangles, so we exclude it for now.
|
||||
BROKEN_STATIC_LIBS += splashscreen
|
||||
endif
|
||||
|
||||
$(foreach module, $(STATIC_LIB_MODULES), \
|
||||
@ -99,6 +104,18 @@ else ifeq ($(call isTargetOs, linux), true)
|
||||
STATIC_LIBS := -Wl,--export-dynamic -Wl,--whole-archive $(STATIC_LIB_FILES) -Wl,--no-whole-archive
|
||||
else ifeq ($(call isTargetOs, windows), true)
|
||||
STATIC_LIBS := $(addprefix -wholearchive:, $(STATIC_LIB_FILES))
|
||||
else ifeq ($(call isTargetOs, aix), true)
|
||||
# on AIX we have to generate export files for all static libs, because we have no whole-archive linker flag
|
||||
$(foreach lib, $(STATIC_LIB_FILES), \
|
||||
$(eval $(call SetupExecute, generate_export_list_$(notdir $(lib)), \
|
||||
INFO := Generating export list for $(notdir $(lib)), \
|
||||
DEPS := $(lib), \
|
||||
OUTPUT_FILE := $(lib).exp, \
|
||||
COMMAND := ( $(AR) $(ARFLAGS) -w $(lib) | $(GREP) -v '^\.' | $(AWK) '{print $$1}' | $(SORT) -u > $(lib).exp ), \
|
||||
)) \
|
||||
$(eval STATIC_LIB_EXPORT_FILES += $(lib).exp) \
|
||||
)
|
||||
STATIC_LIBS := -Wl,-bexpfull $(STATIC_LIB_FILES) $(addprefix -Wl$(COMMA)-bE:, $(STATIC_LIB_EXPORT_FILES))
|
||||
else
|
||||
$(error Unsupported platform)
|
||||
endif
|
||||
@ -118,6 +135,9 @@ $(eval $(call SetupBuildLauncher, java, \
|
||||
))
|
||||
|
||||
$(java): $(STATIC_LIB_FILES)
|
||||
ifeq ($(call isTargetOs, aix), true)
|
||||
$(java): $(STATIC_LIB_EXPORT_FILES)
|
||||
endif
|
||||
|
||||
TARGETS += $(java)
|
||||
|
||||
|
||||
@ -75,10 +75,11 @@ AC_DEFUN_ONCE([BASIC_SETUP_PATHS],
|
||||
AC_MSG_NOTICE([Rewriting ORIGINAL_PATH to $REWRITTEN_PATH])
|
||||
fi
|
||||
|
||||
if test "x$OPENJDK_TARGET_CPU" = xx86 && test "x$with_jvm_variants" != xzero; then
|
||||
AC_MSG_ERROR([32-bit x86 builds are not supported])
|
||||
fi
|
||||
|
||||
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
|
||||
if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
|
||||
AC_MSG_ERROR([32-bit Windows builds are not supported])
|
||||
fi
|
||||
BASIC_SETUP_PATHS_WINDOWS
|
||||
fi
|
||||
|
||||
@ -549,9 +550,6 @@ AC_DEFUN_ONCE([BASIC_TEST_USABILITY_ISSUES],
|
||||
|
||||
BASIC_CHECK_SRC_PERMS
|
||||
|
||||
# Check if the user has any old-style ALT_ variables set.
|
||||
FOUND_ALT_VARIABLES=`env | grep ^ALT_`
|
||||
|
||||
# Before generating output files, test if they exist. If they do, this is a reconfigure.
|
||||
# Since we can't properly handle the dependencies for this, warn the user about the situation
|
||||
if test -e $OUTPUTDIR/spec.gmk; then
|
||||
@ -624,10 +622,4 @@ AC_DEFUN_ONCE([BASIC_POST_CONFIG_OUTPUT],
|
||||
|
||||
# Make the compare script executable
|
||||
$CHMOD +x $OUTPUTDIR/compare.sh
|
||||
|
||||
# Copy the linker wrapper script for clang on AIX and make it executable
|
||||
if test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||
$CP -f "$TOPDIR/make/scripts/aix/ld.sh" "$OUTPUTDIR/ld.sh"
|
||||
$CHMOD +x "$OUTPUTDIR/ld.sh"
|
||||
fi
|
||||
])
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2025, 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
|
||||
@ -57,6 +57,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
||||
UTIL_LOOKUP_PROGS(LOCALE, locale)
|
||||
UTIL_LOOKUP_PROGS(PATHTOOL, cygpath wslpath)
|
||||
UTIL_LOOKUP_PROGS(CMD, cmd.exe, $PATH:/cygdrive/c/windows/system32:/mnt/c/windows/system32:/c/windows/system32)
|
||||
UTIL_LOOKUP_PROGS(LSB_RELEASE, lsb_release)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
@ -106,9 +107,6 @@ AC_DEFUN_ONCE([BASIC_SETUP_TOOLS],
|
||||
UTIL_LOOKUP_PROGS(READLINK, greadlink readlink)
|
||||
UTIL_LOOKUP_PROGS(WHOAMI, whoami)
|
||||
|
||||
# Tools only needed on some platforms
|
||||
UTIL_LOOKUP_PROGS(LSB_RELEASE, lsb_release)
|
||||
|
||||
# For compare.sh only
|
||||
UTIL_LOOKUP_PROGS(CMP, cmp)
|
||||
UTIL_LOOKUP_PROGS(UNIQ, uniq)
|
||||
@ -470,7 +468,15 @@ AC_DEFUN_ONCE([BASIC_SETUP_PANDOC],
|
||||
AC_MSG_CHECKING([if the pandoc smart extension needs to be disabled for markdown])
|
||||
if $PANDOC --list-extensions | $GREP -q '+smart'; then
|
||||
AC_MSG_RESULT([yes])
|
||||
PANDOC_MARKDOWN_FLAG="markdown-smart"
|
||||
PANDOC_MARKDOWN_FLAG="$PANDOC_MARKDOWN_FLAG-smart"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([if the pandoc tex_math_dollars extension needs to be disabled for markdown])
|
||||
if $PANDOC --list-extensions | $GREP -q '+tex_math_dollars'; then
|
||||
AC_MSG_RESULT([yes])
|
||||
PANDOC_MARKDOWN_FLAG="$PANDOC_MARKDOWN_FLAG-tex_math_dollars"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2025, 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
|
||||
@ -180,11 +180,13 @@ AC_DEFUN([BOOTJDK_CHECK_JAVA_HOME],
|
||||
# Test: Is there a java or javac in the PATH, which is a symlink to the JDK?
|
||||
AC_DEFUN([BOOTJDK_CHECK_JAVA_IN_PATH_IS_SYMLINK],
|
||||
[
|
||||
UTIL_LOOKUP_PROGS(JAVAC_CHECK, javac, , NOFIXPATH)
|
||||
UTIL_LOOKUP_PROGS(JAVA_CHECK, java, , NOFIXPATH)
|
||||
BINARY="$JAVAC_CHECK"
|
||||
if test "x$JAVAC_CHECK" = x; then
|
||||
BINARY="$JAVA_CHECK"
|
||||
UTIL_LOOKUP_PROGS(JAVAC_CHECK, javac)
|
||||
UTIL_GET_EXECUTABLE(JAVAC_CHECK) # Will setup JAVAC_CHECK_EXECUTABLE
|
||||
UTIL_LOOKUP_PROGS(JAVA_CHECK, java)
|
||||
UTIL_GET_EXECUTABLE(JAVA_CHECK) # Will setup JAVA_CHECK_EXECUTABLE
|
||||
BINARY="$JAVAC_CHECK_EXECUTABLE"
|
||||
if test "x$JAVAC_CHECK_EXECUTABLE" = x; then
|
||||
BINARY="$JAVA_CHECK_EXECUTABLE"
|
||||
fi
|
||||
if test "x$BINARY" != x; then
|
||||
# So there is a java(c) binary, it might be part of a JDK.
|
||||
|
||||
12
make/autoconf/build-aux/config.guess
vendored
12
make/autoconf/build-aux/config.guess
vendored
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2012, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2021, Azul Systems, Inc. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
@ -53,10 +53,10 @@ if [ "x$OUT" = x ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# Test and fix cygwin on x86_64
|
||||
echo $OUT | grep 86-pc-cygwin > /dev/null 2> /dev/null
|
||||
# Test and fix cygwin/msys CPUs
|
||||
echo $OUT | grep -e "-pc-cygwin" > /dev/null 2> /dev/null
|
||||
if test $? != 0; then
|
||||
echo $OUT | grep 86-pc-mingw > /dev/null 2> /dev/null
|
||||
echo $OUT | grep -e "-pc-mingw" > /dev/null 2> /dev/null
|
||||
fi
|
||||
if test $? = 0; then
|
||||
case `echo $PROCESSOR_IDENTIFIER | cut -f1 -d' '` in
|
||||
@ -64,6 +64,10 @@ if test $? = 0; then
|
||||
REAL_CPU=x86_64
|
||||
OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'`
|
||||
;;
|
||||
ARMv8)
|
||||
REAL_CPU=aarch64
|
||||
OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'`
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2025, 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
|
||||
@ -75,7 +75,8 @@ AC_DEFUN([BPERF_CHECK_MEMORY_SIZE],
|
||||
FOUND_MEM=yes
|
||||
elif test "x$OPENJDK_BUILD_OS" = xwindows; then
|
||||
# Windows, but without cygwin
|
||||
MEMORY_SIZE=`wmic computersystem get totalphysicalmemory -value | grep = | cut -d "=" -f 2-`
|
||||
MEMORY_SIZE=`powershell -Command \
|
||||
"(Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory" | $SED 's/\\r//g' `
|
||||
MEMORY_SIZE=`expr $MEMORY_SIZE / 1024 / 1024`
|
||||
FOUND_MEM=yes
|
||||
fi
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2025, 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
|
||||
@ -174,9 +174,6 @@ SRCDIRS_SETUP_IMPORT_MODULES
|
||||
#
|
||||
################################################################################
|
||||
|
||||
# See if we are doing a complete static build or not
|
||||
JDKOPT_SETUP_STATIC_BUILD
|
||||
|
||||
# First determine the toolchain type (compiler family)
|
||||
TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE
|
||||
|
||||
@ -259,11 +256,12 @@ LIB_TESTS_ENABLE_DISABLE_JTREG_TEST_THREAD_FACTORY
|
||||
|
||||
JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST
|
||||
JDKOPT_EXCLUDE_TRANSLATIONS
|
||||
JDKOPT_ENABLE_DISABLE_MANPAGES
|
||||
JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE
|
||||
JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE_COH
|
||||
JDKOPT_ENABLE_DISABLE_COMPATIBLE_CDS_ALIGNMENT
|
||||
JDKOPT_SETUP_MACOSX_SIGNING
|
||||
JDKOPT_SETUP_SIGNING_HOOK
|
||||
JDKOPT_SETUP_JAVA_WARNINGS
|
||||
|
||||
################################################################################
|
||||
#
|
||||
|
||||
@ -482,6 +482,16 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
||||
else
|
||||
DEBUG_CFLAGS_JDK="-DDEBUG"
|
||||
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang ; then
|
||||
INIT_PATTERN_FLAG="-ftrivial-auto-var-init=pattern"
|
||||
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$INIT_PATTERN_FLAG],
|
||||
IF_TRUE: [
|
||||
DEBUG_CFLAGS_JDK="$DEBUG_CFLAGS_JDK $INIT_PATTERN_FLAG"
|
||||
DEBUG_CFLAGS_JVM="$INIT_PATTERN_FLAG"
|
||||
]
|
||||
)
|
||||
fi
|
||||
|
||||
if test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||
DEBUG_CFLAGS_JVM="-fpic -mcmodel=large"
|
||||
fi
|
||||
@ -711,15 +721,17 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
||||
$1_CFLAGS_CPU="-fsigned-char -Wno-psabi $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS -DJDK_ARCH_ABI_PROP_NAME='\"\$(JDK_ARCH_ABI_PROP_NAME)\"'"
|
||||
$1_CFLAGS_CPU_JVM="-DARM"
|
||||
elif test "x$FLAGS_CPU_ARCH" = xppc; then
|
||||
$1_CFLAGS_CPU_JVM="-minsert-sched-nops=regroup_exact -mno-multiple -mno-string"
|
||||
$1_CFLAGS_CPU_JVM="-mno-multiple -mno-string"
|
||||
if test "x$FLAGS_CPU" = xppc64; then
|
||||
# -mminimal-toc fixes `relocation truncated to fit' error for gcc 4.1.
|
||||
# Use ppc64 instructions, but schedule for power5
|
||||
$1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -mminimal-toc -mcpu=powerpc64 -mtune=power5"
|
||||
$1_CFLAGS_CPU="-mcpu=powerpc64 -mtune=power5"
|
||||
$1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -mminimal-toc"
|
||||
elif test "x$FLAGS_CPU" = xppc64le; then
|
||||
# Little endian machine uses ELFv2 ABI.
|
||||
# Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI.
|
||||
$1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -DABI_ELFv2 -mcpu=power8 -mtune=power8"
|
||||
$1_CFLAGS_CPU="-mcpu=power8 -mtune=power10"
|
||||
$1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -DABI_ELFv2"
|
||||
fi
|
||||
elif test "x$FLAGS_CPU" = xs390x; then
|
||||
$1_CFLAGS_CPU="-mbackchain -march=z10"
|
||||
@ -740,7 +752,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
||||
if test "x$FLAGS_CPU" = xppc64le; then
|
||||
# Little endian machine uses ELFv2 ABI.
|
||||
# Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI.
|
||||
$1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -DABI_ELFv2 -mcpu=power8 -mtune=power8"
|
||||
$1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -DABI_ELFv2 -mcpu=power8 -mtune=power10"
|
||||
fi
|
||||
fi
|
||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||
@ -912,8 +924,9 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
||||
# Check whether the compiler supports the Arm C Language Extensions (ACLE)
|
||||
# for SVE. Set SVE_CFLAGS to -march=armv8-a+sve if it does.
|
||||
# ACLE and this flag are required to build the aarch64 SVE related functions in
|
||||
# libvectormath.
|
||||
if test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then
|
||||
# libvectormath. Apple Silicon does not support SVE; use macOS as a proxy for
|
||||
# that check.
|
||||
if test "x$OPENJDK_TARGET_CPU" = "xaarch64" && test "x$OPENJDK_TARGET_CPU" = "xlinux"; then
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
AC_LANG_PUSH(C)
|
||||
OLD_CFLAGS="$CFLAGS"
|
||||
|
||||
@ -78,8 +78,8 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
||||
fi
|
||||
fi
|
||||
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||
BASIC_LDFLAGS="-Wl,-b64 -Wl,-brtl -Wl,-bnorwexec -Wl,-bnolibpath -Wl,-bnoexpall \
|
||||
-Wl,-bernotok -Wl,-bdatapsize:64k -Wl,-btextpsize:64k -Wl,-bstackpsize:64k -fuse-ld=$OUTPUTDIR/ld.sh"
|
||||
BASIC_LDFLAGS="-Wl,-b64 -Wl,-brtl -Wl,-bnorwexec -Wl,-blibpath:/usr/lib:lib -Wl,-bnoexpall \
|
||||
-Wl,-bernotok -Wl,-bdatapsize:64k -Wl,-btextpsize:64k -Wl,-bstackpsize:64k"
|
||||
BASIC_LDFLAGS_JVM_ONLY="$BASIC_LDFLAGS_JVM_ONLY -Wl,-lC_r -Wl,-bbigtoc"
|
||||
fi
|
||||
|
||||
@ -100,7 +100,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
||||
if test "x$OPENJDK_TARGET_OS" = xmacosx && test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
# FIXME: We should really generalize SET_SHARED_LIBRARY_ORIGIN instead.
|
||||
OS_LDFLAGS_JVM_ONLY="-Wl,-rpath,@loader_path/. -Wl,-rpath,@loader_path/.."
|
||||
OS_LDFLAGS="-mmacosx-version-min=$MACOSX_VERSION_MIN"
|
||||
OS_LDFLAGS="-mmacosx-version-min=$MACOSX_VERSION_MIN -Wl,-reproducible"
|
||||
fi
|
||||
|
||||
# Setup debug level-dependent LDFLAGS
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2025, 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
|
||||
@ -228,19 +228,19 @@ AC_DEFUN_ONCE([HELP_PRINT_ADDITIONAL_HELP_AND_EXIT],
|
||||
if test "x$CONFIGURE_PRINT_ADDITIONAL_HELP" != x; then
|
||||
|
||||
# Print available toolchains
|
||||
$PRINTF "The following toolchains are valid as arguments to --with-toolchain-type.\n"
|
||||
$PRINTF "Which are available to use depends on the build platform.\n"
|
||||
$ECHO "The following toolchains are valid as arguments to --with-toolchain-type."
|
||||
$ECHO "Which are available to use depends on the build platform."
|
||||
for toolchain in $VALID_TOOLCHAINS_all; do
|
||||
# Use indirect variable referencing
|
||||
toolchain_var_name=TOOLCHAIN_DESCRIPTION_$toolchain
|
||||
TOOLCHAIN_DESCRIPTION=${!toolchain_var_name}
|
||||
$PRINTF " %-22s %s\n" $toolchain "$TOOLCHAIN_DESCRIPTION"
|
||||
done
|
||||
$PRINTF "\n"
|
||||
$ECHO ""
|
||||
|
||||
# Print available JVM features
|
||||
$PRINTF "The following JVM features are valid as arguments to --with-jvm-features.\n"
|
||||
$PRINTF "Which are available to use depends on the environment and JVM variant.\n"
|
||||
$ECHO "The following JVM features are valid as arguments to --with-jvm-features."
|
||||
$ECHO "Which are available to use depends on the environment and JVM variant."
|
||||
m4_foreach(FEATURE, m4_split(jvm_features_valid), [
|
||||
# Create an m4 variable containing the description for FEATURE.
|
||||
m4_define(FEATURE_DESCRIPTION, [jvm_feature_desc_]m4_translit(FEATURE, -, _))
|
||||
@ -257,123 +257,117 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
|
||||
[
|
||||
# Finally output some useful information to the user
|
||||
|
||||
printf "\n"
|
||||
printf "====================================================\n"
|
||||
$ECHO ""
|
||||
$ECHO "===================================================="
|
||||
if test "x$no_create" != "xyes"; then
|
||||
if test "x$IS_RECONFIGURE" != "xyes"; then
|
||||
printf "A new configuration has been successfully created in\n%s\n" "$OUTPUTDIR"
|
||||
$ECHO "A new configuration has been successfully created in"
|
||||
$ECHO "$OUTPUTDIR"
|
||||
else
|
||||
printf "The existing configuration has been successfully updated in\n%s\n" "$OUTPUTDIR"
|
||||
$ECHO "The existing configuration has been successfully updated in"
|
||||
$ECHO "$OUTPUTDIR"
|
||||
fi
|
||||
else
|
||||
if test "x$IS_RECONFIGURE" != "xyes"; then
|
||||
printf "A configuration has been successfully checked but not created\n"
|
||||
$ECHO "A configuration has been successfully checked but not created"
|
||||
else
|
||||
printf "The existing configuration has been successfully checked in\n%s\n" "$OUTPUTDIR"
|
||||
$ECHO "The existing configuration has been successfully checked in"
|
||||
$ECHO "$OUTPUTDIR"
|
||||
fi
|
||||
fi
|
||||
if test "x$CONFIGURE_COMMAND_LINE" != x; then
|
||||
printf "using configure arguments '$CONFIGURE_COMMAND_LINE'.\n"
|
||||
$ECHO "using configure arguments '$CONFIGURE_COMMAND_LINE'."
|
||||
else
|
||||
printf "using default settings.\n"
|
||||
$ECHO "using default settings."
|
||||
fi
|
||||
|
||||
if test "x$REAL_CONFIGURE_COMMAND_EXEC_FULL" != x; then
|
||||
printf "\n"
|
||||
printf "The original configure invocation was '$REAL_CONFIGURE_COMMAND_EXEC_SHORT $REAL_CONFIGURE_COMMAND_LINE'.\n"
|
||||
$ECHO ""
|
||||
$ECHO "The original configure invocation was '$REAL_CONFIGURE_COMMAND_EXEC_SHORT $REAL_CONFIGURE_COMMAND_LINE'."
|
||||
fi
|
||||
|
||||
printf "\n"
|
||||
printf "Configuration summary:\n"
|
||||
printf "* Name: $CONF_NAME\n"
|
||||
printf "* Debug level: $DEBUG_LEVEL\n"
|
||||
printf "* HS debug level: $HOTSPOT_DEBUG_LEVEL\n"
|
||||
printf "* JVM variants: $JVM_VARIANTS\n"
|
||||
printf "* JVM features: "
|
||||
$ECHO ""
|
||||
$ECHO "Configuration summary:"
|
||||
$ECHO "* Name: $CONF_NAME"
|
||||
$ECHO "* Debug level: $DEBUG_LEVEL"
|
||||
$ECHO "* HS debug level: $HOTSPOT_DEBUG_LEVEL"
|
||||
$ECHO "* JVM variants: $JVM_VARIANTS"
|
||||
$ECHO -n "* JVM features: "
|
||||
|
||||
for variant in $JVM_VARIANTS; do
|
||||
features_var_name=JVM_FEATURES_$variant
|
||||
JVM_FEATURES_FOR_VARIANT=${!features_var_name}
|
||||
printf "$variant: \'$JVM_FEATURES_FOR_VARIANT\' "
|
||||
$ECHO -n "$variant: '$JVM_FEATURES_FOR_VARIANT' "
|
||||
done
|
||||
printf "\n"
|
||||
$ECHO ""
|
||||
|
||||
printf "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS\n"
|
||||
printf "* Version string: $VERSION_STRING ($VERSION_SHORT)\n"
|
||||
$ECHO "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS"
|
||||
$ECHO "* Version string: $VERSION_STRING ($VERSION_SHORT)"
|
||||
|
||||
if test "x$SOURCE_DATE" != xupdated; then
|
||||
source_date_info="$SOURCE_DATE ($SOURCE_DATE_ISO_8601)"
|
||||
else
|
||||
source_date_info="Determined at build time"
|
||||
fi
|
||||
printf "* Source date: $source_date_info\n"
|
||||
$ECHO "* Source date: $source_date_info"
|
||||
|
||||
printf "\n"
|
||||
printf "Tools summary:\n"
|
||||
$ECHO ""
|
||||
$ECHO "Tools summary:"
|
||||
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
|
||||
printf "* Environment: %s version %s; windows version %s; prefix \"%s\"; root \"%s\"\n" \
|
||||
"$WINENV_VENDOR" "$WINENV_VERSION" "$WINDOWS_VERSION" "$WINENV_PREFIX" "$WINENV_ROOT"
|
||||
$ECHO "* Environment: $WINENV_VENDOR version $WINENV_VERSION; windows version $WINDOWS_VERSION; prefix \"$WINENV_PREFIX\"; root \"$WINENV_ROOT\""
|
||||
fi
|
||||
printf "* Boot JDK: $BOOT_JDK_VERSION (at $BOOT_JDK)\n"
|
||||
printf "* Toolchain: $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION)\n"
|
||||
$ECHO "* Boot JDK: $BOOT_JDK_VERSION (at $BOOT_JDK)"
|
||||
$ECHO "* Toolchain: $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION)"
|
||||
if test "x$DEVKIT_NAME" != x; then
|
||||
printf "* Devkit: $DEVKIT_NAME ($DEVKIT_ROOT)\n"
|
||||
$ECHO "* Devkit: $DEVKIT_NAME ($DEVKIT_ROOT)"
|
||||
elif test "x$DEVKIT_ROOT" != x; then
|
||||
printf "* Devkit: $DEVKIT_ROOT\n"
|
||||
$ECHO "* Devkit: $DEVKIT_ROOT"
|
||||
elif test "x$SYSROOT" != x; then
|
||||
printf "* Sysroot: $SYSROOT\n"
|
||||
$ECHO "* Sysroot: $SYSROOT"
|
||||
fi
|
||||
printf "* C Compiler: Version $CC_VERSION_NUMBER (at ${CC#"$FIXPATH "})\n"
|
||||
printf "* C++ Compiler: Version $CXX_VERSION_NUMBER (at ${CXX#"$FIXPATH "})\n"
|
||||
$ECHO "* C Compiler: Version $CC_VERSION_NUMBER (at ${CC#"$FIXPATH "})"
|
||||
$ECHO "* C++ Compiler: Version $CXX_VERSION_NUMBER (at ${CXX#"$FIXPATH "})"
|
||||
|
||||
printf "\n"
|
||||
printf "Build performance summary:\n"
|
||||
printf "* Build jobs: $JOBS\n"
|
||||
printf "* Memory limit: $MEMORY_SIZE MB\n"
|
||||
$ECHO ""
|
||||
$ECHO "Build performance summary:"
|
||||
$ECHO "* Build jobs: $JOBS"
|
||||
$ECHO "* Memory limit: $MEMORY_SIZE MB"
|
||||
if test "x$CCACHE_STATUS" != "x"; then
|
||||
printf "* ccache status: $CCACHE_STATUS\n"
|
||||
$ECHO "* ccache status: $CCACHE_STATUS"
|
||||
fi
|
||||
printf "\n"
|
||||
$ECHO ""
|
||||
|
||||
if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xtrue"; then
|
||||
printf "NOTE: You have requested to build more than one version of the JVM, which\n"
|
||||
printf "will result in longer build times.\n"
|
||||
printf "\n"
|
||||
fi
|
||||
|
||||
if test "x$FOUND_ALT_VARIABLES" != "x"; then
|
||||
printf "WARNING: You have old-style ALT_ environment variables set.\n"
|
||||
printf "These are not respected, and will be ignored. It is recommended\n"
|
||||
printf "that you clean your environment. The following variables are set:\n"
|
||||
printf "$FOUND_ALT_VARIABLES\n"
|
||||
printf "\n"
|
||||
$ECHO "NOTE: You have requested to build more than one version of the JVM, which"
|
||||
$ECHO "will result in longer build times."
|
||||
$ECHO ""
|
||||
fi
|
||||
|
||||
if test "x$OUTPUT_DIR_IS_LOCAL" != "xyes"; then
|
||||
printf "WARNING: Your build output directory is not on a local disk.\n"
|
||||
printf "This will severely degrade build performance!\n"
|
||||
printf "It is recommended that you create an output directory on a local disk,\n"
|
||||
printf "and run the configure script again from that directory.\n"
|
||||
printf "\n"
|
||||
$ECHO "WARNING: Your build output directory is not on a local disk."
|
||||
$ECHO "This will severely degrade build performance!"
|
||||
$ECHO "It is recommended that you create an output directory on a local disk,"
|
||||
$ECHO "and run the configure script again from that directory."
|
||||
$ECHO ""
|
||||
fi
|
||||
|
||||
if test "x$IS_RECONFIGURE" = "xyes" && test "x$no_create" != "xyes"; then
|
||||
printf "WARNING: The result of this configuration has overridden an older\n"
|
||||
printf "configuration. You *should* run 'make clean' to make sure you get a\n"
|
||||
printf "proper build. Failure to do so might result in strange build problems.\n"
|
||||
printf "\n"
|
||||
$ECHO "WARNING: The result of this configuration has overridden an older"
|
||||
$ECHO "configuration. You *should* run 'make clean' to make sure you get a"
|
||||
$ECHO "proper build. Failure to do so might result in strange build problems."
|
||||
$ECHO ""
|
||||
fi
|
||||
|
||||
if test "x$IS_RECONFIGURE" != "xyes" && test "x$no_create" = "xyes"; then
|
||||
printf "WARNING: The result of this configuration was not saved.\n"
|
||||
printf "You should run without '--no-create | -n' to create the configuration.\n"
|
||||
printf "\n"
|
||||
$ECHO "WARNING: The result of this configuration was not saved."
|
||||
$ECHO "You should run without '--no-create | -n' to create the configuration."
|
||||
$ECHO ""
|
||||
fi
|
||||
|
||||
if test "x$UNSUPPORTED_TOOLCHAIN_VERSION" = "xyes"; then
|
||||
printf "WARNING: The toolchain version used is known to have issues. Please\n"
|
||||
printf "consider using a supported version unless you know what you are doing.\n"
|
||||
printf "\n"
|
||||
$ECHO "WARNING: The toolchain version used is known to have issues. Please"
|
||||
$ECHO "consider using a supported version unless you know what you are doing."
|
||||
$ECHO ""
|
||||
fi
|
||||
])
|
||||
|
||||
@ -389,10 +383,10 @@ AC_DEFUN_ONCE([HELP_REPEAT_WARNINGS],
|
||||
if test -e "$CONFIG_LOG_PATH/config.log"; then
|
||||
$GREP '^configure:.*: WARNING:' "$CONFIG_LOG_PATH/config.log" > /dev/null 2>&1
|
||||
if test $? -eq 0; then
|
||||
printf "The following warnings were produced. Repeated here for convenience:\n"
|
||||
$ECHO "The following warnings were produced. Repeated here for convenience:"
|
||||
# We must quote sed expression (using []) to stop m4 from eating the [].
|
||||
$GREP '^configure:.*: WARNING:' "$CONFIG_LOG_PATH/config.log" | $SED -e [ 's/^configure:[0-9]*: //' ]
|
||||
printf "\n"
|
||||
$ECHO ""
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
@ -405,10 +405,19 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_CODE_COVERAGE],
|
||||
JCOV_FILTERS="$with_jcov_filters"
|
||||
fi
|
||||
fi
|
||||
|
||||
UTIL_ARG_WITH(NAME: jcov-modules, TYPE: string,
|
||||
DEFAULT: [], RESULT: JCOV_MODULES_COMMMA_SEPARATED,
|
||||
DESC: [which modules to include in jcov (comma-separated)],
|
||||
OPTIONAL: true)
|
||||
|
||||
# Replace "," with " ".
|
||||
JCOV_MODULES=${JCOV_MODULES_COMMMA_SEPARATED//,/ }
|
||||
AC_SUBST(JCOV_ENABLED)
|
||||
AC_SUBST(JCOV_HOME)
|
||||
AC_SUBST(JCOV_INPUT_JDK)
|
||||
AC_SUBST(JCOV_FILTERS)
|
||||
AC_SUBST(JCOV_MODULES)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
@ -516,11 +525,25 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_UNDEFINED_BEHAVIOR_SANITIZER],
|
||||
OPTIONAL: true)
|
||||
|
||||
# GCC reports lots of likely false positives for stringop-truncation and format-overflow.
|
||||
# GCC 13 also for array-bounds and stringop-overflow
|
||||
# Silence them for now.
|
||||
UBSAN_CHECKS="-fsanitize=undefined -fsanitize=float-divide-by-zero -fno-sanitize=shift-base -fno-sanitize=alignment \
|
||||
$ADDITIONAL_UBSAN_CHECKS"
|
||||
UBSAN_CFLAGS="$UBSAN_CHECKS -Wno-stringop-truncation -Wno-format-overflow -fno-omit-frame-pointer -DUNDEFINED_BEHAVIOR_SANITIZER"
|
||||
UBSAN_CFLAGS="$UBSAN_CHECKS -Wno-array-bounds -fno-omit-frame-pointer -DUNDEFINED_BEHAVIOR_SANITIZER"
|
||||
if test "x$TOOLCHAIN_TYPE" = "xgcc"; then
|
||||
UBSAN_CFLAGS="$UBSAN_CFLAGS -Wno-format-overflow -Wno-stringop-overflow -Wno-stringop-truncation"
|
||||
fi
|
||||
UBSAN_LDFLAGS="$UBSAN_CHECKS"
|
||||
# On AIX, the llvm_symbolizer is not found out of the box, so we have to provide the
|
||||
# full qualified llvm_symbolizer path in the __ubsan_default_options() function in
|
||||
# make/data/ubsan/ubsan_default_options.c. To get it there we compile our sources
|
||||
# with an additional define LLVM_SYMBOLIZER, which we set here.
|
||||
# To calculate the correct llvm_symbolizer path we can use the location of the compiler, because
|
||||
# their relation is fixed.
|
||||
if test "x$TOOLCHAIN_TYPE" = "xclang" && test "x$OPENJDK_TARGET_OS" = "xaix"; then
|
||||
UBSAN_CFLAGS="$UBSAN_CFLAGS -fno-sanitize=function,vptr -DLLVM_SYMBOLIZER=$(dirname $(dirname $CC))/tools/ibm-llvm-symbolizer"
|
||||
UBSAN_LDFLAGS="$UBSAN_LDFLAGS -fno-sanitize=function,vptr -Wl,-bbigtoc"
|
||||
fi
|
||||
UTIL_ARG_ENABLE(NAME: ubsan, DEFAULT: false, RESULT: UBSAN_ENABLED,
|
||||
DESC: [enable UndefinedBehaviorSanitizer],
|
||||
CHECK_AVAILABLE: [
|
||||
@ -553,16 +576,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_UNDEFINED_BEHAVIOR_SANITIZER],
|
||||
AC_SUBST(UBSAN_ENABLED)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Static build support. When enabled will generate static
|
||||
# libraries instead of shared libraries for all JDK libs.
|
||||
#
|
||||
AC_DEFUN_ONCE([JDKOPT_SETUP_STATIC_BUILD],
|
||||
[
|
||||
UTIL_DEPRECATED_ARG_ENABLE(static-build)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# jmod options.
|
||||
@ -629,6 +642,18 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JLINK_OPTIONS],
|
||||
DEFAULT_DESC: [enabled by default unless --enable-linkable-runtime is set],
|
||||
CHECKING_MSG: [if packaged modules are kept])
|
||||
AC_SUBST(JLINK_KEEP_PACKAGED_MODULES)
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Extra jlink options to be (optionally) passed to the JDK build
|
||||
#
|
||||
UTIL_ARG_WITH(NAME: extra-jlink-flags, TYPE: string,
|
||||
DEFAULT: [],
|
||||
DESC: [extra flags to be passed to jlink during the build],
|
||||
OPTIONAL: true)
|
||||
|
||||
JLINK_USER_EXTRA_FLAGS="$EXTRA_JLINK_FLAGS"
|
||||
AC_SUBST(JLINK_USER_EXTRA_FLAGS)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
@ -670,15 +695,6 @@ AC_DEFUN([JDKOPT_EXCLUDE_TRANSLATIONS],
|
||||
AC_SUBST(EXCLUDE_TRANSLATIONS)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Optionally disable man pages (deprecated)
|
||||
#
|
||||
AC_DEFUN([JDKOPT_ENABLE_DISABLE_MANPAGES],
|
||||
[
|
||||
UTIL_DEPRECATED_ARG_ENABLE(manpages)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Disable the default CDS archive generation
|
||||
@ -865,8 +881,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_REPRODUCIBLE_BUILD],
|
||||
AC_SUBST(SOURCE_DATE)
|
||||
AC_SUBST(ISO_8601_FORMAT_STRING)
|
||||
AC_SUBST(SOURCE_DATE_ISO_8601)
|
||||
|
||||
UTIL_DEPRECATED_ARG_ENABLE(reproducible-build)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
@ -973,6 +987,41 @@ AC_DEFUN([JDKOPT_SETUP_MACOSX_SIGNING],
|
||||
AC_SUBST(MACOSX_CODESIGN_MODE)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Setup a hook to invoke a script that runs for file produced by the native
|
||||
# compilation steps, after linking.
|
||||
# Parameter is the path to the script to be called.
|
||||
#
|
||||
AC_DEFUN([JDKOPT_SETUP_SIGNING_HOOK],
|
||||
[
|
||||
UTIL_ARG_WITH(NAME: signing-hook, TYPE: executable,
|
||||
OPTIONAL: true, DEFAULT: "",
|
||||
DESC: [specify path to script used to code sign native binaries]
|
||||
)
|
||||
|
||||
AC_MSG_CHECKING([for signing hook])
|
||||
if test "x$SIGNING_HOOK" != x; then
|
||||
UTIL_FIXUP_EXECUTABLE(SIGNING_HOOK)
|
||||
AC_MSG_RESULT([$SIGNING_HOOK])
|
||||
else
|
||||
AC_MSG_RESULT([none])
|
||||
fi
|
||||
AC_SUBST(SIGNING_HOOK)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Setup how javac should handle warnings.
|
||||
#
|
||||
AC_DEFUN([JDKOPT_SETUP_JAVA_WARNINGS],
|
||||
[
|
||||
UTIL_ARG_ENABLE(NAME: java-warnings-as-errors, DEFAULT: true,
|
||||
RESULT: JAVA_WARNINGS_AS_ERRORS,
|
||||
DESC: [consider java warnings to be an error])
|
||||
AC_SUBST(JAVA_WARNINGS_AS_ERRORS)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# fallback linker
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2025, 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
|
||||
@ -50,9 +50,8 @@ m4_define(jvm_features_valid, m4_normalize( \
|
||||
))
|
||||
|
||||
# Deprecated JVM features (these are ignored, but with a warning)
|
||||
m4_define(jvm_features_deprecated, m4_normalize(
|
||||
cmsgc trace \
|
||||
))
|
||||
# This list is empty at the moment.
|
||||
m4_define(jvm_features_deprecated, m4_normalize( ))
|
||||
|
||||
# Feature descriptions
|
||||
m4_define(jvm_feature_desc_cds, [enable class data sharing (CDS)])
|
||||
|
||||
@ -62,19 +62,29 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBJPEG],
|
||||
|
||||
if test "x${with_libjpeg}" = "xbundled"; then
|
||||
USE_EXTERNAL_LIBJPEG=false
|
||||
LIBJPEG_CFLAGS=""
|
||||
LIBJPEG_LIBS=""
|
||||
elif test "x${with_libjpeg}" = "xsystem"; then
|
||||
AC_CHECK_HEADER(jpeglib.h, [],
|
||||
[ AC_MSG_ERROR([--with-libjpeg=system specified, but jpeglib.h not found!])])
|
||||
AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [],
|
||||
[ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])])
|
||||
PKG_CHECK_MODULES(LIBJPEG, libjpeg, [LIBJPEG_FOUND=yes], [LIBJPEG_FOUND=no])
|
||||
if test "x${LIBJPEG_FOUND}" = "xyes"; then
|
||||
# PKG_CHECK_MODULES will set LIBJPEG_CFLAGS and LIBJPEG_LIBS
|
||||
USE_EXTERNAL_LIBJPEG=true
|
||||
else
|
||||
AC_CHECK_HEADER(jpeglib.h, [],
|
||||
[ AC_MSG_ERROR([--with-libjpeg=system specified, but jpeglib.h not found!])])
|
||||
AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [],
|
||||
[ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])])
|
||||
|
||||
USE_EXTERNAL_LIBJPEG=true
|
||||
LIBJPEG_LIBS="-ljpeg"
|
||||
USE_EXTERNAL_LIBJPEG=true
|
||||
LIBJPEG_CFLAGS=""
|
||||
LIBJPEG_LIBS="-ljpeg"
|
||||
fi
|
||||
else
|
||||
AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'])
|
||||
fi
|
||||
|
||||
AC_SUBST(USE_EXTERNAL_LIBJPEG)
|
||||
AC_SUBST(LIBJPEG_CFLAGS)
|
||||
AC_SUBST(LIBJPEG_LIBS)
|
||||
])
|
||||
|
||||
@ -85,6 +95,10 @@ AC_DEFUN_ONCE([LIB_SETUP_GIFLIB],
|
||||
[
|
||||
AC_ARG_WITH(giflib, [AS_HELP_STRING([--with-giflib],
|
||||
[use giflib from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])])
|
||||
AC_ARG_WITH(giflib-include, [AS_HELP_STRING([--with-giflib-include],
|
||||
[specify directory for the system giflib include files])])
|
||||
AC_ARG_WITH(giflib-lib, [AS_HELP_STRING([--with-giflib-lib],
|
||||
[specify directory for the system giflib library])])
|
||||
|
||||
AC_MSG_CHECKING([for which giflib to use])
|
||||
# default is bundled
|
||||
@ -97,11 +111,40 @@ AC_DEFUN_ONCE([LIB_SETUP_GIFLIB],
|
||||
|
||||
if test "x${with_giflib}" = "xbundled"; then
|
||||
USE_EXTERNAL_LIBGIF=false
|
||||
GIFLIB_CFLAGS=""
|
||||
GIFLIB_LIBS=""
|
||||
elif test "x${with_giflib}" = "xsystem"; then
|
||||
AC_CHECK_HEADER(gif_lib.h, [],
|
||||
[ AC_MSG_ERROR([--with-giflib=system specified, but gif_lib.h not found!])])
|
||||
AC_CHECK_LIB(gif, DGifGetCode, [],
|
||||
[ AC_MSG_ERROR([--with-giflib=system specified, but no giflib found!])])
|
||||
GIFLIB_H_FOUND=no
|
||||
if test "x${with_giflib_include}" != x; then
|
||||
GIFLIB_CFLAGS="-I${with_giflib_include}"
|
||||
GIFLIB_H_FOUND=yes
|
||||
fi
|
||||
if test "x$GIFLIB_H_FOUND" = xno; then
|
||||
AC_CHECK_HEADER(gif_lib.h,
|
||||
[
|
||||
GIFLIB_CFLAGS=""
|
||||
GIFLIB_H_FOUND=yes
|
||||
])
|
||||
fi
|
||||
if test "x$GIFLIB_H_FOUND" = xno; then
|
||||
AC_MSG_ERROR([--with-giflib=system specified, but gif_lib.h not found!])
|
||||
fi
|
||||
|
||||
GIFLIB_LIB_FOUND=no
|
||||
if test "x${with_giflib_lib}" != x; then
|
||||
GIFLIB_LIBS="-L${with_giflib_lib} -lgif"
|
||||
GIFLIB_LIB_FOUND=yes
|
||||
fi
|
||||
if test "x$GIFLIB_LIB_FOUND" = xno; then
|
||||
AC_CHECK_LIB(gif, DGifGetCode,
|
||||
[
|
||||
GIFLIB_LIBS="-lgif"
|
||||
GIFLIB_LIB_FOUND=yes
|
||||
])
|
||||
fi
|
||||
if test "x$GIFLIB_LIB_FOUND" = xno; then
|
||||
AC_MSG_ERROR([--with-giflib=system specified, but no giflib found!])
|
||||
fi
|
||||
|
||||
USE_EXTERNAL_LIBGIF=true
|
||||
GIFLIB_LIBS=-lgif
|
||||
@ -110,6 +153,7 @@ AC_DEFUN_ONCE([LIB_SETUP_GIFLIB],
|
||||
fi
|
||||
|
||||
AC_SUBST(USE_EXTERNAL_LIBGIF)
|
||||
AC_SUBST(GIFLIB_CFLAGS)
|
||||
AC_SUBST(GIFLIB_LIBS)
|
||||
])
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2018, 2025, 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
|
||||
@ -28,7 +28,7 @@
|
||||
################################################################################
|
||||
|
||||
# Minimum supported versions
|
||||
JTREG_MINIMUM_VERSION=7.4
|
||||
JTREG_MINIMUM_VERSION=7.5.1
|
||||
GTEST_MINIMUM_VERSION=1.14.0
|
||||
|
||||
################################################################################
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2025, 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
|
||||
@ -98,13 +98,7 @@ AC_DEFUN([LIB_SETUP_JVM_LIBS],
|
||||
# 32-bit platforms needs fallback library for 8-byte atomic ops on Zero
|
||||
if HOTSPOT_CHECK_JVM_VARIANT(zero); then
|
||||
if test "x$OPENJDK_$1_OS" = xlinux &&
|
||||
(test "x$OPENJDK_$1_CPU" = xarm ||
|
||||
test "x$OPENJDK_$1_CPU" = xm68k ||
|
||||
test "x$OPENJDK_$1_CPU" = xmips ||
|
||||
test "x$OPENJDK_$1_CPU" = xmipsel ||
|
||||
test "x$OPENJDK_$1_CPU" = xppc ||
|
||||
test "x$OPENJDK_$1_CPU" = xsh ||
|
||||
test "x$OPENJDK_$1_CPU" = xriscv32); then
|
||||
test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
|
||||
BASIC_JVM_LIBS_$1="$BASIC_JVM_LIBS_$1 -latomic"
|
||||
fi
|
||||
fi
|
||||
@ -139,7 +133,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
|
||||
|
||||
# Threading library
|
||||
if test "x$OPENJDK_TARGET_OS" = xlinux || test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||
BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lpthread"
|
||||
BASIC_JVM_LIBS="$BASIC_JVM_LIBS $LIBPTHREAD"
|
||||
fi
|
||||
|
||||
# librt for legacy clock_gettime
|
||||
@ -197,6 +191,28 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS],
|
||||
AC_SUBST(LIBDL)
|
||||
LIBS="$save_LIBS"
|
||||
|
||||
# Setup posix pthread support
|
||||
if test "x$OPENJDK_TARGET_OS" != "xwindows"; then
|
||||
LIBPTHREAD="-lpthread"
|
||||
else
|
||||
LIBPTHREAD=""
|
||||
fi
|
||||
AC_SUBST(LIBPTHREAD)
|
||||
|
||||
# Setup libiconv flags and library
|
||||
if test "x$OPENJDK_TARGET_OS" == "xaix" || test "x$OPENJDK_TARGET_OS" == "xmacosx"; then
|
||||
ICONV_CFLAGS=
|
||||
ICONV_LDFLAGS=
|
||||
ICONV_LIBS=-liconv
|
||||
else
|
||||
ICONV_CFLAGS=
|
||||
ICONV_LDFLAGS=
|
||||
ICONV_LIBS=
|
||||
fi
|
||||
AC_SUBST(ICONV_CFLAGS)
|
||||
AC_SUBST(ICONV_LDFLAGS)
|
||||
AC_SUBST(ICONV_LIBS)
|
||||
|
||||
# Control if libzip can use mmap. Available for purposes of overriding.
|
||||
LIBZIP_CAN_USE_MMAP=true
|
||||
AC_SUBST(LIBZIP_CAN_USE_MMAP)
|
||||
|
||||
@ -666,17 +666,7 @@ AC_DEFUN([PLATFORM_CHECK_DEPRECATION],
|
||||
[
|
||||
AC_ARG_ENABLE(deprecated-ports, [AS_HELP_STRING([--enable-deprecated-ports@<:@=yes/no@:>@],
|
||||
[Suppress the error when configuring for a deprecated port @<:@no@:>@])])
|
||||
# Unfortunately, variants have not been parsed yet, so we have to check the configure option
|
||||
# directly. Allow only the directly specified Zero variant, treat any other mix as containing
|
||||
# something non-Zero.
|
||||
if test "x$OPENJDK_TARGET_CPU" = xx86 && test "x$with_jvm_variants" != xzero; then
|
||||
if test "x$enable_deprecated_ports" = "xyes"; then
|
||||
AC_MSG_WARN([The 32-bit x86 port is deprecated and may be removed in a future release.])
|
||||
else
|
||||
AC_MSG_ERROR(m4_normalize([The 32-bit x86 port is deprecated and may be removed in a future release.
|
||||
Use --enable-deprecated-ports=yes to suppress this error.]))
|
||||
fi
|
||||
fi
|
||||
# There are no deprecated ports. Implement the deprecation warnings here.
|
||||
])
|
||||
|
||||
AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_BUILD_OS_VERSION],
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2025, 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
|
||||
@ -144,6 +144,7 @@ endif
|
||||
|
||||
LIBM := @LIBM@
|
||||
LIBDL := @LIBDL@
|
||||
LIBPTHREAD := @LIBPTHREAD@
|
||||
|
||||
WINENV_ROOT := @WINENV_ROOT@
|
||||
WINENV_PREFIX := @WINENV_PREFIX@
|
||||
@ -426,6 +427,9 @@ LIBFFI_LIBS := @LIBFFI_LIBS@
|
||||
LIBFFI_CFLAGS := @LIBFFI_CFLAGS@
|
||||
ENABLE_LIBFFI_BUNDLING := @ENABLE_LIBFFI_BUNDLING@
|
||||
LIBFFI_LIB_FILE := @LIBFFI_LIB_FILE@
|
||||
ICONV_CFLAGS := @ICONV_CFLAGS@
|
||||
ICONV_LDFLAGS := @ICONV_LDFLAGS@
|
||||
ICONV_LIBS := @ICONV_LIBS@
|
||||
FILE_MACRO_CFLAGS := @FILE_MACRO_CFLAGS@
|
||||
REPRODUCIBLE_CFLAGS := @REPRODUCIBLE_CFLAGS@
|
||||
|
||||
@ -450,6 +454,7 @@ JCOV_ENABLED := @JCOV_ENABLED@
|
||||
JCOV_HOME := @JCOV_HOME@
|
||||
JCOV_INPUT_JDK := @JCOV_INPUT_JDK@
|
||||
JCOV_FILTERS := @JCOV_FILTERS@
|
||||
JCOV_MODULES := @JCOV_MODULES@
|
||||
|
||||
# AddressSanitizer
|
||||
ASAN_ENABLED := @ASAN_ENABLED@
|
||||
@ -475,6 +480,9 @@ MACOSX_VERSION_MAX := @MACOSX_VERSION_MAX@
|
||||
MACOSX_CODESIGN_MODE := @MACOSX_CODESIGN_MODE@
|
||||
MACOSX_CODESIGN_IDENTITY := @MACOSX_CODESIGN_IDENTITY@
|
||||
|
||||
# The code signing hook configuration
|
||||
SIGNING_HOOK := @SIGNING_HOOK@
|
||||
|
||||
# Toolchain type: gcc, clang, microsoft...
|
||||
TOOLCHAIN_TYPE := @TOOLCHAIN_TYPE@
|
||||
TOOLCHAIN_VERSION := @TOOLCHAIN_VERSION@
|
||||
@ -510,6 +518,7 @@ DISABLED_WARNINGS_CXX := @DISABLED_WARNINGS_CXX@
|
||||
|
||||
# A global flag (true or false) determining if native warnings are considered errors.
|
||||
WARNINGS_AS_ERRORS := @WARNINGS_AS_ERRORS@
|
||||
JAVA_WARNINGS_AS_ERRORS := @JAVA_WARNINGS_AS_ERRORS@
|
||||
|
||||
CFLAGS_CCACHE := @CFLAGS_CCACHE@
|
||||
ADLC_LANGSTD_CXXFLAGS := @ADLC_LANGSTD_CXXFLAGS@
|
||||
@ -708,6 +717,7 @@ NEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) $(JAVADOC_MAIN_CLASS)
|
||||
JMOD_COMPRESS := @JMOD_COMPRESS@
|
||||
JLINK_KEEP_PACKAGED_MODULES := @JLINK_KEEP_PACKAGED_MODULES@
|
||||
JLINK_PRODUCE_LINKABLE_RUNTIME := @JLINK_PRODUCE_LINKABLE_RUNTIME@
|
||||
JLINK_USER_EXTRA_FLAGS := @JLINK_USER_EXTRA_FLAGS@
|
||||
|
||||
RCFLAGS := @RCFLAGS@
|
||||
|
||||
@ -792,8 +802,10 @@ TAR_SUPPORTS_TRANSFORM := @TAR_SUPPORTS_TRANSFORM@
|
||||
|
||||
# Build setup
|
||||
USE_EXTERNAL_LIBJPEG := @USE_EXTERNAL_LIBJPEG@
|
||||
LIBJPEG_CFLAGS := @LIBJPEG_CFLAGS@
|
||||
LIBJPEG_LIBS := @LIBJPEG_LIBS@
|
||||
USE_EXTERNAL_LIBGIF := @USE_EXTERNAL_LIBGIF@
|
||||
GIFLIB_CFLAGS := @GIFLIB_CFLAGS@
|
||||
GIFLIB_LIBS := @GIFLIB_LIBS@
|
||||
USE_EXTERNAL_LIBZ := @USE_EXTERNAL_LIBZ@
|
||||
LIBZ_CFLAGS := @LIBZ_CFLAGS@
|
||||
@ -835,10 +847,12 @@ SVE_CFLAGS := @SVE_CFLAGS@
|
||||
JDK_IMAGE_SUBDIR := jdk
|
||||
JRE_IMAGE_SUBDIR := jre
|
||||
JCOV_IMAGE_SUBDIR := jdk-jcov
|
||||
STATIC_JDK_IMAGE_SUBDIR := static-jdk
|
||||
|
||||
# Colon left out to be able to override output dir for bootcycle-images
|
||||
JDK_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR)
|
||||
JRE_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR)
|
||||
STATIC_JDK_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(STATIC_JDK_IMAGE_SUBDIR)
|
||||
JCOV_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(JCOV_IMAGE_SUBDIR)
|
||||
|
||||
# Test image, as above
|
||||
@ -918,6 +932,7 @@ DOCS_JAVASE_BUNDLE_NAME := javase-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz
|
||||
DOCS_REFERENCE_BUNDLE_NAME := jdk-reference-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz
|
||||
STATIC_LIBS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs$(DEBUG_PART).tar.gz
|
||||
STATIC_LIBS_GRAAL_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs-graal$(DEBUG_PART).tar.gz
|
||||
STATIC_JDK_BUNDLE_NAME := static-jdk-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION)
|
||||
JCOV_BUNDLE_NAME := jdk-jcov-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION)
|
||||
|
||||
JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME)
|
||||
@ -928,6 +943,7 @@ TEST_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_BUNDLE_NAME)
|
||||
DOCS_JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_JDK_BUNDLE_NAME)
|
||||
DOCS_JAVASE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_JAVASE_BUNDLE_NAME)
|
||||
DOCS_REFERENCE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_REFERENCE_BUNDLE_NAME)
|
||||
STATIC_JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(STATIC_JDK_BUNDLE_NAME)
|
||||
JCOV_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JCOV_BUNDLE_NAME)
|
||||
|
||||
# This macro is called to allow inclusion of closed source counterparts.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2025, 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
|
||||
@ -291,6 +291,11 @@ AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
|
||||
# For Xcode, we set the Xcode version as TOOLCHAIN_VERSION
|
||||
TOOLCHAIN_VERSION=`$ECHO $XCODE_VERSION_OUTPUT | $CUT -f 2 -d ' '`
|
||||
TOOLCHAIN_DESCRIPTION="$TOOLCHAIN_DESCRIPTION from Xcode $TOOLCHAIN_VERSION"
|
||||
if test "x$TOOLCHAIN_VERSION" = "x16" || test "x$TOOLCHAIN_VERSION" = "x16.1" ; then
|
||||
AC_MSG_NOTICE([Xcode $TOOLCHAIN_VERSION has a compiler bug that causes the build to fail.])
|
||||
AC_MSG_NOTICE([Please use Xcode 16.2 or later, or a version prior to 16.])
|
||||
AC_MSG_ERROR([Compiler version is not supported.])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(TOOLCHAIN_VERSION)
|
||||
@ -620,6 +625,13 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
|
||||
# All other toolchains use the compiler to link.
|
||||
LD="$CC"
|
||||
LDCXX="$CXX"
|
||||
# Force use of lld, since that is what we expect when setting flags later on
|
||||
if test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
||||
LD="$LD -fuse-ld=lld"
|
||||
LDCXX="$LDCXX -fuse-ld=lld"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(LD)
|
||||
# FIXME: it should be CXXLD, according to standard (cf CXXCPP)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2025, 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
|
||||
@ -87,7 +87,7 @@ AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT],
|
||||
elif test "x$TARGET_CPU" = xaarch64; then
|
||||
# for host x86-64, target aarch64
|
||||
# aarch64 requires Visual Studio 16.8 or higher
|
||||
VCVARSFILES="vcvarsamd64_arm64.bat vcvarsx86_arm64.bat"
|
||||
VCVARSFILES="vcvarsarm64.bat vcvarsamd64_arm64.bat vcvarsx86_arm64.bat"
|
||||
fi
|
||||
|
||||
for VCVARSFILE in $VCVARSFILES; do
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2025, 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
|
||||
@ -566,6 +566,14 @@ AC_DEFUN([UTIL_CHECK_TYPE_file],
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([UTIL_CHECK_TYPE_executable],
|
||||
[
|
||||
# Check that the argument is an existing file that the user has execute access to.
|
||||
if (test ! -x "$1") || (test ! -f "$1") ; then
|
||||
FAILURE="File $1 does not exist or is not executable"
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([UTIL_CHECK_TYPE_directory],
|
||||
[
|
||||
# Check that the argument is an existing directory
|
||||
@ -648,7 +656,7 @@ AC_DEFUN([UTIL_CHECK_TYPE_features],
|
||||
# Arguments:
|
||||
# NAME: The base name of this option (i.e. what follows --with-). Required.
|
||||
# TYPE: The type of the value. Can be one of "string", "integer", "file",
|
||||
# "directory", "literal", "multivalue" or "features". Required.
|
||||
# "executable", "directory", "literal", "multivalue" or "features". Required.
|
||||
# DEFAULT: The default value for this option. Can be any valid string.
|
||||
# Required.
|
||||
# OPTIONAL: If this feature can be disabled. Defaults to false. If true,
|
||||
@ -758,7 +766,7 @@ UTIL_DEFUN_NAMED([UTIL_ARG_WITH],
|
||||
# Need to assign since we can't expand ARG TYPE inside the m4 quoted if statement
|
||||
TEST_TYPE="ARG_TYPE"
|
||||
# Additional [] needed to keep m4 from mangling shell constructs.
|
||||
[ if [[ ! "$TEST_TYPE" =~ ^(string|integer|file|directory|literal|multivalue|features)$ ]] ; then ]
|
||||
[ if [[ ! "$TEST_TYPE" =~ ^(string|integer|file|executable|directory|literal|multivalue|features)$ ]] ; then ]
|
||||
AC_MSG_ERROR([Internal error: Argument TYPE to [UTIL_ARG_WITH] must be a valid type, was: 'ARG_TYPE'])
|
||||
fi
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2025, 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
|
||||
@ -186,7 +186,6 @@ AC_DEFUN([UTIL_CHECK_WINENV_EXEC_TYPE],
|
||||
# it need to be in the PATH.
|
||||
# $1: The name of the variable to fix
|
||||
# $2: Where to look for the command (replaces $PATH)
|
||||
# $3: set to NOFIXPATH to skip prefixing FIXPATH, even if needed on platform
|
||||
AC_DEFUN([UTIL_FIXUP_EXECUTABLE],
|
||||
[
|
||||
input="[$]$1"
|
||||
@ -282,10 +281,6 @@ AC_DEFUN([UTIL_FIXUP_EXECUTABLE],
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$3" = xNOFIXPATH; then
|
||||
fixpath_prefix=""
|
||||
fi
|
||||
|
||||
# Now join together the path and the arguments once again
|
||||
new_complete="$fixpath_prefix$new_path$arguments"
|
||||
$1="$new_complete"
|
||||
@ -379,7 +374,6 @@ AC_DEFUN([UTIL_SETUP_TOOL],
|
||||
# $1: variable to set
|
||||
# $2: executable name (or list of names) to look for
|
||||
# $3: [path]
|
||||
# $4: set to NOFIXPATH to skip prefixing FIXPATH, even if needed on platform
|
||||
AC_DEFUN([UTIL_LOOKUP_PROGS],
|
||||
[
|
||||
UTIL_SETUP_TOOL($1, [
|
||||
@ -421,10 +415,8 @@ AC_DEFUN([UTIL_LOOKUP_PROGS],
|
||||
|
||||
# If we have FIXPATH enabled, strip all instances of it and prepend
|
||||
# a single one, to avoid double fixpath prefixing.
|
||||
if test "x$4" != xNOFIXPATH; then
|
||||
[ if [[ $FIXPATH != "" && $result =~ ^"$FIXPATH " ]]; then ]
|
||||
result="\$FIXPATH ${result#"$FIXPATH "}"
|
||||
fi
|
||||
[ if [[ $FIXPATH != "" && $result =~ ^"$FIXPATH " ]]; then ]
|
||||
result="\$FIXPATH ${result#"$FIXPATH "}"
|
||||
fi
|
||||
AC_MSG_RESULT([$result])
|
||||
break 2;
|
||||
@ -515,6 +507,24 @@ AC_DEFUN([UTIL_ADD_FIXPATH],
|
||||
fi
|
||||
])
|
||||
|
||||
################################################################################
|
||||
# Return a path to the executable binary from a command line, stripping away
|
||||
# any FIXPATH prefix or arguments. The resulting value can be checked for
|
||||
# existence using "test -e". The result is returned in a variable named
|
||||
# "$1_EXECUTABLE".
|
||||
#
|
||||
# $1: variable describing the command to get the binary for
|
||||
AC_DEFUN([UTIL_GET_EXECUTABLE],
|
||||
[
|
||||
# Strip the FIXPATH prefix, if any
|
||||
fixpath_stripped="[$]$1"
|
||||
[ if [[ $FIXPATH != "" && $fixpath_stripped =~ ^"$FIXPATH " ]]; then ]
|
||||
fixpath_stripped="${fixpath_stripped#"$FIXPATH "}"
|
||||
fi
|
||||
# Remove any arguments following the binary
|
||||
$1_EXECUTABLE="${fixpath_stripped%% *}"
|
||||
])
|
||||
|
||||
################################################################################
|
||||
AC_DEFUN([UTIL_REMOVE_SYMBOLIC_LINKS],
|
||||
[
|
||||
|
||||
@ -58,13 +58,15 @@ ifeq ($(GENERATE_FIND_TESTS_FILE), true)
|
||||
$(TOPDIR)/test/make/TestMake.gmk
|
||||
$(call MakeTargetDir)
|
||||
( $(foreach root, $(JTREG_TESTROOTS), \
|
||||
$(PRINTF) "\n$(root)_JTREG_TEST_GROUPS := " ; \
|
||||
$(ECHO) ""; \
|
||||
$(ECHO) -n "$(root)_JTREG_TEST_GROUPS := "; \
|
||||
$(SED) -n -e 's/^\#.*//g' -e 's/\([^ ]*\)\w*=.*/\1/gp' \
|
||||
$($(root)_JTREG_GROUP_FILES) \
|
||||
| $(SORT) -u | $(TR) '\n' ' ' ; \
|
||||
) \
|
||||
) > $@
|
||||
$(PRINTF) "\nMAKE_TEST_TARGETS := " >> $@
|
||||
$(ECHO) "" >> $@
|
||||
$(ECHO) -n "MAKE_TEST_TARGETS := " >> $@
|
||||
$(MAKE) -s --no-print-directory $(MAKE_ARGS) \
|
||||
SPEC=$(SPEC) -f $(TOPDIR)/test/make/TestMake.gmk print-targets \
|
||||
TARGETS_FILE=$@
|
||||
|
||||
@ -256,7 +256,7 @@ define SetupJarArchiveBody
|
||||
$$(if $$($1_JARMAIN), \
|
||||
$(ECHO) "Main-Class: $$(strip $$($1_JARMAIN))" >> $$($1_MANIFEST_FILE) $$(NEWLINE)) \
|
||||
$$(if $$($1_EXTRA_MANIFEST_ATTR), \
|
||||
$(PRINTF) "$$($1_EXTRA_MANIFEST_ATTR)\n" >> $$($1_MANIFEST_FILE) $$(NEWLINE)) \
|
||||
$(ECHO) "$$($1_EXTRA_MANIFEST_ATTR)" >> $$($1_MANIFEST_FILE) $$(NEWLINE)) \
|
||||
$(ECHO) Creating $$($1_NAME) $$(NEWLINE) \
|
||||
$$($1_JAR_CMD) --create $$($1_JAR_OPTIONS) --file $$@ --manifest $$($1_MANIFEST_FILE) $$(NEWLINE) \
|
||||
$$($1_SCAPTURE_CONTENTS) \
|
||||
|
||||
@ -264,15 +264,16 @@ define SetupJavaCompilationBody
|
||||
$$(error Invalid value for COMPILER in SetupJavaCompilation for $1: '$$($1_COMPILER)')
|
||||
endif
|
||||
|
||||
# Allow overriding on the command line
|
||||
JAVA_WARNINGS_ARE_ERRORS ?= -Werror
|
||||
|
||||
# Tell javac to do exactly as told and no more
|
||||
PARANOIA_FLAGS := -implicit:none -Xprefer:source -XDignore.symbol.file=true -encoding ascii
|
||||
|
||||
$1_FLAGS += -g -Xlint:all $$($1_TARGET_RELEASE) $$(PARANOIA_FLAGS) $$(JAVA_WARNINGS_ARE_ERRORS)
|
||||
$1_FLAGS += -g -Xlint:all $$($1_TARGET_RELEASE) $$(PARANOIA_FLAGS)
|
||||
$1_FLAGS += $$($1_JAVAC_FLAGS)
|
||||
|
||||
ifeq ($$(JAVA_WARNINGS_AS_ERRORS), true)
|
||||
$1_FLAGS += -Werror
|
||||
endif
|
||||
|
||||
ifneq ($$($1_DISABLED_WARNINGS), )
|
||||
$1_FLAGS += -Xlint:$$(call CommaList, $$(addprefix -, $$($1_DISABLED_WARNINGS)))
|
||||
endif
|
||||
|
||||
@ -64,12 +64,6 @@ define ParseLogValue
|
||||
endef
|
||||
|
||||
define ParseLogLevel
|
||||
# Catch old-style VERBOSE= command lines.
|
||||
ifneq ($$(origin VERBOSE), undefined)
|
||||
$$(info Error: VERBOSE is deprecated. Use LOG=<warn|info|debug|trace> instead.)
|
||||
$$(error Cannot continue)
|
||||
endif
|
||||
|
||||
# Setup logging according to LOG
|
||||
|
||||
# If "nofile" is present, do not log to a file
|
||||
|
||||
@ -34,12 +34,12 @@ ifneq ($(NO_CUSTOM_EXTENSIONS), true)
|
||||
endif
|
||||
|
||||
# Pop our helper name off the stack
|
||||
HELPER_STACK := $(wordlist 2, $(words $(HELPER_STACK)), $(HELPER_STACK))
|
||||
INCLUDE_STACK := $(wordlist 2, $(words $(INCLUDE_STACK)), $(INCLUDE_STACK))
|
||||
|
||||
# Print an indented message, also counting the top-level makefile as a level
|
||||
ifeq ($(LOG_FLOW), true)
|
||||
$(info :$(foreach s, top $(HELPER_STACK), )Leave $(THIS_INCLUDE))
|
||||
$(info :$(foreach s, top $(INCLUDE_STACK) $(SNIPPET_STACK), )Leave $(THIS_INCLUDE))
|
||||
endif
|
||||
|
||||
# Restore the previous helper name
|
||||
THIS_INCLUDE := $(firstword $(HELPER_STACK))
|
||||
THIS_INCLUDE := $(firstword $(INCLUDE_STACK))
|
||||
|
||||
@ -39,11 +39,11 @@ else
|
||||
endif
|
||||
|
||||
ifeq ($(LOG_FLOW), true)
|
||||
$(info :$(foreach s, top $(HELPER_STACK), )Enter $(THIS_INCLUDE) [$(THIS_INCLUDE_MSG)])
|
||||
$(info :$(foreach s, top $(INCLUDE_STACK) $(SNIPPET_STACK), )Enter $(THIS_INCLUDE) [$(THIS_INCLUDE_MSG)])
|
||||
endif
|
||||
|
||||
ifneq ($(filter $(THIS_INCLUDE), $(HELPER_STACK)), )
|
||||
$(error Internal makefile error: Include loop detected: $(THIS_INCLUDE) $(HELPER_STACK))
|
||||
ifneq ($(filter $(THIS_INCLUDE), $(INCLUDE_STACK)), )
|
||||
$(error Internal makefile error: Include loop detected: $(THIS_INCLUDE) $(INCLUDE_STACK))
|
||||
endif
|
||||
|
||||
ifeq ($(words $(MAKEFILE_LIST)), 2)
|
||||
@ -66,7 +66,7 @@ ifneq ($(IS_PREINIT_ENV), true)
|
||||
endif
|
||||
|
||||
# Push our helper name onto the stack
|
||||
HELPER_STACK := $(THIS_INCLUDE) $(HELPER_STACK)
|
||||
INCLUDE_STACK := $(THIS_INCLUDE) $(INCLUDE_STACK)
|
||||
|
||||
# Setup an automatic include guard
|
||||
ifneq ($(INCLUDE_GUARD_$(THIS_INCLUDE)), true)
|
||||
|
||||
@ -34,12 +34,12 @@ ifneq ($(NO_CUSTOM_EXTENSIONS), true)
|
||||
endif
|
||||
|
||||
# Pop our helper name off the stack
|
||||
HELPER_STACK := $(wordlist 2, $(words $(HELPER_STACK)), $(HELPER_STACK))
|
||||
SNIPPET_STACK := $(wordlist 2, $(words $(SNIPPET_STACK)), $(SNIPPET_STACK))
|
||||
|
||||
# Print an indented message, also counting the top-level makefile as a level
|
||||
ifeq ($(LOG_FLOW), true)
|
||||
$(info :$(foreach s, top $(HELPER_STACK), )Leave $(THIS_SNIPPET))
|
||||
$(info :$(foreach s, top $(INCLUDE_STACK) $(SNIPPET_STACK), )Leave $(THIS_SNIPPET))
|
||||
endif
|
||||
|
||||
# Restore the previous helper name
|
||||
THIS_SNIPPET := $(firstword $(HELPER_STACK))
|
||||
THIS_SNIPPET := $(firstword $(SNIPPET_STACK))
|
||||
|
||||
@ -33,11 +33,11 @@ endif
|
||||
|
||||
# Print an indented message, also counting the top-level makefile as a level
|
||||
ifeq ($(LOG_FLOW), true)
|
||||
$(info :$(foreach s, top $(HELPER_STACK), )Enter $(THIS_SNIPPET) [snippet])
|
||||
$(info :$(foreach s, top $(INCLUDE_STACK) $(SNIPPET_STACK), )Enter $(THIS_SNIPPET) [snippet])
|
||||
endif
|
||||
|
||||
# Push our helper name onto the stack
|
||||
HELPER_STACK := $(THIS_SNIPPET) $(HELPER_STACK)
|
||||
SNIPPET_STACK := $(THIS_SNIPPET) $(SNIPPET_STACK)
|
||||
|
||||
# Hook to include the corresponding custom file, if present.
|
||||
ifneq ($(NO_CUSTOM_EXTENSIONS), true)
|
||||
|
||||
@ -87,7 +87,10 @@ SRC_SUBDIRS += share/classes
|
||||
|
||||
SPEC_SUBDIRS += share/specs
|
||||
|
||||
MAN_SUBDIRS += share/man windows/man
|
||||
MAN_SUBDIRS += share/man $(TARGET_OS)/man
|
||||
|
||||
# The docs should include the sum of all man pages for all platforms
|
||||
MAN_DOCS_SUBDIRS += share/man windows/man
|
||||
|
||||
# Find all module-info.java files for the current build target platform and
|
||||
# configuration.
|
||||
@ -153,6 +156,10 @@ FindModuleManDirs = \
|
||||
$(strip $(wildcard \
|
||||
$(foreach sub, $(MAN_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS)))))
|
||||
|
||||
FindModuleManDirsForDocs = \
|
||||
$(strip $(wildcard \
|
||||
$(foreach sub, $(MAN_DOCS_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS)))))
|
||||
|
||||
# Construct the complete module source path
|
||||
GetModuleSrcPath = \
|
||||
$(call PathList, \
|
||||
@ -173,7 +180,7 @@ ifeq ($(GENERATE_MODULE_DEPS_FILE), true)
|
||||
$(call MakeTargetDir)
|
||||
$(RM) $@
|
||||
$(foreach m, $(MODULE_INFOS), \
|
||||
( $(PRINTF) "DEPS_$(call GetModuleNameFromModuleInfo, $m) := " && \
|
||||
( $(ECHO) -n "DEPS_$(call GetModuleNameFromModuleInfo, $m) := " && \
|
||||
$(AWK) -v MODULE=$(call GetModuleNameFromModuleInfo, $m) ' \
|
||||
BEGIN { if (MODULE != "java.base") printf(" java.base"); } \
|
||||
/^ *requires/ { sub(/;/, ""); \
|
||||
@ -187,7 +194,7 @@ ifeq ($(GENERATE_MODULE_DEPS_FILE), true)
|
||||
gsub(/\r/, ""); \
|
||||
printf(" %s", $$0) } \
|
||||
END { printf("\n") }' $m && \
|
||||
$(PRINTF) "TRANSITIVE_MODULES_$(call GetModuleNameFromModuleInfo, $m) := " && \
|
||||
$(ECHO) -n "TRANSITIVE_MODULES_$(call GetModuleNameFromModuleInfo, $m) := " && \
|
||||
$(AWK) -v MODULE=$(call GetModuleNameFromModuleInfo, $m) ' \
|
||||
BEGIN { if (MODULE != "java.base") printf(" java.base"); } \
|
||||
/^ *requires *transitive/ { \
|
||||
|
||||
@ -43,6 +43,9 @@ include JdkNativeCompilation.gmk
|
||||
# OUTPUT_DIR Where to put the resulting files
|
||||
# EXCLUDE A list of filenames to exclude from compilation
|
||||
# EXTRA_FILES List of extra files not in SOURCE_DIRS
|
||||
# CFLAGS List of extra CFLAGS to pass on for each test
|
||||
# LDFLAGS List of extra LDFLAGS to pass on for each test
|
||||
# LIBS List of extra LIBS to pass on for each test
|
||||
SetupTestFilesCompilation = $(NamedParamsMacroTemplate)
|
||||
define SetupTestFilesCompilationBody
|
||||
|
||||
@ -108,7 +111,7 @@ define SetupTestFilesCompilationBody
|
||||
CFLAGS := $$(TEST_CFLAGS) $$($1_CFLAGS) $$($1_CFLAGS_$$(name)), \
|
||||
CXXFLAGS := $$(TEST_CFLAGS) $$($1_CFLAGS) $$($1_CFLAGS_$$(name)), \
|
||||
LD_SET_ORIGIN := $$($1_LD_SET_ORIGIN), \
|
||||
LDFLAGS := $$($1_LDFLAGS_$$(name)), \
|
||||
LDFLAGS := $$($1_LDFLAGS) $$($1_LDFLAGS_$$(name)), \
|
||||
DISABLED_WARNINGS_gcc := format undef unused-but-set-variable \
|
||||
unused-const-variable unused-function unused-value \
|
||||
unused-variable, \
|
||||
@ -117,7 +120,7 @@ define SetupTestFilesCompilationBody
|
||||
unused-but-set-variable unused-function unused-variable, \
|
||||
DEFAULT_LIBCXX := false, \
|
||||
JDK_LIBS := $$($1_JDK_LIBS_$$(name)), \
|
||||
LIBS := $$($1_LIBS_$$(name)), \
|
||||
LIBS := $$($1_LIBS) $$($1_LIBS_$$(name)), \
|
||||
DEFAULT_VERSIONINFO_RESOURCE := false, \
|
||||
OPTIMIZATION := $$(if $$($1_OPTIMIZATION_$$(name)), $$($1_OPTIMIZATION_$$(name)), LOW), \
|
||||
COPY_DEBUG_SYMBOLS := $$($1_COPY_DEBUG_SYMBOLS), \
|
||||
|
||||
@ -41,8 +41,8 @@ include $(TOPDIR)/make/ToolsJdk.gmk
|
||||
define SetupVersionProperties
|
||||
$(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/$$(strip $2):
|
||||
$$(call MakeTargetDir)
|
||||
$(PRINTF) "jdk=$(VERSION_NUMBER)\nfull=$(VERSION_STRING)\nrelease=$(VERSION_SHORT)\n" \
|
||||
> $$@
|
||||
$(PRINTF) "jdk=%s\nfull=%s\nrelease=%s\n" \
|
||||
$(VERSION_NUMBER) $(VERSION_STRING) $(VERSION_SHORT) > $$@
|
||||
|
||||
$$(strip $1) += $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/$$(strip $2)
|
||||
endef
|
||||
|
||||
@ -203,6 +203,10 @@ define CreateDynamicLibraryOrExecutable
|
||||
$(CODESIGN) -f -s $$($1_CODESIGN_OPTS) --entitlements \
|
||||
$$(call GetEntitlementsFile, $$@) $$@)
|
||||
endif
|
||||
ifneq ($(SIGNING_HOOK), )
|
||||
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_call_signing_hook, \
|
||||
$(SIGNING_HOOK) $$($1_TARGET))
|
||||
endif
|
||||
|
||||
# This is for IDE integration purposes only, and is not normally generated
|
||||
$1_LDFLAGS_FILE := $$(MAKESUPPORT_OUTPUTDIR)/compile-commands/$$($1_UNIQUE_NAME)-ldflags.txt
|
||||
|
||||
@ -117,6 +117,10 @@ define CreateDynamicLibraryOrExecutableMicrosoft
|
||||
-identity:"$$($1_NAME).exe, version=$$($1_MANIFEST_VERSION)" \
|
||||
-outputresource:$$@;#1
|
||||
endif
|
||||
ifneq ($(SIGNING_HOOK), )
|
||||
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_call_signing_hook, \
|
||||
$(SIGNING_HOOK) $$($1_TARGET))
|
||||
endif
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2020, 2025, 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
|
||||
@ -26,24 +26,24 @@
|
||||
# Versions and download locations for dependencies used by GitHub Actions (GHA)
|
||||
|
||||
GTEST_VERSION=1.14.0
|
||||
JTREG_VERSION=7.4+1
|
||||
JTREG_VERSION=7.5.1+1
|
||||
|
||||
LINUX_X64_BOOT_JDK_EXT=tar.gz
|
||||
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk23/3c5b90190c68498b986a97f276efd28a/37/GPL/openjdk-23_linux-x64_bin.tar.gz
|
||||
LINUX_X64_BOOT_JDK_SHA256=08fea92724127c6fa0f2e5ea0b07ff4951ccb1e2f22db3c21eebbd7347152a67
|
||||
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-x64_bin.tar.gz
|
||||
LINUX_X64_BOOT_JDK_SHA256=88b090fa80c6c1d084ec9a755233967458788e2c0777ae2e172230c5c692d7ef
|
||||
|
||||
ALPINE_LINUX_X64_BOOT_JDK_EXT=tar.gz
|
||||
ALPINE_LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin23-binaries/releases/download/jdk-23%2B37/OpenJDK23U-jdk_x64_alpine-linux_hotspot_23_37.tar.gz
|
||||
ALPINE_LINUX_X64_BOOT_JDK_SHA256=bff4c78f30d8d173e622bf2f40c36113df47337fc6d1ee5105ed2459841165aa
|
||||
ALPINE_LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin24-binaries/releases/download/jdk-24%2B36/OpenJDK24U-jdk_x64_alpine-linux_hotspot_24_36.tar.gz
|
||||
ALPINE_LINUX_X64_BOOT_JDK_SHA256=a642608f0da78344ee6812fb1490b8bc1d7ad5a18064c70994d6f330568c51cb
|
||||
|
||||
MACOS_AARCH64_BOOT_JDK_EXT=tar.gz
|
||||
MACOS_AARCH64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk23/3c5b90190c68498b986a97f276efd28a/37/GPL/openjdk-23_macos-aarch64_bin.tar.gz
|
||||
MACOS_AARCH64_BOOT_JDK_SHA256=9527bf080a74ae6dca51df413aa826f0c011c6048885e4c8ad112172be8815f3
|
||||
MACOS_AARCH64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-aarch64_bin.tar.gz
|
||||
MACOS_AARCH64_BOOT_JDK_SHA256=f7133238a12714a62c5ad2bd4da6741130be1a82512065da9ca23dee26b2d3d3
|
||||
|
||||
MACOS_X64_BOOT_JDK_EXT=tar.gz
|
||||
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk23/3c5b90190c68498b986a97f276efd28a/37/GPL/openjdk-23_macos-x64_bin.tar.gz
|
||||
MACOS_X64_BOOT_JDK_SHA256=5c3a909fd2079d0e376dd43c85c4f7d02d08914866f196480bd47784b2a0121e
|
||||
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-x64_bin.tar.gz
|
||||
MACOS_X64_BOOT_JDK_SHA256=6bbfb1d01741cbe55ab90299cb91464b695de9a3ace85c15131aa2f50292f321
|
||||
|
||||
WINDOWS_X64_BOOT_JDK_EXT=zip
|
||||
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk23/3c5b90190c68498b986a97f276efd28a/37/GPL/openjdk-23_windows-x64_bin.zip
|
||||
WINDOWS_X64_BOOT_JDK_SHA256=cba5013874ba50cae543c86fe6423453816c77281e2751a8a9a633d966f1dc04
|
||||
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_windows-x64_bin.zip
|
||||
WINDOWS_X64_BOOT_JDK_SHA256=11d1d9f6ac272d5361c8a0bef01894364081c7fb1a6914c2ad2fc312ae83d63b
|
||||
|
||||
@ -207,7 +207,8 @@ var getJibProfiles = function (input) {
|
||||
// Exclude list to use when Jib creates a source bundle
|
||||
data.src_bundle_excludes = [
|
||||
"build", "{,**/}webrev*", "{,**/}.hg", "{,**/}JTwork*", "{,**/}JTreport*",
|
||||
"{,**/}.git"
|
||||
"{,**/}.git",
|
||||
"{,**/}core.[0-9]*"
|
||||
];
|
||||
// Include list to use when creating a minimal jib source bundle which
|
||||
// contains just the jib configuration files.
|
||||
@ -240,10 +241,10 @@ var getJibProfilesCommon = function (input, data) {
|
||||
|
||||
// List of the main profile names used for iteration
|
||||
common.main_profile_names = [
|
||||
"linux-x64", "linux-x86", "macosx-x64", "macosx-aarch64",
|
||||
"macosx-x64", "macosx-aarch64",
|
||||
"windows-x64", "windows-aarch64",
|
||||
"linux-aarch64", "linux-arm32", "linux-ppc64le", "linux-s390x",
|
||||
"linux-riscv64"
|
||||
"linux-x64", "linux-aarch64",
|
||||
"linux-arm32", "linux-ppc64le", "linux-s390x", "linux-riscv64"
|
||||
];
|
||||
|
||||
// These are the base settings for all the main build profiles.
|
||||
@ -282,9 +283,6 @@ var getJibProfilesCommon = function (input, data) {
|
||||
labels: "open"
|
||||
};
|
||||
|
||||
common.configure_args_64bit = ["--with-target-bits=64"];
|
||||
common.configure_args_32bit = ["--with-target-bits=32"];
|
||||
|
||||
/**
|
||||
* Define common artifacts template for all main profiles
|
||||
* @param o - Object containing data for artifacts
|
||||
@ -390,8 +388,8 @@ var getJibProfilesCommon = function (input, data) {
|
||||
};
|
||||
};
|
||||
|
||||
common.boot_jdk_version = "23";
|
||||
common.boot_jdk_build_number = "37";
|
||||
common.boot_jdk_version = "24";
|
||||
common.boot_jdk_build_number = "36";
|
||||
common.boot_jdk_home = input.get("boot_jdk", "install_path") + "/jdk-"
|
||||
+ common.boot_jdk_version
|
||||
+ (input.build_os == "macosx" ? ".jdk/Contents/Home" : "");
|
||||
@ -411,58 +409,34 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
|
||||
// Main SE profiles
|
||||
var profiles = {
|
||||
|
||||
"linux-x64": {
|
||||
target_os: "linux",
|
||||
target_cpu: "x64",
|
||||
dependencies: ["devkit", "gtest", "build_devkit", "graphviz", "pandoc", "tidy"],
|
||||
configure_args: concat(
|
||||
(input.build_cpu == "x64" ? common.configure_args_64bit
|
||||
: "--openjdk-target=x86_64-linux-gnu"),
|
||||
"--with-zlib=system", "--disable-dtrace",
|
||||
(isWsl(input) ? [ "--host=x86_64-unknown-linux-gnu",
|
||||
"--build=x86_64-unknown-linux-gnu" ] : [])),
|
||||
},
|
||||
|
||||
"linux-x86": {
|
||||
target_os: "linux",
|
||||
target_cpu: "x86",
|
||||
build_cpu: "x64",
|
||||
dependencies: ["devkit", "gtest", "libffi"],
|
||||
configure_args: concat(common.configure_args_32bit, [
|
||||
"--with-jvm-variants=minimal,server",
|
||||
"--with-zlib=system",
|
||||
"--with-libffi=" + input.get("libffi", "home_path"),
|
||||
"--enable-libffi-bundling",
|
||||
"--enable-fallback-linker"
|
||||
])
|
||||
},
|
||||
|
||||
"macosx-x64": {
|
||||
target_os: "macosx",
|
||||
target_cpu: "x64",
|
||||
dependencies: ["devkit", "gtest", "graphviz", "pandoc", "tidy"],
|
||||
configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
|
||||
configure_args: [
|
||||
"--with-zlib=system",
|
||||
"--with-macosx-version-max=11.00.00",
|
||||
"--enable-compatible-cds-alignment",
|
||||
// Use system SetFile instead of the one in the devkit as the
|
||||
// devkit one may not work on Catalina.
|
||||
"SETFILE=/usr/bin/SetFile"),
|
||||
"SETFILE=/usr/bin/SetFile"
|
||||
],
|
||||
},
|
||||
|
||||
"macosx-aarch64": {
|
||||
target_os: "macosx",
|
||||
target_cpu: "aarch64",
|
||||
dependencies: ["devkit", "gtest", "graphviz", "pandoc", "tidy"],
|
||||
configure_args: concat(common.configure_args_64bit,
|
||||
"--with-macosx-version-max=11.00.00"),
|
||||
configure_args: [
|
||||
"--with-macosx-version-max=11.00.00"
|
||||
],
|
||||
},
|
||||
|
||||
"windows-x64": {
|
||||
target_os: "windows",
|
||||
target_cpu: "x64",
|
||||
dependencies: ["devkit", "gtest", "pandoc"],
|
||||
configure_args: concat(common.configure_args_64bit),
|
||||
configure_args: [],
|
||||
},
|
||||
|
||||
"windows-aarch64": {
|
||||
@ -474,7 +448,19 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
],
|
||||
},
|
||||
|
||||
"linux-aarch64": {
|
||||
"linux-x64": {
|
||||
target_os: "linux",
|
||||
target_cpu: "x64",
|
||||
dependencies: ["devkit", "gtest", "build_devkit", "graphviz", "pandoc", "tidy"],
|
||||
configure_args: concat(
|
||||
"--with-zlib=system",
|
||||
"--disable-dtrace",
|
||||
(cross_compiling ? [ "--openjdk-target=x86_64-linux-gnu" ] : []),
|
||||
(isWsl(input) ? [ "--host=x86_64-unknown-linux-gnu",
|
||||
"--build=x86_64-unknown-linux-gnu" ] : [])),
|
||||
},
|
||||
|
||||
"linux-aarch64": {
|
||||
target_os: "linux",
|
||||
target_cpu: "aarch64",
|
||||
dependencies: ["devkit", "gtest", "build_devkit", "graphviz", "pandoc", "tidy"],
|
||||
@ -491,8 +477,10 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
build_cpu: "x64",
|
||||
dependencies: ["devkit", "gtest", "build_devkit"],
|
||||
configure_args: [
|
||||
"--openjdk-target=arm-linux-gnueabihf", "--with-freetype=bundled",
|
||||
"--with-abi-profile=arm-vfp-hflt", "--disable-warnings-as-errors"
|
||||
"--openjdk-target=arm-linux-gnueabihf",
|
||||
"--with-freetype=bundled",
|
||||
"--with-abi-profile=arm-vfp-hflt",
|
||||
"--disable-warnings-as-errors"
|
||||
],
|
||||
},
|
||||
|
||||
@ -502,7 +490,8 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
build_cpu: "x64",
|
||||
dependencies: ["devkit", "gtest", "build_devkit"],
|
||||
configure_args: [
|
||||
"--openjdk-target=ppc64le-linux-gnu", "--with-freetype=bundled",
|
||||
"--openjdk-target=ppc64le-linux-gnu",
|
||||
"--with-freetype=bundled",
|
||||
"--disable-warnings-as-errors"
|
||||
],
|
||||
},
|
||||
@ -513,7 +502,8 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
build_cpu: "x64",
|
||||
dependencies: ["devkit", "gtest", "build_devkit"],
|
||||
configure_args: [
|
||||
"--openjdk-target=s390x-linux-gnu", "--with-freetype=bundled",
|
||||
"--openjdk-target=s390x-linux-gnu",
|
||||
"--with-freetype=bundled",
|
||||
"--disable-warnings-as-errors"
|
||||
],
|
||||
},
|
||||
@ -524,7 +514,8 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
build_cpu: "x64",
|
||||
dependencies: ["devkit", "gtest", "build_devkit"],
|
||||
configure_args: [
|
||||
"--openjdk-target=riscv64-linux-gnu", "--with-freetype=bundled",
|
||||
"--openjdk-target=riscv64-linux-gnu",
|
||||
"--with-freetype=bundled",
|
||||
"--disable-warnings-as-errors"
|
||||
],
|
||||
},
|
||||
@ -585,24 +576,24 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
target_os: "linux",
|
||||
target_cpu: "x64",
|
||||
dependencies: ["devkit", "gtest", "libffi"],
|
||||
configure_args: concat(common.configure_args_64bit, [
|
||||
configure_args: [
|
||||
"--with-zlib=system",
|
||||
"--with-jvm-variants=zero",
|
||||
"--with-libffi=" + input.get("libffi", "home_path"),
|
||||
"--enable-libffi-bundling",
|
||||
])
|
||||
]
|
||||
},
|
||||
|
||||
"linux-aarch64-zero": {
|
||||
target_os: "linux",
|
||||
target_cpu: "aarch64",
|
||||
dependencies: ["devkit", "gtest", "libffi"],
|
||||
configure_args: concat(common.configure_args_64bit, [
|
||||
configure_args: [
|
||||
"--with-zlib=system",
|
||||
"--with-jvm-variants=zero",
|
||||
"--with-libffi=" + input.get("libffi", "home_path"),
|
||||
"--enable-libffi-bundling"
|
||||
])
|
||||
]
|
||||
},
|
||||
|
||||
"linux-x86-zero": {
|
||||
@ -610,12 +601,13 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
target_cpu: "x86",
|
||||
build_cpu: "x64",
|
||||
dependencies: ["devkit", "gtest", "libffi"],
|
||||
configure_args: concat(common.configure_args_32bit, [
|
||||
configure_args: [
|
||||
"--with-target-bits=32",
|
||||
"--with-zlib=system",
|
||||
"--with-jvm-variants=zero",
|
||||
"--with-libffi=" + input.get("libffi", "home_path"),
|
||||
"--enable-libffi-bundling"
|
||||
])
|
||||
]
|
||||
}
|
||||
}
|
||||
profiles = concatObjects(profiles, zeroProfiles);
|
||||
@ -634,8 +626,10 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
target_os: "linux",
|
||||
target_cpu: "x64",
|
||||
dependencies: ["devkit", "gtest"],
|
||||
configure_args: concat(common.configure_args_64bit,
|
||||
"--with-zlib=system", "--disable-precompiled-headers"),
|
||||
configure_args: [
|
||||
"--with-zlib=system",
|
||||
"--disable-precompiled-headers"
|
||||
],
|
||||
},
|
||||
};
|
||||
profiles = concatObjects(profiles, noPchProfiles);
|
||||
@ -692,9 +686,6 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
"linux-x64": {
|
||||
platform: "linux-x64",
|
||||
},
|
||||
"linux-x86": {
|
||||
platform: "linux-x86",
|
||||
},
|
||||
"macosx-x64": {
|
||||
platform: "macos-x64",
|
||||
jdk_subdir: "jdk-" + data.version + ".jdk/Contents/Home",
|
||||
@ -1087,14 +1078,14 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
var getJibProfilesDependencies = function (input, common) {
|
||||
|
||||
var devkit_platform_revisions = {
|
||||
linux_x64: "gcc13.2.0-OL6.4+1.0",
|
||||
macosx: "Xcode14.3.1+1.0",
|
||||
windows_x64: "VS2022-17.6.5+1.0",
|
||||
linux_aarch64: "gcc13.2.0-OL7.6+1.0",
|
||||
linux_x64: "gcc14.2.0-OL6.4+1.0",
|
||||
macosx: "Xcode15.4+1.0",
|
||||
windows_x64: "VS2022-17.13.2+1.0",
|
||||
linux_aarch64: "gcc14.2.0-OL7.6+1.0",
|
||||
linux_arm: "gcc8.2.0-Fedora27+1.0",
|
||||
linux_ppc64le: "gcc13.2.0-Fedora_41+1.0",
|
||||
linux_s390x: "gcc13.2.0-Fedora_41+1.0",
|
||||
linux_riscv64: "gcc13.2.0-Fedora_41+1.0"
|
||||
linux_ppc64le: "gcc14.2.0-Fedora_41+1.0",
|
||||
linux_s390x: "gcc14.2.0-Fedora_41+1.0",
|
||||
linux_riscv64: "gcc14.2.0-Fedora_41+1.0"
|
||||
};
|
||||
|
||||
var devkit_platform = (input.target_cpu == "x86"
|
||||
@ -1186,9 +1177,9 @@ var getJibProfilesDependencies = function (input, common) {
|
||||
jtreg: {
|
||||
server: "jpg",
|
||||
product: "jtreg",
|
||||
version: "7.4",
|
||||
version: "7.5.1",
|
||||
build_number: "1",
|
||||
file: "bundles/jtreg-7.4+1.zip",
|
||||
file: "bundles/jtreg-7.5.1+1.zip",
|
||||
environment_name: "JT_HOME",
|
||||
environment_path: input.get("jtreg", "home_path") + "/bin",
|
||||
configure_args: "--with-jtreg=" + input.get("jtreg", "home_path"),
|
||||
@ -1236,7 +1227,7 @@ var getJibProfilesDependencies = function (input, common) {
|
||||
organization: common.organization,
|
||||
ext: "tar.gz",
|
||||
revision: "9.0.0+1.0",
|
||||
module: "graphviz-" + input.target_platform,
|
||||
module: "graphviz-" + input.build_platform,
|
||||
configure_args: "DOT=" + input.get("graphviz", "install_path") + "/dot",
|
||||
environment_path: input.get("graphviz", "install_path")
|
||||
},
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2025, 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
|
||||
@ -37,6 +37,6 @@ DEFAULT_VERSION_DATE=2025-09-16
|
||||
DEFAULT_VERSION_CLASSFILE_MAJOR=69 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
|
||||
DEFAULT_VERSION_CLASSFILE_MINOR=0
|
||||
DEFAULT_VERSION_DOCS_API_SINCE=11
|
||||
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="23 24 25"
|
||||
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="24 25"
|
||||
DEFAULT_JDK_SOURCE_TARGET_VERSION=25
|
||||
DEFAULT_PROMOTED_VERSION_PRE=ea
|
||||
|
||||
@ -2,7 +2,7 @@ UNICODE LICENSE V3
|
||||
|
||||
COPYRIGHT AND PERMISSION NOTICE
|
||||
|
||||
Copyright © 1991-2024 Unicode, Inc.
|
||||
Copyright © 2019-2025 Unicode, Inc.
|
||||
|
||||
NOTICE TO USER: Carefully read the following legal agreement. BY
|
||||
DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
|
||||
|
||||
@ -10,14 +10,14 @@ For terms of use, see http://www.unicode.org/copyright.html
|
||||
<version number="$Revision$"/>
|
||||
<keyword>
|
||||
<key name="co" description="Collation type key" alias="collation">
|
||||
<type name="big5han" description="Pinyin ordering for Latin, big5 charset ordering for CJK characters (used in Chinese)"/>
|
||||
<type name="big5han" description="Pinyin ordering for Latin, big5 charset ordering for CJK characters (used in Chinese)" deprecated="true"/>
|
||||
<type name="compat" description="A previous version of the ordering, for compatibility" since="26"/>
|
||||
<type name="dict" description="Dictionary style ordering (such as in Sinhala)" alias="dictionary"/>
|
||||
<type name="direct" description="Binary code point order (used in Hindi)" deprecated="true"/>
|
||||
<type name="ducet" description="The default Unicode collation element table order" since="2.0.1"/>
|
||||
<type name="emoji" description="Recommended ordering for emoji characters" since="27"/>
|
||||
<type name="eor" description="European ordering rules" since="24"/>
|
||||
<type name="gb2312" description="Pinyin ordering for Latin, gb2312han charset ordering for CJK characters (used in Chinese)" alias="gb2312han"/>
|
||||
<type name="gb2312" description="Pinyin ordering for Latin, gb2312han charset ordering for CJK characters (used in Chinese)" alias="gb2312han" deprecated="true"/>
|
||||
<type name="phonebk" description="Phonebook style ordering (such as in German)" alias="phonebook"/>
|
||||
<type name="phonetic" description="Phonetic ordering (sorting based on pronunciation)"/>
|
||||
<type name="pinyin" description="Pinyin ordering for Latin and for CJK characters (used in Chinese)"/>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright © 1991-2024 Unicode, Inc.
|
||||
Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
@ -42,7 +42,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
<!ATTLIST version number CDATA #REQUIRED >
|
||||
<!--@MATCH:regex/\$Revision.*\$-->
|
||||
<!--@METADATA-->
|
||||
<!ATTLIST version cldrVersion CDATA #FIXED "46" >
|
||||
<!ATTLIST version cldrVersion CDATA #FIXED "47" >
|
||||
<!--@MATCH:any-->
|
||||
<!--@VALUE-->
|
||||
<!ATTLIST version draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
|
||||
@ -61,7 +61,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
|
||||
<!ELEMENT language ( #PCDATA ) >
|
||||
<!ATTLIST language type NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:validity/locale-->
|
||||
<!--@MATCH:validity/locale-for-names-->
|
||||
<!ATTLIST language alt NMTOKENS #IMPLIED >
|
||||
<!--@MATCH:literal/long, secondary, short, variant, menu, official-->
|
||||
<!ATTLIST language draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
|
||||
@ -95,7 +95,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
|
||||
<!ELEMENT variant ( #PCDATA ) >
|
||||
<!ATTLIST variant type NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:validity/variant-->
|
||||
<!--@MATCH:or/validity/variant||literal/AREVELA, AREVMDA, LAUKIKA, VAIDIKA-->
|
||||
<!ATTLIST variant alt NMTOKENS #IMPLIED >
|
||||
<!--@MATCH:literal/secondary, variant-->
|
||||
<!ATTLIST variant draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
|
||||
|
||||
@ -5,7 +5,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
|
||||
-->
|
||||
|
||||
<!--
|
||||
Copyright © 1991-2024 Unicode, Inc.
|
||||
Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
@ -128,10 +128,10 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
|
||||
<xs:element name="version">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="number" use="required"/>
|
||||
<xs:attribute default="46" name="cldrVersion">
|
||||
<xs:attribute default="47" name="cldrVersion">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="46"/>
|
||||
<xs:enumeration value="47"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright © 1991-2024 Unicode, Inc.
|
||||
Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
@ -12,7 +12,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
<!ATTLIST version number CDATA #REQUIRED >
|
||||
<!--@MATCH:regex/\$Revision.*\$-->
|
||||
<!--@METADATA-->
|
||||
<!ATTLIST version cldrVersion CDATA #FIXED "46" >
|
||||
<!ATTLIST version cldrVersion CDATA #FIXED "47" >
|
||||
<!--@MATCH:version-->
|
||||
<!--@VALUE-->
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
|
||||
-->
|
||||
|
||||
<!--
|
||||
Copyright © 1991-2024 Unicode, Inc.
|
||||
Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
@ -24,10 +24,10 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
|
||||
<xs:element name="version">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="number" use="required"/>
|
||||
<xs:attribute default="46" name="cldrVersion">
|
||||
<xs:attribute default="47" name="cldrVersion">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="46"/>
|
||||
<xs:enumeration value="47"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
<!--
|
||||
Copyright © 1991-2024 Unicode, Inc.
|
||||
Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
-->
|
||||
|
||||
<!ELEMENT supplementalData ( version, generation?, cldrVersion?, currencyData?, territoryContainment?, subdivisionContainment?, languageData?, territoryInfo?, postalCodeData?, calendarData?, calendarPreferenceData?, weekData?, timeData?, measurementData?, unitIdComponents?, unitPrefixes?, unitConstants*, unitQuantities*, convertUnits*, unitPreferenceData?, timezoneData?, characters?, transforms?, metadata?, codeMappings?, parentLocales*, personNamesDefaults?, likelySubtags?, metazoneInfo?, plurals?, telephoneCodeData?, numberingSystems?, bcp47KeywordMappings?, gender?, references?, languageMatching?, dayPeriodRuleSet*, metaZones?, primaryZones?, windowsZones?, coverageLevels?, idValidity?, rgScope?, languageGroups?, grammaticalData? ) >
|
||||
<!ELEMENT supplementalData ( version, generation?, cldrVersion?, currencyData?, territoryContainment?, subdivisionContainment?, languageData?, scriptData?, territoryInfo?, postalCodeData?, calendarData?, calendarPreferenceData?, weekData?, timeData?, measurementData?, unitIdComponents?, unitPrefixes?, unitConstants*, unitQuantities*, convertUnits*, unitPreferenceData?, timezoneData?, characters?, transforms?, metadata?, codeMappings?, parentLocales*, personNamesDefaults?, likelySubtags?, metazoneInfo?, plurals?, telephoneCodeData?, numberingSystems?, bcp47KeywordMappings?, gender?, references?, languageMatching?, dayPeriodRuleSet*, metaZones?, primaryZones?, windowsZones?, coverageLevels?, idValidity?, rgScope?, languageGroups?, grammaticalData? ) >
|
||||
|
||||
<!ELEMENT version EMPTY >
|
||||
<!--@METADATA-->
|
||||
<!ATTLIST version number CDATA #REQUIRED >
|
||||
<!--@MATCH:any-->
|
||||
<!--@METADATA-->
|
||||
<!ATTLIST version cldrVersion CDATA #FIXED "46" >
|
||||
<!ATTLIST version cldrVersion CDATA #FIXED "47" >
|
||||
<!--@MATCH:version-->
|
||||
<!--@VALUE-->
|
||||
<!ATTLIST version unicodeVersion CDATA #FIXED "16.0.0" >
|
||||
@ -65,12 +65,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
|
||||
<!ELEMENT region ( currency* ) >
|
||||
<!ATTLIST region iso3166 NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:validity/region-->
|
||||
<!--@MATCH:validity/region/all-->
|
||||
<!ATTLIST region draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
|
||||
<!--@METADATA-->
|
||||
<!--@DEPRECATED-->
|
||||
|
||||
<!ELEMENT currency ( alternate* ) >
|
||||
<!--@ORDERED-->
|
||||
<!ATTLIST currency before NMTOKEN #IMPLIED >
|
||||
<!-- use from and to instead. -->
|
||||
<!--@VALUE-->
|
||||
@ -113,7 +114,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
<!ATTLIST group type NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:validity/region-->
|
||||
<!ATTLIST group contains NMTOKENS #IMPLIED >
|
||||
<!--@MATCH:set/validity/region-->
|
||||
<!--@MATCH:set/validity/region/all-->
|
||||
<!--@VALUE-->
|
||||
<!ATTLIST group grouping (true | false) #IMPLIED >
|
||||
<!--@VALUE-->
|
||||
@ -156,6 +157,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
<!ATTLIST language alt NMTOKENS #IMPLIED >
|
||||
<!--@MATCH:literal/secondary, variant-->
|
||||
|
||||
<!ELEMENT scriptData ( scriptVariant* ) >
|
||||
|
||||
<!ELEMENT scriptVariant EMPTY >
|
||||
<!ATTLIST scriptVariant type NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:literal/compound, visual, subset-->
|
||||
<!ATTLIST scriptVariant id NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:validity/script-->
|
||||
<!ATTLIST scriptVariant base NMTOKENS #REQUIRED >
|
||||
<!--@MATCH:set/validity/script-->
|
||||
<!--@VALUE-->
|
||||
|
||||
<!ELEMENT territoryInfo ( territory* ) >
|
||||
<!ATTLIST territoryInfo draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
|
||||
<!--@METADATA-->
|
||||
@ -284,7 +296,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
<!ELEMENT minDays EMPTY >
|
||||
<!ATTLIST minDays count (1 | 2 | 3 | 4 | 5 | 6 | 7) #REQUIRED >
|
||||
<!ATTLIST minDays territories NMTOKENS #REQUIRED >
|
||||
<!--@MATCH:set/validity/region-->
|
||||
<!--@MATCH:set/validity/region/all-->
|
||||
<!--@VALUE-->
|
||||
<!ATTLIST minDays draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
|
||||
<!--@METADATA-->
|
||||
@ -297,7 +309,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
<!ELEMENT firstDay EMPTY >
|
||||
<!ATTLIST firstDay day (sun | mon | tue | wed | thu | fri | sat) #REQUIRED >
|
||||
<!ATTLIST firstDay territories NMTOKENS #REQUIRED >
|
||||
<!--@MATCH:set/validity/region-->
|
||||
<!--@MATCH:set/validity/region/all-->
|
||||
<!--@VALUE-->
|
||||
<!ATTLIST firstDay draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
|
||||
<!--@METADATA-->
|
||||
@ -702,7 +714,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
|
||||
<!ELEMENT languageAlias EMPTY >
|
||||
<!ATTLIST languageAlias type NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:or/validity/locale||literal/aa_saaho, aar, abk, afr, aka, alb, amh, ara, arg, arm, art_lojban, asm, ava, ave, aym, aze, bak, bam, baq, bel, ben, bih, bis, bod, bos, bre, bul, bur, cat, ces, cha, che, chi, chu, chv, cor, cos, cre, cym, cze, dan, deu, div, dut, dzo, ell, eng, epo, est, eus, ewe, fao, fas, fij, fin, fra, fre, fry, ful, geo, ger, gla, gle, glg, glv, gre, grn, guj, hat, hau, hbs, heb, her, hin, hmo, hrv, hun, hye, i_ami, i_bnn, i_hak, i_klingon, i_lux, i_navajo, i_pwn, i_tao, i_tay, i_tsu, ibo, ice, ido, iii, iku, ile, ina, ind, ipk, isl, ita, jav, jpn, kal, kan, kas, kat, kau, kaz, khm, kik, kin, kir, kom, kon, kor, kua, kur, lao, lat, lav, lim, lin, lit, ltz, lub, lug, mac, mah, mal, mao, mar, may, mkd, mlg, mlt, mol, mon, mri, msa, mya, nau, nav, nbl, nde, ndo, nep, nld, nno, no_bokmal, no_nynorsk, no_bok, no_nyn, nob, nor, nya, oci, oji, ori, orm, oss, pan, per, pli, pol, por, pus, que, roh, ron, rum, run, rus, sag, san, scc, scr, sgn_BE_FR, sgn_BE_NL, sgn_CH_DE, sin, slk, slo, slv, sme, smo, sna, snd, som, sot, spa, sqi, srd, srp, ssw, sun, swa, swe, tah, tam, tat, tel, tgk, tgl, tha, tib, tir, ton, tsn, tso, tuk, tur, twi, uig, ukr, urd, uzb, ven, vie, vol, wel, wln, wol, xho, yid, yor, zh_guoyu, zh_hakka, zh_min_nan, zh_xiang, zha, zho, zul, cel_gaulish, i_default, i_enochian, i_mingo, und_aaland, und_bokmal, und_hakka, und_lojban, und_nynorsk, und_saaho, und_xiang, zh_min, en_GB_oed, zh_cmn, zh_cmn_Hans, zh_cmn_Hant, zh_gan, zh_wuu, zh_yue-->
|
||||
<!--@MATCH:or/validity/bcp47-wellformed||literal/aa_saaho, art_lojban, cel_gaulish, en_GB_oed, hy_arevmda, i_ami, i_bnn, i_default, i_enochian, i_hak, i_klingon, i_lux, i_mingo, i_navajo, i_pwn, i_tao, i_tay, i_tsu, no_bok, no_bokmal, no_nyn, no_nynorsk, sgn_BE_FR, sgn_BE_NL, sgn_BR, sgn_CH_DE, sgn_CO, sgn_DE, sgn_DK, sgn_ES, sgn_FR, sgn_GB, sgn_GR, sgn_IE, sgn_IT, sgn_JP, sgn_MX, sgn_NI, sgn_NL, sgn_NO, sgn_PT, sgn_SE, sgn_US, sgn_ZA, und_aaland, und_arevela, und_arevmda, und_bokmal, und_hakka, und_hepburn_heploc, und_lojban, und_nynorsk, und_saaho, und_xiang, zh_cmn, zh_cmn_Hans, zh_cmn_Hant, zh_gan, zh_guoyu, zh_hakka, zh_min, zh_min_nan, zh_wuu, zh_xiang, zh_yue-->
|
||||
<!ATTLIST languageAlias replacement NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:or/validity/locale||literal/en_x_i_default, nan_x_zh_min, see_x_i_mingo, und_x_i_enochian, xtg_x_cel_gaulish-->
|
||||
<!--@VALUE-->
|
||||
@ -711,7 +723,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
|
||||
<!ELEMENT scriptAlias EMPTY >
|
||||
<!ATTLIST scriptAlias type NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:validity/script-->
|
||||
<!--@MATCH:validity/script/all-->
|
||||
<!ATTLIST scriptAlias replacement NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:validity/script-->
|
||||
<!--@VALUE-->
|
||||
@ -720,9 +732,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
|
||||
<!ELEMENT territoryAlias EMPTY >
|
||||
<!ATTLIST territoryAlias type NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:set/or/validity/region||regex/[0-9]{3}|[A-Z]{3}||literal/CT, DY, FQ, HV, JT, MI, NH, NQ, PC, PU, PZ, RH, UK, VD, WK-->
|
||||
<!--@MATCH:set/or/validity/region/all||regex/[0-9]{3}|[A-Z]{3}||literal/CT, DY, FQ, HV, JT, MI, NH, NQ, PC, PU, PZ, RH, UK, VD, WK-->
|
||||
<!ATTLIST territoryAlias replacement NMTOKENS #REQUIRED >
|
||||
<!--@MATCH:set/validity/region-->
|
||||
<!--@MATCH:set/validity/region/all-->
|
||||
<!--@VALUE-->
|
||||
<!ATTLIST territoryAlias reason (deprecated | overlong) #IMPLIED >
|
||||
<!--@VALUE-->
|
||||
@ -738,7 +750,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
|
||||
<!ELEMENT variantAlias EMPTY >
|
||||
<!ATTLIST variantAlias type NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:or/validity/variant||literal/aaland, polytoni-->
|
||||
<!--@MATCH:or/validity/variant/all||literal/aaland, polytoni-->
|
||||
<!ATTLIST variantAlias replacement NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:or/validity/variant||validity/region||literal/hy, hyw-->
|
||||
<!--@VALUE-->
|
||||
@ -914,7 +926,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
|
||||
<!ELEMENT territoryCodes EMPTY >
|
||||
<!ATTLIST territoryCodes type NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:validity/region-->
|
||||
<!--@MATCH:validity/region/all-->
|
||||
<!ATTLIST territoryCodes numeric NMTOKEN #IMPLIED >
|
||||
<!--@MATCH:range/1~999-->
|
||||
<!--@VALUE-->
|
||||
@ -962,9 +974,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
|
||||
<!ELEMENT likelySubtag EMPTY >
|
||||
<!ATTLIST likelySubtag from NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:validity/locale-->
|
||||
<!--@MATCH:validity/locale-for-likely-->
|
||||
<!ATTLIST likelySubtag to NMTOKEN #REQUIRED >
|
||||
<!--@MATCH:validity/locale-->
|
||||
<!--@MATCH:validity/locale-for-likely-->
|
||||
<!--@VALUE-->
|
||||
<!ATTLIST likelySubtag origin NMTOKENS #IMPLIED >
|
||||
<!--@MATCH:set/literal/sil1, wikidata, special-->
|
||||
@ -996,7 +1008,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
|
||||
|
||||
<!ELEMENT pluralRules ( pluralRule* ) >
|
||||
<!ATTLIST pluralRules locales NMTOKENS #REQUIRED >
|
||||
<!--@MATCH:set/validity/locale-->
|
||||
<!--@MATCH:set/or/validity/locale-for-likely||literal/sh-->
|
||||
<!ATTLIST pluralRules draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
|
||||
<!--@METADATA-->
|
||||
<!--@DEPRECATED-->
|
||||
|
||||
@ -5,7 +5,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
|
||||
-->
|
||||
|
||||
<!--
|
||||
Copyright © 1991-2024 Unicode, Inc.
|
||||
Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
@ -20,6 +20,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
|
||||
<xs:element minOccurs="0" ref="territoryContainment"/>
|
||||
<xs:element minOccurs="0" ref="subdivisionContainment"/>
|
||||
<xs:element minOccurs="0" ref="languageData"/>
|
||||
<xs:element minOccurs="0" ref="scriptData"/>
|
||||
<xs:element minOccurs="0" ref="territoryInfo"/>
|
||||
<xs:element minOccurs="0" ref="postalCodeData"/>
|
||||
<xs:element minOccurs="0" ref="calendarData"/>
|
||||
@ -64,10 +65,10 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
|
||||
<xs:element name="version">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="number" use="required"/>
|
||||
<xs:attribute default="46" name="cldrVersion">
|
||||
<xs:attribute default="47" name="cldrVersion">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="46"/>
|
||||
<xs:enumeration value="47"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
@ -241,6 +242,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
|
||||
<xs:attribute name="references"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<!-- use from and to instead. -->
|
||||
|
||||
|
||||
@ -372,6 +374,24 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
|
||||
|
||||
|
||||
|
||||
<xs:element name="scriptData">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" ref="scriptVariant"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="scriptVariant">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="type" type="xs:NMTOKEN" use="required"/>
|
||||
<xs:attribute name="id" type="xs:NMTOKEN" use="required"/>
|
||||
<xs:attribute name="base" type="xs:NMTOKENS" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
|
||||
|
||||
|
||||
<xs:element name="territoryInfo">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
@ -5132,6 +5132,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
|
||||
<currencyFormatLength>
|
||||
<currencyFormat type="standard">
|
||||
<pattern>#,##0.00 ¤</pattern>
|
||||
<pattern alt="noCurrency" draft="provisional">#,##0.00</pattern>
|
||||
</currencyFormat>
|
||||
</currencyFormatLength>
|
||||
<unitPattern count="zero">{0} {1}</unitPattern>
|
||||
@ -5145,6 +5146,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
|
||||
<currencyFormatLength>
|
||||
<currencyFormat type="standard">
|
||||
<pattern>#,##0.00 ¤;-#,##0.00 ¤</pattern>
|
||||
<pattern alt="noCurrency" draft="provisional">#,##0.00;-#,##0.00</pattern>
|
||||
</currencyFormat>
|
||||
<currencyFormat type="accounting">
|
||||
<pattern>#,##0.00¤;(#,##0.00¤)</pattern>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
|
||||
<!-- Copyright © 1991-2024 Unicode, Inc.
|
||||
<!-- Copyright © 1991-2025 Unicode, Inc.
|
||||
For terms of use, see http://www.unicode.org/copyright.html
|
||||
SPDX-License-Identifier: Unicode-3.0
|
||||
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user