1 Commits

Author SHA1 Message Date
DingliZhang e5d7497dd5 RISC-V: Add riscv_hwprobe syscall for zicboz block size
OpenJDK GHA Sanity Checks / Prepare the run (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-hs-nopch (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-hs-zero (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-hs-minimal (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-hs-optimized (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-static (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-static-libs (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-cross-compile (push) Has been cancelled
OpenJDK GHA Sanity Checks / alpine-linux-x64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / macos-x64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / macos-aarch64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / windows-x64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / windows-aarch64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / docs (push) Has been cancelled
2025-09-09 10:39:11 +08:00
9326 changed files with 234269 additions and 576792 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2023, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2023, 2024, 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
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2024, 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
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2023, 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
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2023, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2023, 2024, 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
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2024, 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
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2024, 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
+2 -4
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2024, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2024, 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
@@ -59,7 +59,7 @@ on:
jobs:
build-linux:
name: build
runs-on: ubuntu-24.04
runs-on: ubuntu-22.04
container:
image: alpine:3.20
@@ -96,8 +96,6 @@ jobs:
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
--with-zlib=system
--with-jmod-compress=zip-1
--with-external-symbols-in-bundles=none
--with-native-debug-symbols-level=1
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
echo "Dumping config.log:" &&
cat config.log &&
+2 -4
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2024, 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
@@ -48,7 +48,7 @@ on:
jobs:
build-cross-compile:
name: build
runs-on: ubuntu-24.04
runs-on: ubuntu-22.04
strategy:
fail-fast: false
@@ -179,8 +179,6 @@ jobs:
--openjdk-target=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}
--with-sysroot=sysroot
--with-jmod-compress=zip-1
--with-external-symbols-in-bundles=none
--with-native-debug-symbols-level=1
CC=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-gcc-${{ inputs.gcc-major-version }}
CXX=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-g++-${{ inputs.gcc-major-version }}
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
+5 -19
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2024, 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,7 @@ on:
jobs:
build-linux:
name: build
runs-on: ubuntu-24.04
runs-on: ubuntu-22.04
strategy:
fail-fast: false
@@ -115,21 +115,9 @@ jobs:
if [[ '${{ inputs.apt-architecture }}' != '' ]]; then
sudo dpkg --add-architecture ${{ inputs.apt-architecture }}
fi
sudo apt update
sudo apt install --only-upgrade apt
sudo apt install \
gcc-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} \
g++-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} \
libasound2-dev${{ steps.arch.outputs.suffix }} \
libcups2-dev${{ steps.arch.outputs.suffix }} \
libfontconfig1-dev${{ steps.arch.outputs.suffix }} \
libx11-dev${{ steps.arch.outputs.suffix }} \
libxext-dev${{ steps.arch.outputs.suffix }} \
libxrandr-dev${{ steps.arch.outputs.suffix }} \
libxrender-dev${{ steps.arch.outputs.suffix }} \
libxt-dev${{ steps.arch.outputs.suffix }} \
libxtst-dev${{ steps.arch.outputs.suffix }} \
${{ inputs.apt-extra-packages }}
sudo apt-get update
sudo apt-get install --only-upgrade apt
sudo apt-get install gcc-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} g++-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} libxrandr-dev${{ steps.arch.outputs.suffix }} libxtst-dev${{ steps.arch.outputs.suffix }} libcups2-dev${{ steps.arch.outputs.suffix }} libasound2-dev${{ steps.arch.outputs.suffix }} ${{ inputs.apt-extra-packages }}
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }}
- name: 'Configure'
@@ -143,8 +131,6 @@ jobs:
--with-gtest=${{ steps.gtest.outputs.path }}
--with-zlib=system
--with-jmod-compress=zip-1
--with-external-symbols-in-bundles=none
--with-native-debug-symbols-level=1
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
echo "Dumping config.log:" &&
cat config.log &&
+1 -3
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2024, 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
@@ -110,8 +110,6 @@ jobs:
--with-gtest=${{ steps.gtest.outputs.path }}
--with-zlib=system
--with-jmod-compress=zip-1
--with-external-symbols-in-bundles=none
--with-native-debug-symbols-level=1
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
echo "Dumping config.log:" &&
cat config.log &&
+1 -2
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2023, 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
@@ -134,7 +134,6 @@ jobs:
--with-gtest=${{ steps.gtest.outputs.path }}
--with-msvc-toolset-version=${{ inputs.msvc-toolset-version }}
--with-jmod-compress=zip-1
--with-external-symbols-in-bundles=none
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
echo "Dumping config.log:" &&
cat config.log &&
+10 -10
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2024, 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,7 +57,7 @@ jobs:
prepare:
name: 'Prepare the run'
runs-on: ubuntu-24.04
runs-on: ubuntu-22.04
env:
# List of platforms to exclude by default
EXCLUDED_PLATFORMS: 'alpine-linux-x64'
@@ -327,8 +327,8 @@ jobs:
uses: ./.github/workflows/build-macos.yml
with:
platform: macos-x64
runs-on: 'macos-15-intel'
xcode-toolset-version: '16.4'
runs-on: 'macos-13'
xcode-toolset-version: '14.3.1'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
dry-run: ${{ needs.prepare.outputs.dry-run == 'true' }}
@@ -340,8 +340,8 @@ jobs:
uses: ./.github/workflows/build-macos.yml
with:
platform: macos-aarch64
runs-on: 'macos-15'
xcode-toolset-version: '16.4'
runs-on: 'macos-14'
xcode-toolset-version: '15.4'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
dry-run: ${{ needs.prepare.outputs.dry-run == 'true' }}
@@ -405,7 +405,7 @@ jobs:
with:
platform: linux-x64
bootjdk-platform: linux-x64
runs-on: ubuntu-24.04
runs-on: ubuntu-22.04
dry-run: ${{ needs.prepare.outputs.dry-run == 'true' }}
debug-suffix: -debug
@@ -419,7 +419,7 @@ jobs:
with:
platform: linux-x64
bootjdk-platform: linux-x64
runs-on: ubuntu-24.04
runs-on: ubuntu-22.04
dry-run: ${{ needs.prepare.outputs.dry-run == 'true' }}
static-suffix: "-static"
@@ -432,9 +432,9 @@ jobs:
with:
platform: macos-aarch64
bootjdk-platform: macos-aarch64
runs-on: macos-15
runs-on: macos-14
dry-run: ${{ needs.prepare.outputs.dry-run == 'true' }}
xcode-toolset-version: '16.4'
xcode-toolset-version: '15.4'
debug-suffix: -debug
test-windows-x64:
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2024, 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
-6
View File
@@ -25,9 +25,3 @@ NashornProfile.txt
**/core.[0-9]*
*.rej
*.orig
test/benchmarks/**/target
/src/hotspot/CMakeLists.txt
/src/hotspot/compile_commands.json
/src/hotspot/cmake-build-debug/
/src/hotspot/.cache/
/src/hotspot/.idea/
+1 -1
View File
@@ -1,7 +1,7 @@
[general]
project=jdk
jbs=JDK
version=27
version=26
[checks]
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists,copyright
+1 -1
View File
@@ -1,7 +1,7 @@
# Welcome to the JDK!
For build instructions please see the
[online documentation](https://git.openjdk.org/jdk/blob/master/doc/building.md),
[online documentation](https://openjdk.org/groups/build/doc/building.html),
or either of these files:
- [doc/building.html](doc/building.html) (html version)
+191
View File
@@ -0,0 +1,191 @@
#
# Copyright (c) 2014, 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
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
src/bsd : jdk/src/bsd
src/demo : jdk/src/demo
src/java.activation : jaxws/src/java.activation
src/java.base : jdk/src/java.base
src/java.compiler : langtools/src/java.compiler
src/java.corba : corba/src/java.corba
src/java.datatransfer : jdk/src/java.datatransfer
src/java.desktop : jdk/src/java.desktop
src/java.instrument : jdk/src/java.instrument
src/java.logging : jdk/src/java.logging
src/java.management : jdk/src/java.management
src/java.management.rmi : jdk/src/java.management.rmi
src/java.naming : jdk/src/java.naming
src/java.prefs : jdk/src/java.prefs
src/java.rmi : jdk/src/java.rmi
src/java.scripting : jdk/src/java.scripting
src/java.se : jdk/src/java.se
src/java.security.jgss : jdk/src/java.security.jgss
src/java.security.sasl : jdk/src/java.security.sasl
src/java.se.ee : jdk/src/java.se.ee
src/java.smartcardio : jdk/src/java.smartcardio
src/java.sql : jdk/src/java.sql
src/java.sql.rowset : jdk/src/java.sql.rowset
src/java.transaction : jdk/src/java.transaction
src/java.xml : jaxp/src/java.xml
src/java.xml.bind : jaxws/src/java.xml.bind
src/java.xml.crypto : jdk/src/java.xml.crypto
src/java.xml.ws : jaxws/src/java.xml.ws
src/java.xml.ws.annotation : jaxws/src/java.xml.ws.annotation
src/jdk.accessibility : jdk/src/jdk.accessibility
src/jdk.aot : hotspot/src/jdk.aot
src/jdk.attach : jdk/src/jdk.attach
src/jdk.charsets : jdk/src/jdk.charsets
src/jdk.compiler : jdk/src/jdk.compiler langtools/src/jdk.compiler
src/jdk.crypto.cryptoki : jdk/src/jdk.crypto.cryptoki
src/jdk.crypto.ec : jdk/src/jdk.crypto.ec
src/jdk.crypto.mscapi : jdk/src/jdk.crypto.mscapi
src/jdk.dynalink : nashorn/src/jdk.dynalink
src/jdk.editpad : jdk/src/jdk.editpad
src/jdk.hotspot.agent : hotspot/src/jdk.hotspot.agent
src/jdk.httpserver : jdk/src/jdk.httpserver
src/jdk.incubator.httpclient : jdk/src/jdk.incubator.httpclient
src/jdk.internal.ed : jdk/src/jdk.internal.ed
src/jdk.internal.jvmstat : jdk/src/jdk.internal.jvmstat
src/jdk.internal.le : jdk/src/jdk.internal.le
src/jdk.internal.opt : jdk/src/jdk.internal.opt
src/jdk.internal.vm.ci : hotspot/src/jdk.internal.vm.ci
src/jdk.internal.vm.compiler : hotspot/src/jdk.internal.vm.compiler
src/jdk.jartool : jdk/src/jdk.jartool
src/jdk.javadoc : langtools/src/jdk.javadoc
src/jdk.jcmd : jdk/src/jdk.jcmd
src/jdk.jconsole : jdk/src/jdk.jconsole
src/jdk.jdeps : langtools/src/jdk.jdeps
src/jdk.jdi : jdk/src/jdk.jdi
src/jdk.jdwp.agent : jdk/src/jdk.jdwp.agent
src/jdk.jlink : jdk/src/jdk.jlink
src/jdk.jshell : langtools/src/jdk.jshell
src/jdk.jstatd : jdk/src/jdk.jstatd
src/jdk.localedata : jdk/src/jdk.localedata
src/jdk.management : jdk/src/jdk.management
src/jdk.management.agent : jdk/src/jdk.management.agent
src/jdk.naming.dns : jdk/src/jdk.naming.dns
src/jdk.naming.rmi : jdk/src/jdk.naming.rmi
src/jdk.net : jdk/src/jdk.net
src/jdk.pack : jdk/src/jdk.pack
src/jdk.scripting.nashorn : nashorn/src/jdk.scripting.nashorn
src/jdk.scripting.nashorn.shell : nashorn/src/jdk.scripting.nashorn.shell
src/jdk.sctp : jdk/src/jdk.sctp
src/jdk.security.auth : jdk/src/jdk.security.auth
src/jdk.security.jgss : jdk/src/jdk.security.jgss
src/jdk.unsupported : jdk/src/jdk.unsupported
src/jdk.xml.bind : jaxws/src/jdk.xml.bind
src/jdk.xml.dom : jaxp/src/jdk.xml.dom
src/jdk.xml.ws : jaxws/src/jdk.xml.ws
src/jdk.zipfs : jdk/src/jdk.zipfs
src/langtools/sample : langtools/src/sample
src/linux : jdk/src/linux
src/sample : jdk/src/sample
src/hotspot/share : hotspot/src/share/vm
src/hotspot/cpu/aarch64 : hotspot/src/cpu/aarch64/vm
src/hotspot/cpu/arm : hotspot/src/cpu/arm/vm
src/hotspot/cpu/ppc : hotspot/src/cpu/ppc/vm
src/hotspot/cpu/s390 : hotspot/src/cpu/s390/vm
src/hotspot/cpu/x86 : hotspot/src/cpu/x86/vm
src/hotspot/cpu/zero : hotspot/src/cpu/zero/vm
src/hotspot/os/aix : hotspot/src/os/aix/vm
src/hotspot/os/bsd : hotspot/src/os/bsd/vm
src/hotspot/os/linux : hotspot/src/os/linux/vm
src/hotspot/os/posix/dtrace : hotspot/src/os/posix/dtrace
src/hotspot/os/posix : hotspot/src/os/posix/vm
src/hotspot/os/windows : hotspot/src/os/windows/vm
src/hotspot/os_cpu/aix_ppc : hotspot/src/os_cpu/aix_ppc/vm
src/hotspot/os_cpu/bsd_x86 : hotspot/src/os_cpu/bsd_x86/vm
src/hotspot/os_cpu/bsd_zero : hotspot/src/os_cpu/bsd_zero/vm
src/hotspot/os_cpu/linux_aarch64 : hotspot/src/os_cpu/linux_aarch64/vm
src/hotspot/os_cpu/linux_arm : hotspot/src/os_cpu/linux_arm/vm
src/hotspot/os_cpu/linux_ppc : hotspot/src/os_cpu/linux_ppc/vm
src/hotspot/os_cpu/linux_s390 : hotspot/src/os_cpu/linux_s390/vm
src/hotspot/os_cpu/linux_x86 : hotspot/src/os_cpu/linux_x86/vm
src/hotspot/os_cpu/linux_zero : hotspot/src/os_cpu/linux_zero/vm
src/hotspot/os_cpu/windows_x86 : hotspot/src/os_cpu/windows_x86/vm
src/hotspot : hotspot/src
src/utils/IdealGraphVisualizer : hotspot/src/share/tools/IdealGraphVisualizer
src/utils/LogCompilation : hotspot/src/share/tools/LogCompilation
src/utils/hsdis : hotspot/src/share/tools/hsdis
src/utils/reorder : jdk/make/non-build-utils/reorder
src/utils/src/build : jdk/make/non-build-utils/src/build
make/BuildNashorn.gmk : nashorn/make/BuildNashorn.gmk
make/CompileDemos.gmk : jdk/make/CompileDemos.gmk
make/CompileInterimLangtools.gmk : langtools/make/CompileInterim.gmk
make/CompileModuleTools.gmk : jdk/make/CompileModuleTools.gmk
make/CompileToolsHotspot.gmk : hotspot/make/CompileTools.gmk
make/CompileToolsJdk.gmk : jdk/make/CompileTools.gmk
make/CopyInterimCLDRConverter.gmk : jdk/make/CopyInterimCLDRConverter.gmk
make/GenerateModuleSummary.gmk : jdk/make/GenerateModuleSummary.gmk
make/ModuleTools.gmk : jdk/make/ModuleTools.gmk
make/ToolsJdk.gmk : jdk/make/Tools.gmk
make/ToolsLangtools.gmk : langtools/make/Tools.gmk
make/UnpackSecurity.gmk : jdk/make/UnpackSecurity.gmk
make/autoconf : common/autoconf
make/conf : common/conf
make/copy : jdk/make/copy
make/copy/Copy-java.corba.gmk : corba/make/copy/Copy-java.corba.gmk
make/corba : corba/make
make/data : jdk/make/data
make/gendata : jdk/make/gendata
make/gendata/Gendata-jdk.compiler.gmk : langtools/make/gendata/Gendata-jdk.compiler.gmk
make/gensrc : jdk/make/gensrc
make/gensrc/Gensrc-java.corba.gmk : corba/make/gensrc/Gensrc-java.corba.gmk
make/gensrc/Gensrc-jdk.compiler.gmk : langtools/make/gensrc/Gensrc-jdk.compiler.gmk
make/gensrc/Gensrc-jdk.hotspot.agent.gmk : hotspot/make/gensrc/Gensrc-jdk.hotspot.agent.gmk
make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk : hotspot/make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk
make/gensrc/Gensrc-jdk.javadoc.gmk : langtools/make/gensrc/Gensrc-jdk.javadoc.gmk
make/gensrc/Gensrc-jdk.jdeps.gmk : langtools/make/gensrc/Gensrc-jdk.jdeps.gmk
make/gensrc/Gensrc-jdk.jshell.gmk : langtools/make/gensrc/Gensrc-jdk.jshell.gmk
make/gensrc/GensrcCommonLangtools.gmk : langtools/make/gensrc/GensrcCommon.gmk
make/hotspot : hotspot/make
make/jdk : jdk/make
make/langtools : langtools/make
make/launcher : jdk/make/launcher
make/lib : jdk/make/lib
make/lib/Lib-jdk.hotspot.agent.gmk : hotspot/make/lib/Lib-jdk.hotspot.agent.gmk
make/mapfiles : jdk/make/mapfiles
make/mapfiles/libjsig : hotspot/make/mapfiles/libjsig
make/mapfiles/libjvm_db : hotspot/make/mapfiles/libjvm_db
make/mapfiles/libjvm_dtrace : hotspot/make/mapfiles/libjvm_dtrace
make/mapfiles/libsaproc : hotspot/make/mapfiles/libsaproc
make/nashorn : nashorn/make
make/nb_native : common/nb_native
make/scripts/addNotices.sh : jdk/make/scripts/addNotices.sh
make/scripts/compare.sh : common/bin/compare.sh
make/scripts/compare_exceptions.sh.incl : common/bin/compare_exceptions.sh.incl
make/scripts/genExceptions.sh : jdk/make/scripts/genExceptions.sh
make/scripts/hide_important_warnings_from_javac.sh : common/bin/hide_important_warnings_from_javac.sh
make/scripts/logger.sh : common/bin/logger.sh
make/src/native/fixpath.c : common/src/fixpath.c
make/test/JtregNativeHotspot.gmk : hotspot/make/test/JtregNative.gmk
make/test/JtregNativeJdk.gmk : jdk/make/test/JtregNative.gmk
test/jdk : jdk/test
test/langtools : langtools/test
test/nashorn : nashorn/test
test/jaxp : jaxp/test
test/hotspot/gtest : hotspot/test/native
test/hotspot/jtreg : hotspot/test
bin : common/bin
bin/nashorn : nashorn/bin
doc : common/doc
doc/nashorn : nashorn/docs
+237
View File
@@ -0,0 +1,237 @@
#!/bin/bash
#
# Copyright (c) 2014, 2017, 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
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# Script for updating a patch file as per the shuffled/unshuffled source location.
usage() {
echo "Usage: $0 [-h|--help] [-v|--verbose] [-to9|-to10] [-r <repo>] <input_patch> <output_patch>"
echo "where:"
echo " -to9 create patches appropriate for a JDK 9 source tree"
echo " When going to 9, the output patches will be suffixed with the"
echo " repo name"
echo " -to10 create patches appropriate for a JDK 10 source tree"
echo " -r <repo> specify repo for source patch, set to 'top' for top repo"
echo " <input_patch> is the input patch file, that needs shuffling/unshuffling"
echo " <output_patch> is the updated patch file "
echo " "
exit 1
}
SCRIPT_DIR=`dirname $0`
UNSHUFFLE_LIST=$SCRIPT_DIR"/unshuffle_list.txt"
if [ ! -f "$UNSHUFFLE_LIST" ] ; then
echo "FATAL: cannot find $UNSHUFFLE_LIST" >&2
exit 1
fi
vflag="false"
while [ $# -gt 0 ]
do
case $1 in
-h | --help )
usage
;;
-v | --verbose )
vflag="true"
;;
-r)
repo="$2"
shift
;;
-to9)
shuffle_to=9
;;
-to10)
shuffle_to=10
;;
-*) # bad option
usage
;;
* ) # non option
break
;;
esac
shift
done
# Make sure we have the right number of arguments
if [ ! $# -eq 2 ] ; then
echo "ERROR: Invalid number of arguments." >&2
usage
fi
# Check the given repo
repos="top corba jaxp jaxws jdk langtools nashorn hotspot"
found="false"
if [ -n "$repo" ]; then
for r in $repos ; do
if [ $repo = "$r" ] ; then
found="true"
break;
fi
done
if [ $found = "false" ] ; then
echo "ERROR: Unknown repo: $repo. Should be one of [$repos]." >&2
usage
fi
fi
if [ "$shuffle_to" != "9" -a "$shuffle_to" != "10" ]; then
echo "ERROR: Must pick either -to9 or -to10"
exit 1
fi
# When going to 10, a repo must be specified for the source patch
if [ "$shuffle_to" = "10" -a -z "$repo" ]; then
echo "ERROR: Must specify src repo for JDK 9 patch"
exit 1
fi
# Check given input/output files
input="$1"
if [ "x$input" = "x-" ] ; then
input="/dev/stdin"
fi
if [ ! -f $input -a "x$input" != "x/dev/stdin" ] ; then
echo "ERROR: Cannot find input patch file: $input" >&2
exit 1
fi
output="$2"
if [ "x$output" = "x-" ] ; then
output="/dev/stdout"
fi
base_output="$output"
if [ "$shuffle_to" = "10" ]; then
if [ -f $output -a "x$output" != "x/dev/stdout" ] ; then
echo "ERROR: Output patch already exists: $output" >&2
exit 1
fi
else
for r in $repos; do
if [ -f "$output.$r" ]; then
echo "ERROR: Output patch already exists: $output.$r" >&2
exit 1
fi
done
fi
verbose() {
if [ ${vflag} = "true" ] ; then
echo "$@" >&2
fi
}
unshuffle() {
line=$@
verbose "Attempting to rewrite: \"$line\""
# Retrieve the file name
path=
if echo "$line" | egrep '^diff' > /dev/null ; then
if ! echo "$line" | egrep '\-\-git' > /dev/null ; then
echo "ERROR: Only git patches supported. Please use 'hg export --git ...'." >&2
exit 1
fi
path="`echo "$line" | sed -e s@'diff --git a/'@@ -e s@' b/.*$'@@`"
elif echo "$line" | egrep '^\-\-\-' > /dev/null ; then
path="`echo "$line" | sed -e s@'--- a/'@@`"
elif echo "$line" | egrep '^\+\+\+' > /dev/null ; then
path="`echo "$line" | sed s@'+++ b/'@@`"
fi
verbose "Extracted path: \"$path\""
# Find the most specific matches in the shuffle list
matches=
if [ -n "$repo" -a "$repo" != "top" ]; then
matchpath="$repo"/"$path"/x
else
matchpath="$path"/x
fi
while [ "$matchpath" != "" ] ; do
matchpath="`echo $matchpath | sed s@'\(.*\)/.*$'@'\1'@`"
if [ "$shuffle_to" = "10" ] ; then
pattern=": $matchpath$"
else
pattern="^$matchpath :"
fi
verbose "Attempting to find \"$matchpath\""
matches=`egrep "$pattern" "$UNSHUFFLE_LIST"`
if ! [ "x${matches}" = "x" ] ; then
verbose "Got matches: [$matches]"
break;
fi
if ! echo "$matchpath" | egrep '.*/.*' > /dev/null ; then
break;
fi
done
# Rewrite the line, if we have a match
if ! [ "x${matches}" = "x" ] ; then
shuffled="${matches%% : *}"
unshuffled="${matches#* : }"
patch_suffix_9=""
for r in $repos; do
if [ "$unshuffled" != "${unshuffled#$r}" ]; then
unshuffled="${unshuffled#$r\/}"
patch_suffix_9=".$r"
fi
done
verbose "shuffled: $shuffled"
verbose "unshuffled: $unshuffled"
verbose "patch_suffix_9: $patch_suffix_9"
if [ "$shuffle_to" = "10" ] ; then
newline="`echo "$line" | sed -e s@"$unshuffled"@"$shuffled"@g`"
else
newline="`echo "$line" | sed -e s@"$shuffled"@"$unshuffled"@g`"
output=$base_output$patch_suffix_9
verbose "Writing to $output"
fi
verbose "Rewriting to \"$newline\""
echo "$newline" >> $output
else
echo "WARNING: no match found for $path"
echo "$line" >> $output
fi
}
while IFS= read -r line
do
if echo "$line" | egrep '^diff|^\-\-\-|^\+\+\+' > /dev/null ; then
unshuffle "$line"
else
printf "%s\n" "$line" >> $output
fi
done < "$input"
+5 -9
View File
@@ -541,11 +541,6 @@ href="#apple-xcode">Apple Xcode</a> on some strategies to deal with
this.</p>
<p>It is recommended that you use at least macOS 14 and Xcode 15.4, but
earlier versions may also work.</p>
<p>Starting with Xcode 26, introduced in macOS 26, the Metal toolchain
no longer comes bundled with Xcode, so it needs to be installed
separately. This can either be done via the Xcode's Settings/Components
UI, or in the command line calling
<code>xcodebuild -downloadComponent metalToolchain</code>.</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
@@ -673,7 +668,7 @@ update.</p>
(Note that this version is often presented as "MSVC 14.28", and reported
by cl.exe as 19.28.) Older versions will not be accepted by
<code>configure</code> and will not work. The maximum accepted version
of Visual Studio is 2026.</p>
of Visual Studio is 2022.</p>
<p>If you have multiple versions of Visual Studio installed,
<code>configure</code> will by default pick the latest. You can request
a specific version to be used by setting
@@ -1385,9 +1380,10 @@ dpkg-deb -x /tmp/libasound2-dev_1.0.25-4_armhf.deb .</code></pre></li>
can specify it by <code>--with-alsa</code>.</p></li>
</ul>
<h4 id="x11-1">X11</h4>
<p>When not building a headless JDK, you will need X11 libraries
suitable for your <em>target</em> system. In most cases, using Debian's
pre-built libraries work fine.</p>
<p>You will need X11 libraries suitable for your <em>target</em> system.
In most cases, using Debian's pre-built libraries work fine.</p>
<p>Note that X11 is needed even if you only want to build a headless
JDK.</p>
<ul>
<li><p>Go to <a href="https://www.debian.org/distrib/packages">Debian
Package Search</a>, search for the following packages for your
+5 -8
View File
@@ -352,11 +352,6 @@ on some strategies to deal with this.
It is recommended that you use at least macOS 14 and Xcode 15.4, but
earlier versions may also work.
Starting with Xcode 26, introduced in macOS 26, the Metal toolchain no longer
comes bundled with Xcode, so it needs to be installed separately. This can
either be done via the Xcode's Settings/Components UI, or in the command line
calling `xcodebuild -downloadComponent metalToolchain`.
The standard macOS environment contains the basic tooling needed to build, but
for external libraries a package manager is recommended. The JDK uses
[homebrew](https://brew.sh/) in the examples, but feel free to use whatever
@@ -473,7 +468,7 @@ available for this update.
The minimum accepted version is Visual Studio 2019 version 16.8. (Note that
this version is often presented as "MSVC 14.28", and reported by cl.exe as
19.28.) Older versions will not be accepted by `configure` and will not work.
The maximum accepted version of Visual Studio is 2026.
The maximum accepted version of Visual Studio is 2022.
If you have multiple versions of Visual Studio installed, `configure` will by
default pick the latest. You can request a specific version to be used by
@@ -1178,8 +1173,10 @@ Note that alsa is needed even if you only want to build a headless JDK.
#### X11
When not building a headless JDK, you will need X11 libraries suitable for your
*target* system. In most cases, using Debian's pre-built libraries work fine.
You will need X11 libraries suitable for your *target* system. In most cases,
using Debian's pre-built libraries work fine.
Note that X11 is needed even if you only want to build a headless JDK.
* Go to [Debian Package Search](https://www.debian.org/distrib/packages),
search for the following packages for your *target* system, and download them
+78 -231
View File
@@ -75,9 +75,6 @@ Standard Library</a></li>
Deduction</a></li>
<li><a href="#expression-sfinae" id="toc-expression-sfinae">Expression
SFINAE</a></li>
<li><a href="#trailing-return-type-syntax-for-functions"
id="toc-trailing-return-type-syntax-for-functions">Trailing return type
syntax for functions</a></li>
<li><a href="#non-type-template-parameter-values"
id="toc-non-type-template-parameter-values">Non-type template parameter
values</a></li>
@@ -86,9 +83,8 @@ values</a></li>
<li><a href="#thread_local" id="toc-thread_local">thread_local</a></li>
<li><a href="#nullptr" id="toc-nullptr">nullptr</a></li>
<li><a href="#atomic" id="toc-atomic">&lt;atomic&gt;</a></li>
<li><a href="#variable-templates-and-inline-variables"
id="toc-variable-templates-and-inline-variables">Variable Templates and
Inline Variables</a></li>
<li><a href="#inline-variables" id="toc-inline-variables">Inline
Variables</a></li>
<li><a href="#initializing-variables-with-static-storage-duration"
id="toc-initializing-variables-with-static-storage-duration">Initializing
variables with static storage duration</a></li>
@@ -114,7 +110,7 @@ id="toc-compatibility-with-c11">Compatibility with C11</a></li>
id="toc-additional-permitted-features">Additional Permitted
Features</a></li>
</ul></li>
<li><a href="#forbidden-features" id="toc-forbidden-features">Forbidden
<li><a href="#excluded-features" id="toc-excluded-features">Excluded
Features</a>
<ul>
<li><a href="#structured-bindings"
@@ -123,8 +119,8 @@ id="toc-structured-bindings">Structured Bindings</a></li>
System Library</a></li>
<li><a href="#aggregate-extensions"
id="toc-aggregate-extensions">Aggregate Extensions</a></li>
<li><a href="#additional-forbidden-features"
id="toc-additional-forbidden-features">Additional Forbidden
<li><a href="#additional-excluded-features"
id="toc-additional-excluded-features">Additional Excluded
Features</a></li>
</ul></li>
<li><a href="#undecided-features" id="toc-undecided-features">Undecided
@@ -506,19 +502,19 @@ uses a subset. (Backports to JDK versions lacking support for more
recent Standards must of course stick with the original C++98/03
subset.)</p>
<p>This section describes that subset. Features from the C++98/03
language may be used unless explicitly forbidden here. Features from
language may be used unless explicitly excluded here. Features from
C++11, C++14, and C++17 may be explicitly permitted or explicitly
forbidden, and discussed accordingly here. There is a third category,
excluded, and discussed accordingly here. There is a third category,
undecided features, about which HotSpot developers have not yet reached
a consensus, or perhaps have not discussed at all. Use of these features
is also forbidden.</p>
is also excluded.</p>
<p>(The use of some features may not be immediately obvious and may slip
in anyway, since the compiler will accept them. The code review process
is the main defense against this.)</p>
<p>Some features are discussed in their own subsection, typically to
provide more extensive discussion or rationale for limitations. Features
that don't have their own subsection are listed in omnibus feature
sections for permitted, forbidden, and undecided features.</p>
sections for permitted, excluded, and undecided features.</p>
<p>Lists of new features for C++11, C++14, and C++17, along with links
to their descriptions, can be found in the online documentation for some
of the compilers and libraries. The C++17 Standard is the definitive
@@ -594,15 +590,14 @@ title="Runtime Type Information">RTTI</a> are deemed not worthwhile,
given the alternatives.</p>
<h3 id="memory-allocation">Memory Allocation</h3>
<p>Do not use the standard global allocation and deallocation functions
(global <code>operator new</code> and related functions), other than the
non-allocating forms of those functions. Use of these functions by
HotSpot code is disabled for some platforms.</p>
(operator new and related functions). Use of these functions by HotSpot
code is disabled for some platforms.</p>
<p>Rationale: HotSpot often uses "resource" or "arena" allocation. Even
where heap allocation is used, the standard global functions are avoided
in favor of wrappers around <code>malloc</code> and <code>free</code>
that support the JVM's Native Memory Tracking (NMT) feature. Typically,
uses of the global <code>operator new</code> are inadvertent and
therefore often associated with memory leaks.</p>
in favor of wrappers around malloc and free that support the VM's Native
Memory Tracking (NMT) feature. Typically, uses of the global operator
new are inadvertent and therefore often associated with memory
leaks.</p>
<p>Native memory allocation failures are often treated as
non-recoverable. The place where "out of memory" is (first) detected may
be an innocent bystander, unrelated to the actual culprit.</p>
@@ -649,39 +644,7 @@ for anonymous namespaces.</p>
class="uri">https://sourceware.org/bugzilla/show_bug.cgi?id=16874</a><br>
Bug for similar gdb problems.</p>
<h3 id="c-standard-library">C++ Standard Library</h3>
<p>Only curated parts of the C++ Standard Library may be used by HotSpot
code.</p>
<p>Functions that may throw exceptions must not be used. This is in
accordance with the HotSpot policy of <a href="#error-handling">not
using exceptions</a>.</p>
<p>Also in accordance with HotSpot policy, the <a
href="#memory-allocation">standard global allocator must not be
used</a>. This means that uses of standard container classes cannot
presently be used, as doing so requires specialization on some allocator
type that is integrated with the existing HotSpot allocation mechanisms.
(Such allocators may be provided in the future.)</p>
<p>Standard Library identifiers should usually be fully qualified;
<code>using</code> directives must not be used to bring Standard Library
identifiers into scope just to remove the need for namespace
qualification. Requiring qualification makes it easy to distinguish
between references to external libraries and code that is part of
HotSpot.</p>
<p>As with language features, Standard Library facilities are either
permitted, explicitly forbidden, or undecided (and so implicitly
forbidden).</p>
<p>Most HotSpot code should not directly <code>#include</code> C++
Standard Library headers. HotSpot provides a set of wrapper headers for
the Standard Library headers containing permitted definitions. These
wrappers are in the <code>cppstdlib</code> directory, with the same name
as the corresponding Standard Library header and a <code>.hpp</code>
extension. These wrappers provide a place for any additional code (some
of which may be platform-specific) needed to support HotSpot usage.</p>
<p>These wrappers also provide a place to document HotSpot usage,
including any restrictions. The set of wrappers and the usage
documentation should be considered part of HotSpot style. Any changes
are subject to the same process as applies to this document. (For
historical reasons, there may be many direct inclusions of some C++
Standard Library headers.)</p>
<p>Avoid using the C++ Standard Library.</p>
<p>Historically, HotSpot has mostly avoided use of the Standard
Library.</p>
<p>(It used to be impossible to use most of it in shared code, because
@@ -694,60 +657,46 @@ in mid-2017. Support for Solaris was removed in 2020.)</p>
of Standard Library facilities is exceptions. HotSpot does not use
exceptions and, for platforms which allow doing so, builds with them
turned off. Many Standard Library facilities implicitly or explicitly
use exceptions. On the other hand, many don't, and can be used without
concern for this issue. Others may have a useful subset that doesn't use
exceptions.</p></li>
use exceptions.</p></li>
<li><p><code>assert</code>. An issue that is quickly encountered is the
<code>assert</code> macro name collision (<a
href="https://bugs.openjdk.org/browse/JDK-8007770">JDK-8007770</a>).
(Not all Standard Library implementations use <code>assert</code> in
header files, but some do.) HotSpot provides a mechanism for addressing
this, by establishing a scope around the include of a library header
where the HotSpot <code>assert</code> macro is suppressed. One of the
reasons for using wrapper headers rather than directly including
standard headers is to provide a central place to deal with this issue
for each header.</p></li>
Some mechanism for addressing this would be needed before much of the
Standard Library could be used. (Not all Standard Library
implementations use assert in header files, but some do.)</p></li>
<li><p>Memory allocation. HotSpot requires explicit control over where
allocations occur. The C++98/03 <code>std::allocator</code> class is too
limited to support our usage. But changes to the allocator concept in
more recent Standards removed some of the limitations, supporting
stateful allocators. HotSpot may, in the future, provide
standard-conforming allocators that are integrated with HotSpot's
existing allocation mechanisms.</p></li>
limited to support our usage. (Changes in more recent Standards may
remove this limitation.)</p></li>
<li><p>Implementation vagaries. Bugs, or simply different implementation
choices, can lead to different behaviors among the various Standard
Libraries we need to deal with. But only selected parts of the Standard
Library are being permitted, and one of the selection criteria is
maturity. Some of these facilities are among the most heavily tested and
used C++ codes that exist.</p></li>
Libraries we need to deal with.</p></li>
<li><p>Inconsistent naming conventions. HotSpot and the C++ Standard use
different naming conventions. The coexistence of those different
conventions might appear jarring and reduce readability. However,
experience in some other code bases suggests this isn't a significant
problem, so long as Standard Library names are namespace-qualified. It
is tempting to bring the Standard Library names into scope via a
<code>using std;</code> directive. Doing so makes writing code using
those names easier, since the qualifiers don't need to be included. But
there are several reasons not to do that.</p>
<ul>
<li><p>There is a risk of future name collisions. Additional Standard
Library headers may be included, adding to the list of names being used.
Also, future versions of the Standard Library may add currently unknown
names to the headers already being included.</p></li>
<li><p>It may harm readability. Code where this is relevant is a mixture
of the local HotSpot naming conventions and the Standard Library's (or
other 3rd-party library's) naming conventions. With only unqualified
names, any distinctions from the naming conventions for the different
code sources are lost. Instead one may end up with an undifferentiated
mess, where it's not obvious whether an identifier is from local code
that is inconsistent with HotSpot style (and there's a regretable amount
of that for historical reasons), or is following some other convention.
Having the qualifiers disambiguates that.</p></li>
<li><p>It can be helpful to know, at a glance, whether the definition is
in HotSpot or elsewhere, for purposes of looking up the definition or
documentation.</p></li>
</ul></li>
conventions might appear jarring and reduce readability.</p></li>
</ul>
<p>There are a few exceptions to this rule.</p>
<ul>
<li><code>#include &lt;new&gt;</code> to use placement <code>new</code>,
<code>std::nothrow</code>, and <code>std::nothrow_t</code>.</li>
<li><code>#include &lt;limits&gt;</code> to use
<code>std::numeric_limits</code>.</li>
<li><code>#include &lt;type_traits&gt;</code> with some restrictions,
listed below.</li>
<li><code>#include &lt;cstddef&gt;</code> to use
<code>std::nullptr_t</code> and <code>std::max_align_t</code>.</li>
</ul>
<p>Certain restrictions apply to the declarations provided by
<code>&lt;type_traits&gt;</code>.</p>
<ul>
<li>The <code>alignof</code> operator should be used rather than
<code>std::alignment_of&lt;&gt;</code>.</li>
</ul>
<p>TODO: Rather than directly #including (permitted) Standard Library
headers, use a convention of #including wrapper headers (in some
location like hotspot/shared/stdcpp). This provides a single place for
dealing with issues we might have for any given header, esp.
platform-specific issues.</p>
<h3 id="type-deduction">Type Deduction</h3>
<p>Use type deduction only if it makes the code clearer or safer. Do not
use it merely to avoid the inconvenience of writing an explicit type,
@@ -770,14 +719,11 @@ href="http://wg21.link/p0127r2">p0127r2</a>)<br> <code>auto</code> may
be used as a placeholder for the type of a non-type template parameter.
The type is deduced from the value provided in a template
instantiation.</p></li>
</ul>
<p><a name="function-return-type-deduction"></a> * Function return type
deduction (<a
<li><p>Function return type deduction (<a
href="https://isocpp.org/files/papers/N3638.html">n3638</a>)<br> Only
use if the function body has a very small number of <code>return</code>
statements, and generally relatively little other code.</p>
<ul>
<li>Class template argument deduction (<a
statements, and generally relatively little other code.</p></li>
<li><p>Class template argument deduction (<a
href="http://wg21.link/n3602">n3602</a>, <a
href="http://wg21.link/p0091r3">p0091r3</a>)<br> The template arguments
of a class template may be deduced from the arguments to a constructor.
@@ -790,7 +736,7 @@ harder to understand, because explicit type information is lacking. But
it can also remove the need to be explicit about types that are either
obvious, or that are very hard to write. For example, these allow the
addition of a scope-guard mechanism with nice syntax; something like
this</li>
this</p></li>
</ul>
<pre><code> ScopeGuard guard{[&amp;]{ ... cleanup code ... }};</code></pre>
<ul>
@@ -825,44 +771,6 @@ class="uri">https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95468</a><br>
<a
href="https://developercommunity.visualstudio.com/content/problem/396562/sizeof-deduced-type-is-sometimes-not-a-constant-ex.html"
class="uri">https://developercommunity.visualstudio.com/content/problem/396562/sizeof-deduced-type-is-sometimes-not-a-constant-ex.html</a></p>
<h3 id="trailing-return-type-syntax-for-functions">Trailing return type
syntax for functions</h3>
<p>A function's return type may be specified after the parameters and
qualifiers (<a
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm">n2541</a>).
In such a declaration the normal return type is <code>auto</code> and
the return type is indicated by <code>-&gt;</code> followed by the type.
Although both use <code>auto</code> in the "normal" leading return type
position, this differs from <a
href="#function-return-type-deduction">function return type
deduction</a>, in that the return type is explicit rather than deduced,
but specified in a trailing position.</p>
<p>Use of trailing return types is permitted. However, the normal,
leading position for the return type is preferred. A trailing return
type should only be used where it provides some benefit. Such benefits
usually arise because a trailing return type is in a different scope
than a leading return type.</p>
<ul>
<li><p>If the function identifier is a nested name specifier, then the
trailing return type occurs in the nested scope. This may permit simpler
naming in the return type because of the different name lookup
context.</p></li>
<li><p>The trailing return type is in the scope of the parameters,
making their types accessible via <code>decltype</code>. For
example</p></li>
</ul>
<pre><code>template&lt;typename T, typename U&gt; auto add(T t, U u) -&gt; decltype(t + u);</code></pre>
<p>rather than</p>
<pre><code>template&lt;typename T, typename U&gt; decltype((*(T*)0) + (*(U*)0)) add(T t, U u);</code></pre>
<ul>
<li>Complex calculated leading return types may obscure the normal
syntactic boundaries, making it more difficult for a reader to find the
function name and parameters. This is particularly common in cases where
the return type is being used for <a
href="https://en.cppreference.com/w/cpp/language/sfinae"
title="Substitution Failure Is Not An Error">SFINAE</a>. A trailing
return type may be preferable in such situations.</li>
</ul>
<h3 id="non-type-template-parameter-values">Non-type template parameter
values</h3>
<p>C++17 extended the arguments permitted for non-type template
@@ -965,8 +873,9 @@ rather than <code>NULL</code>. See the paper for reasons to avoid
<code>NULL</code>.</p>
<p>Don't use (constant expression or literal) 0 for pointers. Note that
C++14 removed non-literal 0 constants from <em>null pointer
constants</em>, though some compilers continue to treat them as
such.</p>
constants</em>, though some compilers continue to treat them as such.
For historical reasons there may be lingering uses of 0 as a
pointer.</p>
<h3 id="atomic">&lt;atomic&gt;</h3>
<p>Do not use facilities provided by the <code>&lt;atomic&gt;</code>
header (<a
@@ -984,18 +893,12 @@ differ from what the Java compilers implement.</p>
"conservative" memory ordering, which may differ from (may be stronger
than) sequentially consistent. There are algorithms in HotSpot that are
believed to rely on that ordering.</p>
<h3 id="variable-templates-and-inline-variables">Variable Templates and
Inline Variables</h3>
<p>The use of variable templates (including static data member
templates) (<a href="https://wg21.link/N3651">N3651</a>) is permitted.
They provide parameterized variables and constants in a simple and
direct form, instead of requiring the use of various workarounds.</p>
<p>Variables with static storage duration and variable templates may be
declared <code>inline</code> (<a
href="https://wg21.link/p0386r2">p0386r2</a>), and this usage is
permitted. This has similar effects as for declaring a function inline:
it can be defined, identically, in multiple translation units, must be
defined in every translation unit in which it is <a
<h3 id="inline-variables">Inline Variables</h3>
<p>Variables with static storage duration may be declared
<code>inline</code> (<a href="https://wg21.link/p0386r2">p0386r2</a>).
This has similar effects as for declaring a function inline: it can be
defined, identically, in multiple translation units, must be defined in
every translation unit in which it is <a
href="https://en.cppreference.com/w/cpp/language/definition"
title="One Definition Rule">ODR used</a>, and the behavior of the
program is as if there is exactly one variable.</p>
@@ -1008,17 +911,16 @@ initializations can make initialization order problems worse. The few
ordering constraints that exist for non-inline variables don't apply, as
there isn't a single program-designated translation unit containing the
definition.</p>
<p>A <code>constexpr</code> static data member or static data member
template is implicitly <code>inline</code>. As a consequence, an <a
<p>A <code>constexpr</code> static data member is implicitly
<code>inline</code>. As a consequence, an <a
href="https://en.cppreference.com/w/cpp/language/definition"
title="One Definition Rule">ODR use</a> of such a member doesn't require
a definition in some .cpp file. (This is a change from pre-C++17.
Beginning with C++17, such a definition is considered a duplicate
definition, and is deprecated.)</p>
<p>Declaring a <code>thread_local</code> variable template or
<code>inline</code> variable is forbidden in HotSpot code. <a
href="#thread_local">The use of <code>thread_local</code></a> is already
heavily restricted.</p>
title="One Definition Rule">ODR use</a> of such a variable doesn't
require a definition in some .cpp file. (This is a change from
pre-C++17. Beginning with C++17, such a definition is considered a
duplicate definition, and is deprecated.)</p>
<p>Declaring a <code>thread_local</code> variable <code>inline</code> is
forbidden for HotSpot code. <a href="#thread_local">The use of
<code>thread_local</code></a> is already heavily restricted.</p>
<h3
id="initializing-variables-with-static-storage-duration">Initializing
variables with static storage duration</h3>
@@ -1036,8 +938,8 @@ running destructors at exit can lead to problems.</p>
<p>Some of the approaches used in HotSpot to avoid dynamic
initialization include:</p>
<ul>
<li><p>Use the <code>DeferredStatic&lt;T&gt;</code> class template. Add
a call to its initialization function at an appropriate place during VM
<li><p>Use the <code>Deferred&lt;T&gt;</code> class template. Add a call
to its initialization function at an appropriate place during VM
initialization. The underlying object is never destroyed.</p></li>
<li><p>For objects of class type, use a variable whose value is a
pointer to the class, initialized to <code>nullptr</code>. Provide an
@@ -1623,10 +1525,10 @@ href="http://wg21.link/p0138r2">p0138r2</a>)</p></li>
<li><p>Allow <code>typename</code> in template template parameter (<a
href="http://wg21.link/n4051">n4051</a>) — template template parameters
are barely used (if at all) in HotSpot, but there's no reason to
artificially forbid this syntactic regularization in any such
artificially disallow this syntactic regularization in any such
uses.</p></li>
</ul>
<h2 id="forbidden-features">Forbidden Features</h2>
<h2 id="excluded-features">Excluded Features</h2>
<h3 id="structured-bindings">Structured Bindings</h3>
<p>The use of structured bindings <a
href="http://wg21.link/p0217r3">p0217r3</a> is forbidden. Preferred
@@ -1668,33 +1570,8 @@ initialization for classes with base classes (<a
href="https://wg21.link/p0017r1">p0017r1</a>). HotSpot makes very little
use of aggregate classes, preferring explicit constructors even for very
simple classes.</p>
<h3 id="additional-forbidden-features">Additional Forbidden
Features</h3>
<h3 id="additional-excluded-features">Additional Excluded Features</h3>
<ul>
<li><p><code>&lt;algorithm&gt;</code>, <code>&lt;iterator&gt;</code>,
<code>&lt;numeric&gt;</code><br> Not useful without standard containers
or similar classes in HotSpot.</p></li>
<li><p><code>&lt;bitset&gt;</code> - Overlap with HotSpot
<code>BitMap</code>.</p></li>
<li><p><code>&lt;cassert&gt;</code>, <code>assert.h</code> - HotSpot has
its own <code>assert</code> macro.</p></li>
<li><p><code>&lt;exception&gt;</code>, <code>&lt;stdexcept&gt;</code> -
Use of <a href="#error-handling">exceptions</a> is not
permitted.</p></li>
<li><p>Thread support - <code>&lt;thread&gt;</code>,
<code>&lt;mutex&gt;</code>, <code>&lt;shared_mutex&gt;</code>,
<code>&lt;condition_varible&gt;</code>, <code>&lt;future&gt;</code><br>
HotSpot has its own threading support.</p></li>
<li><p>Streams - HotSpot doesn't use the C++ I/O library.</p></li>
<li><p><code>&lt;scoped_allocator&gt;</code> - Not useful without
specialized allocators.</p></li>
<li><p><code>&lt;string&gt;</code> - Requires allocator support, similar
to standard containers.</p></li>
<li><p><code>&lt;typeinfo&gt;</code>, <code>&lt;typeindex&gt;</code><br>
Use of <a href="#runtime-type-information">runtime type information</a>
is not permitted.</p></li>
<li><p><code>&lt;valarray&gt;</code> - May allocate, but is not
allocator-aware.</p></li>
<li><p>New string and character literals</p>
<ul>
<li>New character types (<a
@@ -1930,6 +1807,11 @@ difference.</p>
<h3 id="additional-undecided-features">Additional Undecided
Features</h3>
<ul>
<li><p>Trailing return type syntax for functions (<a
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm">n2541</a>)</p></li>
<li><p>Variable templates (<a
href="https://isocpp.org/files/papers/N3651.pdf">n3651</a>, <a
href="http://wg21.link/p0127r2">p0127r2</a>)</p></li>
<li><p>Member initializers and aggregates (<a
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html">n3653</a>)</p></li>
<li><p>Rvalue references and move semantics</p></li>
@@ -1952,43 +1834,8 @@ that developers should need to know about this feature. But if someone
does come up with a good use-case, it's likely that the alternatives are
significantly worse, because pack manipulation without this can be
complicated.</p></li>
<li><p><a
href="https://en.cppreference.com/w/cpp/header/tuple.html"><code>&lt;tuple&gt;</code></a>
— Prefer named access to class objects, rather than indexed access to
anonymous heterogeneous sequences. In particular, a standard-layout
class is preferred to a tuple.</p></li>
<li><p><code>std::invoke&lt;&gt;()</code> (<a
href="http://wg21.link/n4169">n4169</a>)</p></li>
<li><p><a
href="https://en.cppreference.com/w/cpp/header/chrono.html"><code>&lt;chrono&gt;</code></a>
— The argument for chrono is that our existing APIs aren't serving us
well. chrono provides strong type safety. We've had multiple cases of
mistakes like a double seconds being treated as double milliseconds or
vice versa, and other similar errors. But it would be a large effort to
adopt chrono. We'd also need to decide whether to use the predefined
clocks or hook up chrono to our clocks. It may be that using the
predefined clocks is fine, but it's a question that needs careful
study.</p></li>
<li><p><a
href="https://en.cppreference.com/w/cpp/header/initializer_list.html"><code>&lt;initializer_list&gt;</code></a>
— The potential ambiguity between some forms of direct initialization
and initializer list initialization, and the resolution of that
ambiguity, is unfortunate.</p></li>
<li><p><a
href="https://en.cppreference.com/w/cpp/header/ratio.html"><code>&lt;ratio&gt;</code></a>
<code>&lt;ratio&gt;</code> is a <em>compile-time</em> rational
arithmetic package. It's also fixed (though parameterized) precision.
It's not a general purpose rational arithmetic facility. It appears to
have started out as an implementation detail of chrono, and was
extracted and promoted to a public facility in the belief that it has
broader utility.</p></li>
<li><p><a
href="https://en.cppreference.com/w/cpp/header/system_error.html"><code>&lt;system_error&gt;</code></a>
— We don't really have a generally agreed upon mechanism for managing
errors. Instead, we have a plethora of bespoke ad hoc mechanisms.
Managing errors is a topic of substantial discussion.
<code>&lt;system_error&gt;</code> might end up being a part of a result
from that discussion.</p></li>
</ul>
</body>
</html>
+60 -201
View File
@@ -413,12 +413,12 @@ support for more recent Standards must of course stick with the
original C++98/03 subset.)
This section describes that subset. Features from the C++98/03
language may be used unless explicitly forbidden here. Features from
C++11, C++14, and C++17 may be explicitly permitted or explicitly forbidden,
language may be used unless explicitly excluded here. Features from
C++11, C++14, and C++17 may be explicitly permitted or explicitly excluded,
and discussed accordingly here. There is a third category, undecided
features, about which HotSpot developers have not yet reached a
consensus, or perhaps have not discussed at all. Use of these
features is also forbidden.
features is also excluded.
(The use of some features may not be immediately obvious and may slip
in anyway, since the compiler will accept them. The code review
@@ -427,7 +427,7 @@ process is the main defense against this.)
Some features are discussed in their own subsection, typically to provide
more extensive discussion or rationale for limitations. Features that
don't have their own subsection are listed in omnibus feature sections
for permitted, forbidden, and undecided features.
for permitted, excluded, and undecided features.
Lists of new features for C++11, C++14, and C++17, along with links to their
descriptions, can be found in the online documentation for some of the
@@ -494,16 +494,15 @@ worthwhile, given the alternatives.
### Memory Allocation
Do not use the standard global allocation and deallocation functions (global
`operator new` and related functions), other than the non-allocating forms of
those functions. Use of these functions by HotSpot code is disabled for some
platforms.
Do not use the standard global allocation and deallocation functions
(operator new and related functions). Use of these functions by HotSpot
code is disabled for some platforms.
Rationale: HotSpot often uses "resource" or "arena" allocation. Even
where heap allocation is used, the standard global functions are
avoided in favor of wrappers around `malloc` and `free` that support the
JVM's Native Memory Tracking (NMT) feature. Typically, uses of the global
`operator new` are inadvertent and therefore often associated with memory
avoided in favor of wrappers around malloc and free that support the
VM's Native Memory Tracking (NMT) feature. Typically, uses of the global
operator new are inadvertent and therefore often associated with memory
leaks.
Native memory allocation failures are often treated as non-recoverable.
@@ -561,39 +560,7 @@ Bug for similar gdb problems.
### C++ Standard Library
Only curated parts of the C++ Standard Library may be used by HotSpot code.
Functions that may throw exceptions must not be used. This is in accordance
with the HotSpot policy of [not using exceptions](#error-handling).
Also in accordance with HotSpot policy, the
[standard global allocator must not be used](#memory-allocation). This means
that uses of standard container classes cannot presently be used, as doing so
requires specialization on some allocator type that is integrated with the
existing HotSpot allocation mechanisms. (Such allocators may be provided in
the future.)
Standard Library identifiers should usually be fully qualified; `using`
directives must not be used to bring Standard Library identifiers into scope
just to remove the need for namespace qualification. Requiring qualification
makes it easy to distinguish between references to external libraries and code
that is part of HotSpot.
As with language features, Standard Library facilities are either permitted,
explicitly forbidden, or undecided (and so implicitly forbidden).
Most HotSpot code should not directly `#include` C++ Standard Library headers.
HotSpot provides a set of wrapper headers for the Standard Library headers
containing permitted definitions. These wrappers are in the `cppstdlib`
directory, with the same name as the corresponding Standard Library header and
a `.hpp` extension. These wrappers provide a place for any additional code
(some of which may be platform-specific) needed to support HotSpot usage.
These wrappers also provide a place to document HotSpot usage, including any
restrictions. The set of wrappers and the usage documentation should be
considered part of HotSpot style. Any changes are subject to the same process
as applies to this document. (For historical reasons, there may be many direct
inclusions of some C++ Standard Library headers.)
Avoid using the C++ Standard Library.
Historically, HotSpot has mostly avoided use of the Standard
Library.
@@ -610,59 +577,43 @@ Some reasons for this include
Standard Library facilities is exceptions. HotSpot does not use
exceptions and, for platforms which allow doing so, builds with them
turned off. Many Standard Library facilities implicitly or explicitly
use exceptions. On the other hand, many don't, and can be used without
concern for this issue. Others may have a useful subset that doesn't
use exceptions.
* `assert`. An issue that is quickly encountered is the `assert` macro name
collision ([JDK-8007770](https://bugs.openjdk.org/browse/JDK-8007770)).
(Not all Standard Library implementations use `assert` in header files, but
some do.) HotSpot provides a mechanism for addressing this, by establishing a
scope around the include of a library header where the HotSpot `assert` macro
is suppressed. One of the reasons for using wrapper headers rather than
directly including standard headers is to provide a central place to deal with
this issue for each header.
Some mechanism for addressing this would be needed before much of the
Standard Library could be used. (Not all Standard Library implementations
use assert in header files, but some do.)
* Memory allocation. HotSpot requires explicit control over where allocations
occur. The C++98/03 `std::allocator` class is too limited to support our
usage. But changes to the allocator concept in more recent Standards removed
some of the limitations, supporting stateful allocators. HotSpot may, in the
future, provide standard-conforming allocators that are integrated with
HotSpot's existing allocation mechanisms.
* Memory allocation. HotSpot requires explicit control over where
allocations occur. The C++98/03 `std::allocator` class is too limited
to support our usage. (Changes in more recent Standards may remove
this limitation.)
* Implementation vagaries. Bugs, or simply different implementation choices,
can lead to different behaviors among the various Standard Libraries we need
to deal with. But only selected parts of the Standard Library are being
permitted, and one of the selection criteria is maturity. Some of these
facilities are among the most heavily tested and used C++ codes that exist.
to deal with.
* Inconsistent naming conventions. HotSpot and the C++ Standard use different
naming conventions. The coexistence of those different conventions might
appear jarring and reduce readability. However, experience in some other code
bases suggests this isn't a significant problem, so long as Standard Library
names are namespace-qualified. It is tempting to bring the Standard Library
names into scope via a `using std;` directive. Doing so makes writing code
using those names easier, since the qualifiers don't need to be included. But
there are several reasons not to do that.
* Inconsistent naming conventions. HotSpot and the C++ Standard use
different naming conventions. The coexistence of those different conventions
might appear jarring and reduce readability.
* There is a risk of future name collisions. Additional Standard Library
headers may be included, adding to the list of names being used. Also,
future versions of the Standard Library may add currently unknown names to
the headers already being included.
There are a few exceptions to this rule.
* It may harm readability. Code where this is relevant is a mixture of the
local HotSpot naming conventions and the Standard Library's (or other
3rd-party library's) naming conventions. With only unqualified names, any
distinctions from the naming conventions for the different code sources
are lost. Instead one may end up with an undifferentiated mess, where it's
not obvious whether an identifier is from local code that is inconsistent
with HotSpot style (and there's a regretable amount of that for historical
reasons), or is following some other convention. Having the qualifiers
disambiguates that.
* `#include <new>` to use placement `new`, `std::nothrow`, and `std::nothrow_t`.
* `#include <limits>` to use `std::numeric_limits`.
* `#include <type_traits>` with some restrictions, listed below.
* `#include <cstddef>` to use `std::nullptr_t` and `std::max_align_t`.
* It can be helpful to know, at a glance, whether the definition is in
HotSpot or elsewhere, for purposes of looking up the definition or
documentation.
Certain restrictions apply to the declarations provided by `<type_traits>`.
* The `alignof` operator should be used rather than `std::alignment_of<>`.
TODO: Rather than directly \#including (permitted) Standard Library
headers, use a convention of \#including wrapper headers (in some
location like hotspot/shared/stdcpp). This provides a single place
for dealing with issues we might have for any given header, esp.
platform-specific issues.
### Type Deduction
@@ -691,7 +642,6 @@ use can make code much harder to understand.
parameter. The type is deduced from the value provided in a template
instantiation.
<a name="function-return-type-deduction"></a>
* Function return type deduction
([n3638](https://isocpp.org/files/papers/N3638.html))<br>
Only use if the function body has a very small number of `return`
@@ -741,42 +691,6 @@ Here are a few closely related example bugs:<br>
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95468><br>
<https://developercommunity.visualstudio.com/content/problem/396562/sizeof-deduced-type-is-sometimes-not-a-constant-ex.html>
### Trailing return type syntax for functions
A function's return type may be specified after the parameters and qualifiers
([n2541](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm)).
In such a declaration the normal return type is `auto` and the return type is
indicated by `->` followed by the type. Although both use `auto` in the
"normal" leading return type position, this differs from
[function return type deduction](#function-return-type-deduction),
in that the return type is explicit rather than deduced, but specified in a
trailing position.
Use of trailing return types is permitted. However, the normal, leading
position for the return type is preferred. A trailing return type should only
be used where it provides some benefit. Such benefits usually arise because a
trailing return type is in a different scope than a leading return type.
* If the function identifier is a nested name specifier, then the trailing
return type occurs in the nested scope. This may permit simpler naming in the
return type because of the different name lookup context.
* The trailing return type is in the scope of the parameters, making their
types accessible via `decltype`. For example
```
template<typename T, typename U> auto add(T t, U u) -> decltype(t + u);
```
rather than
```
template<typename T, typename U> decltype((*(T*)0) + (*(U*)0)) add(T t, U u);
```
* Complex calculated leading return types may obscure the normal syntactic
boundaries, making it more difficult for a reader to find the function name and
parameters. This is particularly common in cases where the return type is
being used for [SFINAE]. A trailing return type may be preferable in such
situations.
### Non-type template parameter values
C++17 extended the arguments permitted for non-type template parameters
@@ -884,7 +798,8 @@ rather than `NULL`. See the paper for reasons to avoid `NULL`.
Don't use (constant expression or literal) 0 for pointers. Note that C++14
removed non-literal 0 constants from _null pointer constants_, though some
compilers continue to treat them as such.
compilers continue to treat them as such. For historical reasons there may be
lingering uses of 0 as a pointer.
### &lt;atomic&gt;
@@ -904,19 +819,14 @@ ordering, which may differ from (may be stronger than) sequentially
consistent. There are algorithms in HotSpot that are believed to rely
on that ordering.
### Variable Templates and Inline Variables
### Inline Variables
The use of variable templates (including static data member templates)
([N3651](https://wg21.link/N3651)) is permitted. They provide parameterized
variables and constants in a simple and direct form, instead of requiring the
use of various workarounds.
Variables with static storage duration and variable templates may be declared
`inline` ([p0386r2](https://wg21.link/p0386r2)), and this usage is
permitted. This has similar effects as for declaring a function inline: it can
be defined, identically, in multiple translation units, must be defined in
every translation unit in which it is [ODR used][ODR], and the behavior of the
program is as if there is exactly one variable.
Variables with static storage duration may be declared `inline`
([p0386r2](https://wg21.link/p0386r2)). This has similar effects as for
declaring a function inline: it can be defined, identically, in multiple
translation units, must be defined in every translation unit in which it is
[ODR used][ODR], and the behavior of the program is as if there is exactly one
variable.
Declaring a variable inline allows the complete definition to be in a header
file, rather than having a declaration in a header and the definition in a
@@ -927,15 +837,13 @@ make initialization order problems worse. The few ordering constraints
that exist for non-inline variables don't apply, as there isn't a single
program-designated translation unit containing the definition.
A `constexpr` static data member or static data member template
is implicitly `inline`. As a consequence, an
[ODR use][ODR] of such a member doesn't require a definition in some .cpp
A `constexpr` static data member is implicitly `inline`. As a consequence, an
[ODR use][ODR] of such a variable doesn't require a definition in some .cpp
file. (This is a change from pre-C++17. Beginning with C++17, such a
definition is considered a duplicate definition, and is deprecated.)
Declaring a `thread_local` variable template or `inline` variable is forbidden
in HotSpot code. [The use of `thread_local`](#thread_local) is already
heavily restricted.
Declaring a `thread_local` variable `inline` is forbidden for HotSpot code.
[The use of `thread_local`](#thread_local) is already heavily restricted.
### Initializing variables with static storage duration
@@ -953,7 +861,7 @@ destructors at exit can lead to problems.
Some of the approaches used in HotSpot to avoid dynamic initialization
include:
* Use the `DeferredStatic<T>` class template. Add a call to its initialization
* Use the `Deferred<T>` class template. Add a call to its initialization
function at an appropriate place during VM initialization. The underlying
object is never destroyed.
@@ -1577,9 +1485,9 @@ single-argument form are permitted.
* Allow `typename` in template template parameter
([n4051](http://wg21.link/n4051)) &mdash; template template parameters are
barely used (if at all) in HotSpot, but there's no reason to artificially
forbid this syntactic regularization in any such uses.
disallow this syntactic regularization in any such uses.
## Forbidden Features
## Excluded Features
### Structured Bindings
@@ -1629,32 +1537,7 @@ initialization for classes with base classes
aggregate classes, preferring explicit constructors even for very simple
classes.
### Additional Forbidden Features
* `<algorithm>`, `<iterator>`, `<numeric>`<br>
Not useful without standard containers or similar classes in HotSpot.
* `<bitset>` - Overlap with HotSpot `BitMap`.
* `<cassert>`, `assert.h` - HotSpot has its own `assert` macro.
* `<exception>`, `<stdexcept>` - Use of [exceptions](#error-handling) is not
permitted.
* Thread support - `<thread>`, `<mutex>`, `<shared_mutex>`,
`<condition_varible>`, `<future>`<br>
HotSpot has its own threading support.
* Streams - HotSpot doesn't use the C++ I/O library.
* `<scoped_allocator>` - Not useful without specialized allocators.
* `<string>` - Requires allocator support, similar to standard containers.
* `<typeinfo>`, `<typeindex>`<br>
Use of [runtime type information](#runtime-type-information) is not permitted.
* `<valarray>` - May allocate, but is not allocator-aware.
### Additional Excluded Features
* New string and character literals
* New character types
@@ -1926,6 +1809,13 @@ See Object Lifetime: C++17 6.8/8, C++20 6.7.3/8
### Additional Undecided Features
* Trailing return type syntax for functions
([n2541](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm))
* Variable templates
([n3651](https://isocpp.org/files/papers/N3651.pdf),
[p0127r2](http://wg21.link/p0127r2))
* Member initializers and aggregates
([n3653](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html))
@@ -1953,40 +1843,9 @@ should need to know about this feature. But if someone does come up with a
good use-case, it's likely that the alternatives are significantly worse,
because pack manipulation without this can be complicated.
* [`<tuple>`](https://en.cppreference.com/w/cpp/header/tuple.html) &mdash;
Prefer named access to class objects, rather than indexed access
to anonymous heterogeneous sequences. In particular, a standard-layout
class is preferred to a tuple.
* `std::invoke<>()`
([n4169](http://wg21.link/n4169))
* [`<chrono>`](https://en.cppreference.com/w/cpp/header/chrono.html) &mdash;
The argument for chrono is that our existing APIs aren't serving us well.
chrono provides strong type safety. We've had multiple cases of mistakes like
a double seconds being treated as double milliseconds or vice versa, and other
similar errors. But it would be a large effort to adopt chrono. We'd also need
to decide whether to use the predefined clocks or hook up chrono to our
clocks. It may be that using the predefined clocks is fine, but it's a
question that needs careful study.
* [`<initializer_list>`](https://en.cppreference.com/w/cpp/header/initializer_list.html) &mdash;
The potential ambiguity between some forms of direct initialization and
initializer list initialization, and the resolution of that ambiguity, is
unfortunate.
* [`<ratio>`](https://en.cppreference.com/w/cpp/header/ratio.html) &mdash;
`<ratio>` is a *compile-time* rational arithmetic package. It's also fixed
(though parameterized) precision. It's not a general purpose rational
arithmetic facility. It appears to have started out as an implementation
detail of chrono, and was extracted and promoted to a public facility in the
belief that it has broader utility.
* [`<system_error>`](https://en.cppreference.com/w/cpp/header/system_error.html) &mdash;
We don't really have a generally agreed upon mechanism for managing
errors. Instead, we have a plethora of bespoke ad hoc mechanisms. Managing
errors is a topic of substantial discussion. `<system_error>` might end up
being a part of a result from that discussion.
[ADL]: https://en.cppreference.com/w/cpp/language/adl
+6 -6
View File
@@ -305,11 +305,11 @@ recognize your tests.</p>
the product.</p>
<ul>
<li><p>All unit tests for a class from <code>foo/bar/baz.cpp</code>
should be placed <code>foo/bar/test_baz.cpp</code> in the
<code>test/hotspot/gtest/</code> directory. Having all tests for a class
in one file is a common practice for unit tests, it helps to see all
existing tests at once, share functions and/or resources without losing
encapsulation.</p></li>
should be placed <code>foo/bar/test_baz.cpp</code> in
<code>hotspot/test/native/</code> directory. Having all tests for a
class in one file is a common practice for unit tests, it helps to see
all existing tests at once, share functions and/or resources without
losing encapsulation.</p></li>
<li><p>For tests which test more than one class, directory hierarchy
should be the same as product hierarchy, and file name should reflect
the name of the tested subsystem/functionality. For example, if a
@@ -319,7 +319,7 @@ placed in <code>gc/g1</code> directory.</p></li>
<p>Please note that framework prepends directory name to a test group
name. For example, if <code>TEST(foo, check_this)</code> and
<code>TEST(bar, check_that)</code> are defined in
<code>test/hotspot/gtest/gc/shared/test_foo.cpp</code> file, they will
<code>hotspot/test/native/gc/shared/test_foo.cpp</code> file, they will
be reported as <code>gc/shared/foo::check_this</code> and
<code>gc/shared/bar::check_that</code>.</p>
<h3 id="test-names">Test names</h3>
+2 -2
View File
@@ -241,7 +241,7 @@ recognize your tests.
Test file location should reflect a location of the tested part of the product.
* All unit tests for a class from `foo/bar/baz.cpp` should be placed
`foo/bar/test_baz.cpp` in the `test/hotspot/gtest/` directory. Having all
`foo/bar/test_baz.cpp` in `hotspot/test/native/` directory. Having all
tests for a class in one file is a common practice for unit tests, it
helps to see all existing tests at once, share functions and/or
resources without losing encapsulation.
@@ -254,7 +254,7 @@ sub-system under tests belongs to `gc/g1`, tests should be placed in
Please note that framework prepends directory name to a test group
name. For example, if `TEST(foo, check_this)` and `TEST(bar, check_that)`
are defined in `test/hotspot/gtest/gc/shared/test_foo.cpp` file, they
are defined in `hotspot/test/native/gc/shared/test_foo.cpp` file, they
will be reported as `gc/shared/foo::check_this` and
`gc/shared/bar::check_that`.
-3
View File
@@ -119,9 +119,6 @@ cover the new source version</li>
and
<code>test/langtools/tools/javac/preview/classReaderTest/Client.preview.out</code>:
update expected messages for preview errors and warnings</li>
<li><code>test/langtools/tools/javac/versions/Versions.java</code>: add
new source version to the set of valid sources and add new enum constant
for the new class file version.</li>
</ul>
</body>
</html>
+1 -1
View File
@@ -65,4 +65,4 @@ to be updated for a particular release.
* `test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java`
update annotation processor extended by `javac` tests to cover the new source version
* `test/langtools/tools/javac/preview/classReaderTest/Client.nopreview.out` and `test/langtools/tools/javac/preview/classReaderTest/Client.preview.out`: update expected messages for preview errors and warnings
* `test/langtools/tools/javac/versions/Versions.java`: add new source version to the set of valid sources and add new enum constant for the new class file version.
+1 -19
View File
@@ -72,7 +72,6 @@ id="toc-notes-for-specific-tests">Notes for Specific Tests</a>
<li><a href="#non-us-locale" id="toc-non-us-locale">Non-US
locale</a></li>
<li><a href="#pkcs11-tests" id="toc-pkcs11-tests">PKCS11 Tests</a></li>
<li><a href="#sctp-tests" id="toc-sctp-tests">SCTP Tests</a></li>
<li><a href="#testing-ahead-of-time-optimizations"
id="toc-testing-ahead-of-time-optimizations">Testing Ahead-of-time
Optimizations</a></li>
@@ -451,7 +450,7 @@ itself (<code>-timeoutFactor</code>). Also, some test cases that
programmatically wait a certain amount of time will apply this factor.
If we run in forced compilation mode (<code>-Xcomp</code>), the build
system will automatically adjust this factor to compensate for less
performance. Defaults to 4.</p>
performance. Defaults to 1.</p>
<h4 id="failure_handler_timeout">FAILURE_HANDLER_TIMEOUT</h4>
<p>Sets the argument <code>-timeoutHandlerTimeout</code> for JTReg. The
default value is 0. This is only valid if the failure handler is
@@ -536,8 +535,6 @@ failure. This helps to reproduce intermittent test failures. Defaults to
<h4 id="report">REPORT</h4>
<p>Use this report style when reporting test results (sent to JTReg as
<code>-report</code>). Defaults to <code>files</code>.</p>
<h4 id="manual">MANUAL</h4>
<p>Set to <code>true</code> to execute manual tests only.</p>
<h3 id="gtest-keywords">Gtest keywords</h3>
<h4 id="repeat">REPEAT</h4>
<p>The number of times to repeat the tests
@@ -622,21 +619,6 @@ element of the appropriate <code>@Artifact</code> class. (See
JTREG=&quot;JAVA_OPTIONS=-Djdk.test.lib.artifacts.nsslib-linux_aarch64=/path/to/NSS-libs&quot;</code></pre>
<p>For more notes about the PKCS11 tests, please refer to
test/jdk/sun/security/pkcs11/README.</p>
<h3 id="sctp-tests">SCTP Tests</h3>
<p>The SCTP tests require the SCTP runtime library, which is often not
installed by default in popular Linux distributions. Without this
library, the SCTP tests will be skipped. If you want to enable the SCTP
tests, you should install the SCTP library before running the tests.</p>
<p>For distributions using the .deb packaging format and the apt tool
(such as Debian, Ubuntu, etc.), try this:</p>
<pre><code>sudo apt install libsctp1
sudo modprobe sctp
lsmod | grep sctp</code></pre>
<p>For distributions using the .rpm packaging format and the dnf tool
(such as Fedora, Red Hat, etc.), try this:</p>
<pre><code>sudo dnf install -y lksctp-tools
sudo modprobe sctp
lsmod | grep sctp</code></pre>
<h3 id="testing-ahead-of-time-optimizations">Testing Ahead-of-time
Optimizations</h3>
<p>One way to improve test coverage of ahead-of-time (AOT) optimizations
+1 -31
View File
@@ -387,7 +387,7 @@ The `TIMEOUT_FACTOR` is forwarded to JTReg framework itself
(`-timeoutFactor`). Also, some test cases that programmatically wait a
certain amount of time will apply this factor. If we run in forced
compilation mode (`-Xcomp`), the build system will automatically
adjust this factor to compensate for less performance. Defaults to 4.
adjust this factor to compensate for less performance. Defaults to 1.
#### FAILURE_HANDLER_TIMEOUT
@@ -512,10 +512,6 @@ helps to reproduce intermittent test failures. Defaults to 0.
Use this report style when reporting test results (sent to JTReg as `-report`).
Defaults to `files`.
#### MANUAL
Set to `true` to execute manual tests only.
### Gtest keywords
#### REPEAT
@@ -640,32 +636,6 @@ $ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
For more notes about the PKCS11 tests, please refer to
test/jdk/sun/security/pkcs11/README.
### SCTP Tests
The SCTP tests require the SCTP runtime library, which is often not installed
by default in popular Linux distributions. Without this library, the SCTP tests
will be skipped. If you want to enable the SCTP tests, you should install the
SCTP library before running the tests.
For distributions using the .deb packaging format and the apt tool
(such as Debian, Ubuntu, etc.), try this:
```
sudo apt install libsctp1
sudo modprobe sctp
lsmod | grep sctp
```
For distributions using the .rpm packaging format and the dnf tool
(such as Fedora, Red Hat, etc.), try this:
```
sudo dnf install -y lksctp-tools
sudo modprobe sctp
lsmod | grep sctp
```
### Testing Ahead-of-time Optimizations
One way to improve test coverage of ahead-of-time (AOT) optimizations in
+78 -5
View File
@@ -125,6 +125,13 @@ define SetupBundleFileBody
&& $(TAR) cf - -$(TAR_INCLUDE_PARAM) $$($1_$$d_LIST_FILE) \
$(TAR_IGNORE_EXIT_VALUE) ) \
| ( $(CD) $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR) && $(TAR) xf - )$$(NEWLINE) )
# Rename stripped pdb files
ifeq ($(call isTargetOs, windows)+$(SHIP_DEBUG_SYMBOLS), true+public)
for f in `$(FIND) $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR) -name "*.stripped.pdb"`; do \
$(ECHO) Renaming $$$${f} to $$$${f%stripped.pdb}pdb $(LOG_INFO); \
$(MV) $$$${f} $$$${f%stripped.pdb}pdb; \
done
endif
# Unzip any zipped debuginfo files
ifeq ($$($1_UNZIP_DEBUGINFO), true)
for f in `$(FIND) $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR) -name "*.diz"`; do \
@@ -185,30 +192,96 @@ endif
ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
# There may be files with spaces in the names, so use ShellFindFiles explicitly.
SYMBOLS_EXCLUDE_PATTERN := %.debuginfo %.diz %.map
# There may be files with spaces in the names, so use ShellFindFiles
# explicitly.
ALL_JDK_FILES := $(call ShellFindFiles, $(JDK_IMAGE_DIR))
ifneq ($(JDK_IMAGE_DIR), $(JDK_SYMBOLS_IMAGE_DIR))
ALL_JDK_SYMBOLS_FILES := $(call ShellFindFiles, $(JDK_SYMBOLS_IMAGE_DIR))
else
ALL_JDK_SYMBOLS_FILES := $(ALL_JDK_FILES)
endif
ifneq ($(JDK_IMAGE_DIR), $(JDK_DEMOS_IMAGE_DIR))
ALL_JDK_DEMOS_FILES := $(call ShellFindFiles, $(JDK_DEMOS_IMAGE_DIR))
else
ALL_JDK_DEMOS_FILES := $(ALL_JDK_FILES)
endif
# Create special filter rules when dealing with unzipped .dSYM directories on
# macosx
ifeq ($(call isTargetOs, macosx), true)
ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), false)
JDK_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \
$(call containing, .dSYM/, $(patsubst $(JDK_IMAGE_DIR)/%, %, \
$(ALL_JDK_SYMBOLS_FILES))))
endif
endif
# Create special filter rules when dealing with debug symbols on windows
ifeq ($(call isTargetOs, windows), true)
ifeq ($(SHIP_DEBUG_SYMBOLS), )
JDK_SYMBOLS_EXCLUDE_PATTERN := %.pdb
else
ifeq ($(SHIP_DEBUG_SYMBOLS), public)
JDK_SYMBOLS_EXCLUDE_PATTERN := \
$(filter-out \
%.stripped.pdb, \
$(filter %.pdb, $(ALL_JDK_FILES)) \
)
endif
endif
endif
JDK_BUNDLE_FILES := \
$(filter-out \
$(JDK_SYMBOLS_EXCLUDE_PATTERN) \
$(JDK_EXTRA_EXCLUDES) \
$(SYMBOLS_EXCLUDE_PATTERN) \
$(JDK_IMAGE_HOMEDIR)/demo/% \
, \
$(ALL_JDK_FILES) \
)
JDK_SYMBOLS_BUNDLE_FILES := $(call FindFiles, $(SYMBOLS_IMAGE_DIR))
JDK_SYMBOLS_BUNDLE_FILES := \
$(filter-out \
%.stripped.pdb, \
$(call FindFiles, $(SYMBOLS_IMAGE_DIR)) \
)
TEST_DEMOS_BUNDLE_FILES := $(filter $(JDK_DEMOS_IMAGE_HOMEDIR)/demo/%, \
$(ALL_JDK_DEMOS_FILES))
ALL_JRE_FILES := $(call ShellFindFiles, $(JRE_IMAGE_DIR))
JRE_BUNDLE_FILES := $(ALL_JRE_FILES)
# Create special filter rules when dealing with unzipped .dSYM directories on
# macosx
ifeq ($(OPENJDK_TARGET_OS), macosx)
ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), false)
JRE_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \
$(call containing, .dSYM/, $(patsubst $(JRE_IMAGE_DIR)/%, %, $(ALL_JRE_FILES))))
endif
endif
# Create special filter rules when dealing with debug symbols on windows
ifeq ($(call isTargetOs, windows), true)
ifeq ($(SHIP_DEBUG_SYMBOLS), )
JRE_SYMBOLS_EXCLUDE_PATTERN := %.pdb
else
ifeq ($(SHIP_DEBUG_SYMBOLS), public)
JRE_SYMBOLS_EXCLUDE_PATTERN := \
$(filter-out \
%.stripped.pdb, \
$(filter %.pdb, $(ALL_JRE_FILES)) \
)
endif
endif
endif
JRE_BUNDLE_FILES := $(filter-out \
$(JRE_SYMBOLS_EXCLUDE_PATTERN) \
$(SYMBOLS_EXCLUDE_PATTERN), \
$(ALL_JRE_FILES))
ifeq ($(MACOSX_CODESIGN_MODE), hardened)
# Macosx release build and code signing available.
@@ -228,7 +301,7 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
$(call LogWarn, Signing $(JDK_BUNDLE_NAME))
$(CODESIGN) -s "$(MACOSX_CODESIGN_IDENTITY)" \
--timestamp --options runtime --deep --force \
$(JDK_MACOSX_BUNDLE_DIR_SIGNED)/$(JDK_MACOSX_BUNDLE_TOP_SUBDIR) $(LOG_DEBUG)
$(JDK_MACOSX_BUNDLE_DIR_SIGNED)/$(JDK_MACOSX_BUNDLE_TOP_DIR) $(LOG_DEBUG)
$(TOUCH) $@
$(eval $(call SetupBundleFile, BUILD_JDK_BUNDLE, \
@@ -257,7 +330,7 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
$(call LogWarn, Signing $(JRE_BUNDLE_NAME))
$(CODESIGN) -s "$(MACOSX_CODESIGN_IDENTITY)" \
--timestamp --options runtime --deep --force \
$(JRE_MACOSX_BUNDLE_DIR_SIGNED)/$(JRE_MACOSX_BUNDLE_TOP_SUBDIR) $(LOG_DEBUG)
$(JRE_MACOSX_BUNDLE_DIR_SIGNED)/$(JRE_MACOSX_BUNDLE_TOP_DIR) $(LOG_DEBUG)
$(TOUCH) $@
$(eval $(call SetupBundleFile, BUILD_JRE_BUNDLE, \
+2 -6
View File
@@ -218,14 +218,10 @@ ifeq ($(call isTargetOs, windows), true)
ifeq ($(SHIP_DEBUG_SYMBOLS), )
JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.diz,*.pdb,*.map}'
else
JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.map}'
JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.diz,*.map}'
endif
else
ifeq ($(SHIP_DEBUG_SYMBOLS), )
JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.diz,*.debuginfo,*.dSYM/**,*.dSYM}'
else
JMOD_FLAGS += --exclude '**{_the.*,_*.marker*}'
endif
JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.diz,*.debuginfo,*.dSYM/**,*.dSYM}'
endif
# Unless we are creating a very large module, use the small tool JVM options
+4 -6
View File
@@ -93,19 +93,16 @@ JAVADOC_DISABLED_DOCLINT_WARNINGS := missing
JAVADOC_DISABLED_DOCLINT_PACKAGES := org.w3c.* javax.smartcardio
# The initial set of options for javadoc
# -XDaccessInternalAPI is a temporary workaround, see 8373909
JAVADOC_OPTIONS := -use -keywords -notimestamp \
-serialwarn -encoding utf-8 -docencoding utf-8 -breakiterator \
-splitIndex --system none -javafx --expand-requires transitive \
--override-methods=summary \
-XDaccessInternalAPI
--override-methods=summary
# The reference options must stay stable to allow for comparisons across the
# development cycle.
REFERENCE_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
-serialwarn -encoding utf-8 -breakiterator -splitIndex --system none \
-html5 -javafx --expand-requires transitive \
-XDaccessInternalAPI
-html5 -javafx --expand-requires transitive
# Should we add DRAFT stamps to the generated javadoc?
ifeq ($(VERSION_IS_GA), true)
@@ -294,7 +291,8 @@ define SetupApiDocsGenerationBody
$1_INDIRECT_EXPORTS := $$(call FindTransitiveIndirectDepsForModules, $$($1_MODULES))
$1_ALL_MODULES := $$(sort $$($1_MODULES) $$($1_INDIRECT_EXPORTS))
$1_JAVA_ARGS := -Dextlink.spec.version=$$(VERSION_SPECIFICATION)
$1_JAVA_ARGS := -Dextlink.spec.version=$$(VERSION_SPECIFICATION) \
-Djspec.version=$$(VERSION_SPECIFICATION)
ifeq ($$(ENABLE_FULL_DOCS), true)
$1_SEALED_GRAPHS_DIR := $$(SUPPORT_OUTPUTDIR)/docs/$1-sealed-graphs
+1
View File
@@ -114,6 +114,7 @@ ifeq ($(HSDIS_BACKEND), binutils)
TOOLCHAIN_TYPE := gcc
OPENJDK_TARGET_OS := linux
OPENJDK_TARGET_OS_TYPE := unix
CC_OUT_OPTION := -o$(SPACE)
GENDEPS_FLAGS := -MMD -MF
CFLAGS_DEBUG_SYMBOLS := -g
DISABLED_WARNINGS :=
+10 -13
View File
@@ -148,6 +148,7 @@ define CreateCDSArchive
$1_$2_DUMP_EXTRA_ARG := $$($1_$2_COOPS_OPTION) $$($1_$2_COH_OPTION)
$1_$2_DUMP_TYPE := $(if $(findstring _nocoops, $2),-NOCOOPS,)$(if $(findstring _coh, $2),-COH,)
# Only G1 supports dumping the shared heap, so explicitly use G1 if the JVM supports it.
$1_$2_CDS_DUMP_FLAGS := $(CDS_DUMP_FLAGS) $(if $(filter g1gc, $(JVM_FEATURES_$1)), -XX:+UseG1GC)
ifeq ($(OPENJDK_TARGET_OS), windows)
@@ -282,33 +283,29 @@ else
endif
CMDS_TARGET_SUBDIR := bin
# Copy debug info files into symbols bundle.
# In case of Windows and --with-external-symbols-in-bundles=public, take care to remove *.stripped.pdb files
# Param 1 - either JDK or JRE
SetupCopyDebuginfo = \
$(foreach m, $(ALL_$1_MODULES), \
$(eval dbgfiles := $(call FindDebuginfoFiles, $(SUPPORT_OUTPUTDIR)/modules_libs/$m)) \
$(eval dbgfiles := $(if $(filter true+public,$(call isTargetOs,windows)+$(SHIP_DEBUG_SYMBOLS)), \
$(filter-out %.stripped.pdb,$(dbgfiles)),$(dbgfiles)) \
) \
$(eval $(call SetupCopyFiles, COPY_$1_LIBS_DEBUGINFO_$m, \
SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/$m, \
DEST := $($1_IMAGE_DIR)/$(LIBS_TARGET_SUBDIR), \
FILES := $(dbgfiles), \
FILES := $(call FindDebuginfoFiles, \
$(SUPPORT_OUTPUTDIR)/modules_libs/$m), \
)) \
$(eval $1_TARGETS += $$(COPY_$1_LIBS_DEBUGINFO_$m)) \
$(eval dbgfiles := $(call FindDebuginfoFiles, $(SUPPORT_OUTPUTDIR)/modules_cmds/$m)) \
$(eval dbgfiles := $(if $(filter true+public,$(call isTargetOs,windows)+$(SHIP_DEBUG_SYMBOLS)), \
$(filter-out %.stripped.pdb,$(dbgfiles)),$(dbgfiles)) \
) \
$(eval $(call SetupCopyFiles, COPY_$1_CMDS_DEBUGINFO_$m, \
SRC := $(SUPPORT_OUTPUTDIR)/modules_cmds/$m, \
DEST := $($1_IMAGE_DIR)/$(CMDS_TARGET_SUBDIR), \
FILES := $(dbgfiles), \
FILES := $(call FindDebuginfoFiles, \
$(SUPPORT_OUTPUTDIR)/modules_cmds/$m), \
)) \
$(eval $1_TARGETS += $$(COPY_$1_CMDS_DEBUGINFO_$m)) \
)
# No space before argument to avoid having to put $(strip ) everywhere in implementation above.
# No space before argument to avoid having to put $(strip ) everywhere in
# implementation above.
$(call SetupCopyDebuginfo,JDK)
$(call SetupCopyDebuginfo,JRE)
$(call SetupCopyDebuginfo,SYMBOLS)
################################################################################
+3 -3
View File
@@ -461,9 +461,9 @@ $(eval $(call SetupTarget, symbols-image, \
TARGET := symbols, \
))
$(eval $(call SetupTarget, static-launchers, \
$(eval $(call SetupTarget, static-launcher, \
MAKEFILE := StaticLibs, \
TARGET := static-launchers, \
TARGET := static-launcher, \
DEPS := hotspot-static-libs static-libs, \
))
@@ -1290,7 +1290,7 @@ ifeq ($(call isTargetOs, macosx), true)
legacy-images: mac-legacy-jre-bundle
endif
static-exploded-image: static-launchers exploded-image
static-exploded-image: static-launcher exploded-image
# These targets build the various documentation images
docs-jdk-image: docs-jdk
+14 -25
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2016, 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
@@ -206,7 +206,7 @@ $(eval $(call ParseKeywordVariable, JTREG, \
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR FAILURE_HANDLER_TIMEOUT \
TEST_MODE ASSERT VERBOSE RETAIN TEST_THREAD_FACTORY JVMTI_STRESS_AGENT \
MAX_MEM RUN_PROBLEM_LISTS RETRY_COUNT REPEAT_COUNT MAX_OUTPUT REPORT \
AOT_JDK MANUAL $(CUSTOM_JTREG_SINGLE_KEYWORDS), \
AOT_JDK $(CUSTOM_JTREG_SINGLE_KEYWORDS), \
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS \
EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS \
$(CUSTOM_JTREG_STRING_KEYWORDS), \
@@ -873,7 +873,7 @@ define SetupRunJtregTestBody
$1_JTREG_BASIC_OPTIONS += -testThreadFactoryPath:$$(JTREG_TEST_THREAD_FACTORY_JAR)
$1_JTREG_BASIC_OPTIONS += -testThreadFactory:$$(JTREG_TEST_THREAD_FACTORY)
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$(wildcard \
$$(addprefix $$($1_TEST_ROOT)/, ProblemList-$$(JTREG_TEST_THREAD_FACTORY).txt) \
$$(addprefix $$($1_TEST_ROOT)/, ProblemList-$$(JTREG_TEST_THREAD_FACTORY).txt) \
))
endif
@@ -881,8 +881,8 @@ define SetupRunJtregTestBody
AGENT := $$(LIBRARY_PREFIX)JvmtiStressAgent$$(SHARED_LIBRARY_SUFFIX)=$$(JTREG_JVMTI_STRESS_AGENT)
$1_JTREG_BASIC_OPTIONS += -javaoption:'-agentpath:$(TEST_IMAGE_DIR)/hotspot/jtreg/native/$$(AGENT)'
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$(wildcard \
$$(addprefix $$($1_TEST_ROOT)/, ProblemList-jvmti-stress-agent.txt) \
))
$$(addprefix $$($1_TEST_ROOT)/, ProblemList-jvmti-stress-agent.txt) \
))
endif
@@ -911,13 +911,7 @@ define SetupRunJtregTestBody
-vmoption:-Dtest.boot.jdk="$$(BOOT_JDK)" \
-vmoption:-Djava.io.tmpdir="$$($1_TEST_TMP_DIR)"
$1_JTREG_BASIC_OPTIONS += -ignore:quiet
ifeq ($$(JTREG_MANUAL), true)
$1_JTREG_BASIC_OPTIONS += -manual
else
$1_JTREG_BASIC_OPTIONS += -automatic
endif
$1_JTREG_BASIC_OPTIONS += -automatic -ignore:quiet
# Make it possible to specify the JIB_DATA_DIR for tests using the
# JIB Artifact resolver
@@ -952,8 +946,8 @@ define SetupRunJtregTestBody
JTREG_ALL_OPTIONS := $$(JTREG_JAVA_OPTIONS) $$(JTREG_VM_OPTIONS)
JTREG_AUTO_PROBLEM_LISTS :=
# Please reach consensus before changing this.
JTREG_AUTO_TIMEOUT_FACTOR := 4
# Please reach consensus before changing this. It was not easy changing it to a `1`.
JTREG_AUTO_TIMEOUT_FACTOR := 1
ifneq ($$(findstring -Xcomp, $$(JTREG_ALL_OPTIONS)), )
JTREG_AUTO_PROBLEM_LISTS += ProblemList-Xcomp.txt
@@ -972,10 +966,6 @@ define SetupRunJtregTestBody
JTREG_AUTO_PROBLEM_LISTS += ProblemList-enable-preview.txt
endif
ifneq ($$(findstring -XX:+UseCompactObjectHeaders, $$(JTREG_ALL_OPTIONS)), )
JTREG_AUTO_PROBLEM_LISTS += ProblemList-coh.txt
endif
ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), )
# Accept both absolute paths as well as relative to the current test root.
@@ -1096,7 +1086,7 @@ define SetupRunJtregTestBody
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR) \
$$($1_TEST_TMP_DIR))
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/jtreg, \
$$(COV_ENVIRONMENT) $$($1_COMMAND_LINE) \
$$(COV_ENVIRONMENT) $$($1_COMMAND_LINE) \
)
$1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/text/stats.txt
@@ -1106,11 +1096,11 @@ define SetupRunJtregTestBody
$$(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:".
# 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_AND_RUNTIME_SKIPPED := $$(shell $$(AWK) '{ gsub(/[,;]/, ""); \
@@ -1161,7 +1151,6 @@ define SetupRunJtregTestBody
$$(EXPR) $$($1_PASSED) + $$($1_FAILED) + $$($1_ERROR) + $$($1_SKIPPED))) \
, \
$$(eval $1_PASSED_AND_RUNTIME_SKIPPED := 0) \
$$(eval $1_PASSED := 0) \
$$(eval $1_RUNTIME_SKIPPED := 0) \
$$(eval $1_SKIPPED := 0) \
$$(eval $1_FAILED := 0) \
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2017, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2017, 2024, 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
+10 -110
View File
@@ -48,8 +48,8 @@ ifneq ($(word 2, $(wildcard $(HOTSPOT_STATIC_LIB_PATH))), )
endif
# Find all modules with static libraries
STATIC_LIB_MODULES := $(sort $(patsubst $(SUPPORT_OUTPUTDIR)/modules_static-libs/%, \
%, $(wildcard $(SUPPORT_OUTPUTDIR)/modules_static-libs/*)))
STATIC_LIB_MODULES := $(patsubst $(SUPPORT_OUTPUTDIR)/modules_static-libs/%, \
%, $(wildcard $(SUPPORT_OUTPUTDIR)/modules_static-libs/*))
# Filter out known broken libraries. This is a temporary measure until
# proper support for these libraries can be provided.
@@ -116,25 +116,17 @@ else ifeq ($(call isTargetOs, aix), true)
$(eval STATIC_LIB_EXPORT_FILES += $(lib).exp) \
)
STATIC_LIBS := -Wl,-bexpfull $(STATIC_LIB_FILES) $(addprefix -Wl$(COMMA)-bE:, $(STATIC_LIB_EXPORT_FILES))
ifeq ($(DEBUG_LEVEL), slowdebug)
STATIC_LIBS += -Wl,-bbigtoc
endif
else
$(error Unsupported platform)
endif
################################################################################
# Build the java static launcher
################################################################################
$(eval $(call SetupBuildLauncher, java, \
ENABLE_ARG_FILES := true, \
EXPAND_CLASSPATH_WILDCARDS := true, \
EXTRA_RCFLAGS := $(JAVA_RCFLAGS), \
VERSION_INFO_RESOURCE := $(JAVA_VERSION_INFO_RESOURCE), \
OPTIMIZATION := HIGH, \
MACOSX_PRIVILEGED := true, \
STATIC_LAUNCHER := true, \
CFLAGS := -DSTATIC_BUILD, \
LDFLAGS := $(LDFLAGS_STATIC_JDK), \
LIBS := $(STATIC_LIBS) $(EXTERNAL_LIBS), \
LINK_TYPE := C++, \
@@ -151,53 +143,7 @@ TARGETS += $(java)
JAVA_LAUNCHER := $(BUILD_LAUNCHER_java_TARGET)
static-launchers: $(java)
################################################################################
# Build relaunchers (thin wrappers calling the java binary) for all other
# JDK launchers.
################################################################################
RELAUNCHER_SRC := $(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/launcher
# $1: The module name
# $2: The launcher name
define SetupRelauncher
$1_$2_LAUNCHER_ARGS_LINE := $$(call ReadFile, $$(SUPPORT_OUTPUTDIR)/static-native/relaunchers/$1/$2-relauncher-arguments.txt)
# Restore |||| with space
$1_$2_LAUNCHER_ARGS := '{ $$(subst ||||,$(SPACE),$$(strip $$(foreach a, $$($1_$2_LAUNCHER_ARGS_LINE), "-J$$a"$$(COMMA) )) ) }'
$$(eval $$(call SetupJdkExecutable, BUILD_relauncher_$2, \
NAME := $2, \
EXTRA_FILES := $$(RELAUNCHER_SRC)/relauncher.c, \
CFLAGS := -DLAUNCHER_ARGS=$$($1_$2_LAUNCHER_ARGS), \
LIBS_windows := shlwapi.lib, \
OUTPUT_DIR := $$(STATIC_LAUNCHER_OUTPUT_DIR), \
OBJECT_DIR := $$(STATIC_LAUNCHER_OUTPUT_DIR)/relaunchers/$2, \
))
TARGETS += $$(BUILD_relauncher_$2)
RELAUNCHERS += $$(BUILD_relauncher_$2_TARGET)
static-launchers: $$(BUILD_relauncher_$2)
endef
# Find all modules with launchers
LAUNCHER_MODULES := $(sort $(patsubst $(SUPPORT_OUTPUTDIR)/modules_static-launchers/%, \
%, $(wildcard $(SUPPORT_OUTPUTDIR)/modules_static-launchers/*)))
# Find launchers for each module
$(foreach module, $(LAUNCHER_MODULES), \
$(eval LAUNCHERS_$(module) := $(if $(wildcard \
$(SUPPORT_OUTPUTDIR)/modules_static-launchers/$(module)/module-included-launchers.txt), \
$(shell cat \
$(SUPPORT_OUTPUTDIR)/modules_static-launchers/$(module)/module-included-launchers.txt))) \
)
# For all launchers (except java and javaw), setup a relauncher build
$(foreach module, $(LAUNCHER_MODULES), \
$(foreach launcher, $(filter-out java javaw, $(LAUNCHERS_$(module))), \
$(eval $(call SetupRelauncher,$(module),$(launcher)))))
static-launcher: $(java)
################################################################################
#
@@ -239,72 +185,26 @@ TARGETS += $(copy-from-jdk-image)
$(copy-from-jdk-image): | static-jdk-info
$(eval $(call SetupCopyFiles, copy-static-launchers, \
FILES := $(JAVA_LAUNCHER) $(RELAUNCHERS), \
$(eval $(call SetupCopyFiles, copy-static-launcher, \
FILES := $(JAVA_LAUNCHER), \
DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
))
TARGETS += $(copy-static-launchers)
TARGETS += $(copy-static-launcher)
$(eval $(call SetupCopyFiles, copy-static-launchers-debuginfo, \
$(eval $(call SetupCopyFiles, copy-static-launcher-debuginfo, \
SRC := $(STATIC_LAUNCHER_OUTPUT_DIR), \
DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
FILES := $(call FindDebuginfoFiles, $(STATIC_LAUNCHER_OUTPUT_DIR)), \
))
TARGETS += $(copy-static-launchers-debuginfo)
TARGETS += $(copy-static-launcher-debuginfo)
# Copy the microsoft runtime libraries on windows
ifeq ($(call isTargetOs, windows), true)
# Chmod to avoid permission issues if bundles are unpacked on unix platforms.
# Use separate macro calls in case the source files are not in the same
# directory.
$(eval $(call SetupCopyFiles, copy-windows-msvcr, \
DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
FILES := $(MSVCR_DLL), \
MACRO := copy-and-chmod-executable, \
))
TARGETS += $(copy-windows-msvcr)
$(eval $(call SetupCopyFiles, copy-windows-vcruntime, \
DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
FILES := $(VCRUNTIME_1_DLL), \
MACRO := copy-and-chmod-executable, \
))
TARGETS += $(copy-windows-vcruntime)
$(eval $(call SetupCopyFiles, copy-windows-msvcp, \
DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
FILES := $(MSVCP_DLL), \
MACRO := copy-and-chmod-executable, \
))
TARGETS += $(copy-windows-msvcp)
copy-windows-libs := $(copy-windows-msvcr) $(copy-windows-vcruntime) $(copy-windows-msvcp)
ifneq ($(UCRT_DLL_DIR), )
$(eval $(call SetupCopyFiles, copy-windows-ucrt, \
DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
SRC := $(UCRT_DLL_DIR), \
FILES := $(wildcard $(UCRT_DLL_DIR)/*.dll), \
MACRO := copy-and-chmod-executable, \
))
TARGETS += $(copy-windows-ucrt)
copy-windows-libs += $(copy-windows-ucrt)
endif
endif
static-jdk-image: $(copy-from-jdk-image) $(copy-static-launchers) \
$(copy-static-launchers-debuginfo) $(copy-windows-libs)
static-jdk-image: $(copy-from-jdk-image) $(copy-static-launcher) $(copy-static-launcher-debuginfo)
TARGETS += static-jdk-image
.PHONY: static-launchers static-jdk-image
.PHONY: static-launcher static-jdk-image
################################################################################
+1 -1
View File
@@ -79,7 +79,7 @@ TOOL_GENERATEEXTRAPROPERTIES = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_too
build.tools.generateextraproperties.GenerateExtraProperties
TOOL_GENERATECASEFOLDING = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.generatecharacter.GenerateCaseFolding
build.tools.generatecharacter.CaseFolding
TOOL_MAKEZIPREPRODUCIBLE = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.makezipreproducible.MakeZipReproducible
+20 -9
View File
@@ -210,8 +210,17 @@ AC_DEFUN([BASIC_SETUP_XCODE_SYSROOT],
if test $? -ne 0; then
AC_MSG_ERROR([The xcodebuild tool in the devkit reports an error: $XCODEBUILD_OUTPUT])
fi
elif test "x$TOOLCHAIN_PATH" != x; then
UTIL_LOOKUP_PROGS(XCODEBUILD, xcodebuild, $TOOLCHAIN_PATH)
if test "x$XCODEBUILD" != x; then
XCODEBUILD_OUTPUT=`"$XCODEBUILD" -version 2>&1`
if test $? -ne 0; then
AC_MSG_WARN([Ignoring the located xcodebuild tool $XCODEBUILD due to an error: $XCODEBUILD_OUTPUT])
XCODEBUILD=
fi
fi
else
UTIL_LOOKUP_TOOLCHAIN_PROGS(XCODEBUILD, xcodebuild)
UTIL_LOOKUP_PROGS(XCODEBUILD, xcodebuild)
if test "x$XCODEBUILD" != x; then
XCODEBUILD_OUTPUT=`"$XCODEBUILD" -version 2>&1`
if test $? -ne 0; then
@@ -339,11 +348,21 @@ AC_DEFUN_ONCE([BASIC_SETUP_DEVKIT],
# You can force the sysroot if the sysroot encoded into the compiler tools
# is not correct.
AC_ARG_WITH(sys-root, [AS_HELP_STRING([--with-sys-root],
[alias for --with-sysroot for backwards compatibility])],
[SYSROOT=$with_sys_root]
)
AC_ARG_WITH(sysroot, [AS_HELP_STRING([--with-sysroot],
[use this directory as sysroot])],
[SYSROOT=$with_sysroot]
)
AC_ARG_WITH([tools-dir], [AS_HELP_STRING([--with-tools-dir],
[alias for --with-toolchain-path for backwards compatibility])],
[UTIL_PREPEND_TO_PATH([TOOLCHAIN_PATH],$with_tools_dir)]
)
AC_ARG_WITH([toolchain-path], [AS_HELP_STRING([--with-toolchain-path],
[prepend these directories when searching for toolchain binaries (compilers etc)])],
[UTIL_PREPEND_TO_PATH([TOOLCHAIN_PATH],$with_toolchain_path)]
@@ -352,14 +371,6 @@ AC_DEFUN_ONCE([BASIC_SETUP_DEVKIT],
AC_ARG_WITH([xcode-path], [AS_HELP_STRING([--with-xcode-path],
[set up toolchain on Mac OS using a path to an Xcode installation])])
UTIL_DEPRECATED_ARG_WITH(sys-root)
AC_ARG_WITH([tools-dir], [AS_HELP_STRING([--with-tools-dir],
[Point to a nonstandard Visual Studio installation location on Windows by
specifying any existing directory 2 or 3 levels below the installation
root.])]
)
if test "x$with_xcode_path" != x; then
if test "x$OPENJDK_BUILD_OS" = "xmacosx"; then
UTIL_PREPEND_TO_PATH([TOOLCHAIN_PATH],
+18 -3
View File
@@ -207,14 +207,29 @@ AC_DEFUN([BASIC_CHECK_GNU_MAKE],
UTIL_SETUP_TOOL(MAKE,
[
# Try our hardest to locate a correct version of GNU make
UTIL_LOOKUP_TOOLCHAIN_PROGS(CHECK_GMAKE, gmake)
UTIL_LOOKUP_PROGS(CHECK_GMAKE, gmake)
BASIC_CHECK_MAKE_VERSION("$CHECK_GMAKE", [gmake in PATH])
if test "x$FOUND_MAKE" = x; then
UTIL_LOOKUP_TOOLCHAIN_PROGS(CHECK_MAKE, make)
UTIL_LOOKUP_PROGS(CHECK_MAKE, make)
BASIC_CHECK_MAKE_VERSION("$CHECK_MAKE", [make in PATH])
fi
if test "x$FOUND_MAKE" = x; then
if test "x$TOOLCHAIN_PATH" != x; then
# We have a toolchain path, check that as well before giving up.
OLD_PATH=$PATH
PATH=$TOOLCHAIN_PATH:$PATH
UTIL_LOOKUP_PROGS(CHECK_TOOLSDIR_GMAKE, gmake)
BASIC_CHECK_MAKE_VERSION("$CHECK_TOOLSDIR_GMAKE", [gmake in tools-dir])
if test "x$FOUND_MAKE" = x; then
UTIL_LOOKUP_PROGS(CHECK_TOOLSDIR_MAKE, make)
BASIC_CHECK_MAKE_VERSION("$CHECK_TOOLSDIR_MAKE", [make in tools-dir])
fi
PATH=$OLD_PATH
fi
fi
if test "x$FOUND_MAKE" = x; then
AC_MSG_ERROR([Cannot find GNU make $MAKE_REQUIRED_VERSION or newer! Please put it in the path, or add e.g. MAKE=/opt/gmake3.81/make as argument to configure.])
fi
@@ -363,7 +378,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
# Check if it's a GNU date compatible version
AC_MSG_CHECKING([if date is a GNU compatible version])
check_date=`$DATE --version 2>&1 | $GREP "GNU\|BusyBox\|uutils"`
check_date=`$DATE --version 2>&1 | $GREP "GNU\|BusyBox"`
if test "x$check_date" != x; then
AC_MSG_RESULT([yes])
IS_GNU_DATE=yes
+61 -9
View File
@@ -408,6 +408,27 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
AC_MSG_CHECKING([if Boot JDK is 32 or 64 bits])
AC_MSG_RESULT([$BOOT_JDK_BITS])
# Try to enable CDS
AC_MSG_CHECKING([for local Boot JDK Class Data Sharing (CDS)])
BOOT_JDK_CDS_ARCHIVE=$CONFIGURESUPPORT_OUTPUTDIR/classes.jsa
UTIL_ADD_JVM_ARG_IF_OK([-XX:+UnlockDiagnosticVMOptions -XX:-VerifySharedSpaces -XX:SharedArchiveFile=$BOOT_JDK_CDS_ARCHIVE],boot_jdk_cds_args,[$JAVA])
if test "x$boot_jdk_cds_args" != x; then
# Try creating a CDS archive
$JAVA $boot_jdk_cds_args -Xshare:dump > /dev/null 2>&1
if test $? -eq 0; then
BOOTJDK_USE_LOCAL_CDS=true
AC_MSG_RESULT([yes, created])
else
# Generation failed, don't use CDS.
BOOTJDK_USE_LOCAL_CDS=false
AC_MSG_RESULT([no, creation failed])
fi
else
BOOTJDK_USE_LOCAL_CDS=false
AC_MSG_RESULT([no, -XX:SharedArchiveFile not supported])
fi
BOOTJDK_SETUP_CLASSPATH
])
@@ -423,8 +444,13 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
# Force en-US environment
UTIL_ADD_JVM_ARG_IF_OK([-Duser.language=en -Duser.country=US],boot_jdk_jvmargs,[$JAVA])
UTIL_ADD_JVM_ARG_IF_OK([-Xlog:all=off:stdout],boot_jdk_jvmargs,[$JAVA])
UTIL_ADD_JVM_ARG_IF_OK([-Xlog:all=warning:stderr],boot_jdk_jvmargs,[$JAVA])
if test "x$BOOTJDK_USE_LOCAL_CDS" = xtrue; then
# Use our own CDS archive
UTIL_ADD_JVM_ARG_IF_OK([$boot_jdk_cds_args -Xshare:auto],boot_jdk_jvmargs,[$JAVA])
else
# Otherwise optimistically use the system-wide one, if one is present
UTIL_ADD_JVM_ARG_IF_OK([-Xshare:auto],boot_jdk_jvmargs,[$JAVA])
fi
# Finally append user provided options to allow them to override.
UTIL_ADD_JVM_ARG_IF_OK([$USER_BOOT_JDK_OPTIONS],boot_jdk_jvmargs,[$JAVA])
@@ -571,9 +597,10 @@ AC_DEFUN([BOOTJDK_SETUP_BUILD_JDK],
AC_ARG_WITH(build-jdk, [AS_HELP_STRING([--with-build-jdk],
[path to JDK of same version as is being built@<:@the newly built JDK@:>@])])
EXTERNAL_BUILDJDK_PATH=""
CREATE_BUILDJDK=false
EXTERNAL_BUILDJDK=false
BUILD_JDK_FOUND="no"
if test "x$with_build_jdk" != "x"; then
BUILD_JDK_FOUND=no
BOOTJDK_CHECK_BUILD_JDK([
if test "x$with_build_jdk" != x; then
BUILD_JDK=$with_build_jdk
@@ -581,15 +608,40 @@ AC_DEFUN([BOOTJDK_SETUP_BUILD_JDK],
AC_MSG_NOTICE([Found potential Build JDK using configure arguments])
fi
])
if test "x$BUILD_JDK_FOUND" != "xyes"; then
EXTERNAL_BUILDJDK=true
else
if test "x$COMPILE_TYPE" = "xcross"; then
BUILD_JDK="\$(BUILDJDK_OUTPUTDIR)/jdk"
BUILD_JDK_FOUND=yes
CREATE_BUILDJDK=true
AC_MSG_CHECKING([for Build JDK])
AC_MSG_RESULT([no])
AC_MSG_ERROR([Could not find a suitable Build JDK])
AC_MSG_RESULT([yes, will build it for the host platform])
else
BUILD_JDK="\$(JDK_OUTPUTDIR)"
BUILD_JDK_FOUND=yes
AC_MSG_CHECKING([for Build JDK])
AC_MSG_RESULT([yes, will use output dir])
fi
EXTERNAL_BUILDJDK_PATH="$BUILD_JDK"
fi
AC_SUBST(EXTERNAL_BUILDJDK_PATH)
# Since these tools do not yet exist, we cannot use UTIL_FIXUP_EXECUTABLE to
# detect the need of fixpath
JMOD="$BUILD_JDK/bin/jmod"
UTIL_ADD_FIXPATH(JMOD)
JLINK="$BUILD_JDK/bin/jlink"
UTIL_ADD_FIXPATH(JLINK)
AC_SUBST(JMOD)
AC_SUBST(JLINK)
if test "x$BUILD_JDK_FOUND" != "xyes"; then
AC_MSG_CHECKING([for Build JDK])
AC_MSG_RESULT([no])
AC_MSG_ERROR([Could not find a suitable Build JDK])
fi
AC_SUBST(CREATE_BUILDJDK)
AC_SUBST(BUILD_JDK)
AC_SUBST(EXTERNAL_BUILDJDK)
])
# The docs-reference JDK is used to run javadoc for the docs-reference targets.
+5 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, 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
@@ -44,3 +44,7 @@ JAVAC_CMD := $(FIXPATH) $(BOOT_JDK)/bin/javac
JAR_CMD := $(FIXPATH) $(BOOT_JDK)/bin/jar
# The bootcycle JVM arguments may differ from the original boot jdk.
JAVA_FLAGS_BIG := @BOOTCYCLE_JVM_ARGS_BIG@
# Any CDS settings generated for the bootjdk are invalid in the bootcycle build.
# By filtering out those JVM args, the bootcycle JVM will use its default
# settings for CDS.
JAVA_FLAGS := $(filter-out -XX:SharedArchiveFile% -Xshare%, $(JAVA_FLAGS))
+6 -1
View File
@@ -162,7 +162,12 @@ AC_DEFUN([BPERF_SETUP_CCACHE],
# Check if ccache is available
CCACHE_AVAILABLE=true
UTIL_LOOKUP_TOOLCHAIN_PROGS(CCACHE, ccache)
OLD_PATH="$PATH"
if test "x$TOOLCHAIN_PATH" != x; then
PATH=$TOOLCHAIN_PATH:$PATH
fi
UTIL_LOOKUP_PROGS(CCACHE, ccache)
PATH="$OLD_PATH"
AC_MSG_CHECKING([if ccache is available])
if test "x$TOOLCHAIN_TYPE" != "xgcc" && test "x$TOOLCHAIN_TYPE" != "xclang"; then
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2015, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2015, 2024, 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
+2 -2
View File
@@ -1,6 +1,6 @@
#!/bin/bash
#
# Copyright (c) 2012, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 2024, 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
@@ -110,4 +110,4 @@ $MV $OUTPUTDIR/compare.log $OUTPUTDIR/compare.log.old 2> /dev/null
export SCRIPT_DIR="$( cd "$( dirname "$0" )" > /dev/null && pwd )"
$BASH $TOPDIR/make/scripts/compare-logger.sh $OUTPUTDIR/compare.log $BASH "$REAL_COMPARE_SCRIPT" "$@"
$BASH $TOPDIR/make/scripts/logger.sh $OUTPUTDIR/compare.log $BASH "$REAL_COMPARE_SCRIPT" "$@"
+99 -56
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2026, 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,25 +37,56 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
if test "x$TOOLCHAIN_TYPE" = xgcc; then
# Default works for linux, might work on other platforms as well.
SHARED_LIBRARY_FLAGS='-shared'
# --disable-new-dtags forces use of RPATH instead of RUNPATH for rpaths.
# This protects internal library dependencies within the JDK from being
# overridden using LD_LIBRARY_PATH. See JDK-8326891 for more information.
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1 -Wl,--disable-new-dtags'
SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
elif test "x$TOOLCHAIN_TYPE" = xclang; then
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
# Linking is different on MacOSX
SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0"
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path$(or [$]1,/.)'
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
elif test "x$OPENJDK_TARGET_OS" = xaix; then
# Linking is different on aix
SHARED_LIBRARY_FLAGS="-shared -Wl,-bM:SRE -Wl,-bnoentry"
SET_EXECUTABLE_ORIGIN=""
SET_SHARED_LIBRARY_ORIGIN=''
SET_SHARED_LIBRARY_NAME=''
else
# Default works for linux, might work on other platforms as well.
SHARED_LIBRARY_FLAGS='-shared'
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
if test "x$OPENJDK_TARGET_OS" = xlinux; then
SET_EXECUTABLE_ORIGIN="$SET_EXECUTABLE_ORIGIN -Wl,--disable-new-dtags"
fi
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
# arm specific settings
if test "x$OPENJDK_TARGET_CPU" = "xarm"; then
# '-Wl,-z,origin' isn't used on arm.
SET_SHARED_LIBRARY_ORIGIN='-Wl,-rpath,\$$$$ORIGIN[$]1'
else
SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
fi
fi
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
SHARED_LIBRARY_FLAGS="-dll"
SET_EXECUTABLE_ORIGIN=''
SET_SHARED_LIBRARY_ORIGIN=''
SET_SHARED_LIBRARY_NAME=''
fi
AC_SUBST(SET_EXECUTABLE_ORIGIN)
AC_SUBST(SET_SHARED_LIBRARY_ORIGIN)
AC_SUBST(SET_SHARED_LIBRARY_NAME)
AC_SUBST(SHARED_LIBRARY_FLAGS)
])
@@ -69,19 +100,6 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
# Debug prefix mapping if supported by compiler
DEBUG_PREFIX_CFLAGS=
UTIL_ARG_WITH(NAME: native-debug-symbols-level, TYPE: literal,
DEFAULT: [auto], VALID_VALUES: [auto 1 2 3],
CHECK_AVAILABLE: [
if test x$TOOLCHAIN_TYPE = xmicrosoft; then
AVAILABLE=false
fi
],
DESC: [set the native debug symbol level (GCC and Clang only)],
DEFAULT_DESC: [toolchain default],
IF_AUTO: [
RESULT=""
])
# Debug symbols
if test "x$TOOLCHAIN_TYPE" = xgcc; then
if test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = "xfalse"; then
@@ -106,9 +124,8 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
)
fi
# Debug info level should follow the debug format to be effective.
CFLAGS_DEBUG_SYMBOLS="-gdwarf-4 -g${NATIVE_DEBUG_SYMBOLS_LEVEL}"
ASFLAGS_DEBUG_SYMBOLS="-g${NATIVE_DEBUG_SYMBOLS_LEVEL}"
CFLAGS_DEBUG_SYMBOLS="-g -gdwarf-4"
ASFLAGS_DEBUG_SYMBOLS="-g"
elif test "x$TOOLCHAIN_TYPE" = xclang; then
if test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = "xfalse"; then
# Check if compiler supports -fdebug-prefix-map. If so, use that to make
@@ -127,9 +144,8 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${GDWARF_FLAGS}],
IF_FALSE: [GDWARF_FLAGS=""])
# Debug info level should follow the debug format to be effective.
CFLAGS_DEBUG_SYMBOLS="${GDWARF_FLAGS} -g${NATIVE_DEBUG_SYMBOLS_LEVEL}"
ASFLAGS_DEBUG_SYMBOLS="-g${NATIVE_DEBUG_SYMBOLS_LEVEL}"
CFLAGS_DEBUG_SYMBOLS="-g ${GDWARF_FLAGS}"
ASFLAGS_DEBUG_SYMBOLS="-g"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
CFLAGS_DEBUG_SYMBOLS="-Z7"
fi
@@ -209,10 +225,7 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
BUILD_CC_DISABLE_WARNING_PREFIX="-wd"
CFLAGS_WARNINGS_ARE_ERRORS="-WX"
WARNINGS_ENABLE_ALL_NORMAL="-W3"
WARNINGS_ENABLE_ADDITIONAL=""
WARNINGS_ENABLE_ADDITIONAL_CXX=""
WARNINGS_ENABLE_ADDITIONAL_JVM=""
WARNINGS_ENABLE_ALL="-W3"
DISABLED_WARNINGS="4800 5105"
;;
@@ -221,16 +234,14 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
WARNINGS_ENABLE_ALL_NORMAL="-Wall -Wextra"
# Additional warnings that are not activated by -Wall and -Wextra
WARNINGS_ENABLE_ADDITIONAL="-Wformat=2 \
-Winvalid-pch -Wpointer-arith -Wreturn-type \
WARNINGS_ENABLE_ADDITIONAL="-Winvalid-pch -Wpointer-arith -Wreturn-type \
-Wsign-compare -Wtrampolines -Wtype-limits -Wundef -Wuninitialized \
-Wunused-const-variable=1 -Wunused-function -Wunused-result \
-Wunused-value"
WARNINGS_ENABLE_ADDITIONAL_CXX="-Woverloaded-virtual -Wreorder"
WARNINGS_ENABLE_ADDITIONAL_JVM="-Wzero-as-null-pointer-constant"
WARNINGS_ENABLE_ALL_CFLAGS="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ALL_CFLAGS $WARNINGS_ENABLE_ADDITIONAL_CXX"
# These warnings will never be turned on, since they generate too many
# false positives.
@@ -246,24 +257,16 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
WARNINGS_ENABLE_ALL_NORMAL="-Wall -Wextra"
# Additional warnings that are not activated by -Wall and -Wextra
WARNINGS_ENABLE_ADDITIONAL="-Wformat=2 \
-Wpointer-arith -Wsign-compare -Wreorder \
WARNINGS_ENABLE_ADDITIONAL="-Wpointer-arith -Wsign-compare -Wreorder \
-Wunused-function -Wundef -Wunused-value -Woverloaded-virtual"
WARNINGS_ENABLE_ADDITIONAL_CXX=""
WARNINGS_ENABLE_ADDITIONAL_JVM="-Wzero-as-null-pointer-constant"
WARNINGS_ENABLE_ALL="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
# These warnings will never be turned on, since they generate too many
# false positives.
DISABLED_WARNINGS="unknown-warning-option unused-parameter"
;;
esac
WARNINGS_ENABLE_ALL="$WARNINGS_ENABLE_ALL_NORMAL $WARNINGS_ENABLE_ADDITIONAL"
WARNINGS_ENABLE_ALL_CXX="$WARNINGS_ENABLE_ALL $WARNINGS_ENABLE_ADDITIONAL_CXX"
WARNINGS_ENABLE_ALL_JVM="$WARNINGS_ENABLE_ALL_CXX $WARNINGS_ENABLE_ADDITIONAL_JVM"
AC_SUBST(DISABLE_WARNING_PREFIX)
AC_SUBST(BUILD_CC_DISABLE_WARNING_PREFIX)
AC_SUBST(CFLAGS_WARNINGS_ARE_ERRORS)
@@ -310,17 +313,10 @@ AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
C_O_FLAG_DEBUG_JVM="-O0"
C_O_FLAG_NONE="-O0"
if test "x$TOOLCHAIN_TYPE" = xgcc; then
C_O_FLAG_LTO="-flto=auto -fuse-linker-plugin -fno-strict-aliasing -fno-fat-lto-objects"
else
C_O_FLAG_LTO="-flto -fno-strict-aliasing"
fi
if test "x$TOOLCHAIN_TYPE" = xclang && test "x$OPENJDK_TARGET_OS" = xaix; then
C_O_FLAG_HIGHEST_JVM="${C_O_FLAG_HIGHEST_JVM} -finline-functions"
C_O_FLAG_HIGHEST="${C_O_FLAG_HIGHEST} -finline-functions"
C_O_FLAG_HI="${C_O_FLAG_HI} -finline-functions"
C_O_FLAG_LTO="${C_O_FLAG_LTO} -ffat-lto-objects"
fi
# -D_FORTIFY_SOURCE=2 hardening option needs optimization (at least -O1) enabled
@@ -352,7 +348,6 @@ AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
C_O_FLAG_DEBUG_JVM=""
C_O_FLAG_NONE="-Od"
C_O_FLAG_SIZE="-O1"
C_O_FLAG_LTO="-GL"
fi
# Now copy to C++ flags
@@ -364,7 +359,6 @@ AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
CXX_O_FLAG_DEBUG_JVM="$C_O_FLAG_DEBUG_JVM"
CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
CXX_O_FLAG_SIZE="$C_O_FLAG_SIZE"
CXX_O_FLAG_LTO="$C_O_FLAG_LTO"
# Adjust optimization flags according to debug level.
case $DEBUG_LEVEL in
@@ -397,15 +391,12 @@ AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
AC_SUBST(C_O_FLAG_NORM)
AC_SUBST(C_O_FLAG_NONE)
AC_SUBST(C_O_FLAG_SIZE)
AC_SUBST(C_O_FLAG_LTO)
AC_SUBST(CXX_O_FLAG_HIGHEST_JVM)
AC_SUBST(CXX_O_FLAG_HIGHEST)
AC_SUBST(CXX_O_FLAG_HI)
AC_SUBST(CXX_O_FLAG_NORM)
AC_SUBST(CXX_O_FLAG_NONE)
AC_SUBST(CXX_O_FLAG_SIZE)
AC_SUBST(CXX_O_FLAG_LTO)
])
AC_DEFUN([FLAGS_SETUP_CFLAGS],
@@ -617,9 +608,19 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
ADLC_LANGSTD_CXXFLAGS="$LANGSTD_CXXFLAGS"
# CFLAGS WARNINGS STUFF
WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL"
WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXX"
WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_JVM"
# Set JVM_CFLAGS warning handling
if test "x$TOOLCHAIN_TYPE" = xgcc; then
WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
elif test "x$TOOLCHAIN_TYPE" = xclang; then
WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
fi
# Set some additional per-OS defines.
@@ -881,12 +882,12 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
CFLAGS_JVM_COMMON="$ALWAYS_CFLAGS_JVM $ALWAYS_DEFINES_JVM \
$TOOLCHAIN_CFLAGS_JVM ${$1_TOOLCHAIN_CFLAGS_JVM} \
$OS_CFLAGS $OS_CFLAGS_JVM $CFLAGS_OS_DEF_JVM $DEBUG_CFLAGS_JVM \
$WARNING_CFLAGS_JVM $JVM_PICFLAG $FILE_MACRO_CFLAGS \
$WARNING_CFLAGS $WARNING_CFLAGS_JVM $JVM_PICFLAG $FILE_MACRO_CFLAGS \
$REPRODUCIBLE_CFLAGS $BRANCH_PROTECTION_CFLAGS"
CFLAGS_JDK_COMMON="$ALWAYS_DEFINES_JDK $TOOLCHAIN_CFLAGS_JDK \
$OS_CFLAGS $CFLAGS_OS_DEF_JDK $DEBUG_CFLAGS_JDK $DEBUG_OPTIONS_FLAGS_JDK \
$DEBUG_SYMBOLS_CFLAGS_JDK \
$WARNING_CFLAGS $WARNING_CFLAGS_JDK $DEBUG_SYMBOLS_CFLAGS_JDK \
$FILE_MACRO_CFLAGS $REPRODUCIBLE_CFLAGS $BRANCH_PROTECTION_CFLAGS"
# Use ${$2EXTRA_CFLAGS} to block EXTRA_CFLAGS to be added to build flags.
@@ -933,6 +934,48 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
IF_FALSE: [$2FDLIBM_CFLAGS=""])
fi
AC_SUBST($2FDLIBM_CFLAGS)
# 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. 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_OS" = "xlinux"; then
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
AC_LANG_PUSH(C)
OLD_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -march=armv8-a+sve"
AC_MSG_CHECKING([if Arm SVE ACLE is supported])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <arm_sve.h>],
[
svint32_t r = svdup_n_s32(1);
return 0;
])],
[
AC_MSG_RESULT([yes])
$2SVE_CFLAGS="-march=armv8-a+sve"
# Switching the initialization mode with gcc from 'pattern' to 'zero'
# avoids the use of unsupported `__builtin_clear_padding` for variable
# length aggregates
if test "x$DEBUG_LEVEL" != xrelease && test "x$TOOLCHAIN_TYPE" = xgcc ; then
INIT_ZERO_FLAG="-ftrivial-auto-var-init=zero"
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$INIT_ZERO_FLAG],
IF_TRUE: [
$2SVE_CFLAGS="${$2SVE_CFLAGS} $INIT_ZERO_FLAG"
]
)
fi
],
[
AC_MSG_RESULT([no])
$2SVE_CFLAGS=""
]
)
CFLAGS="$OLD_CFLAGS"
AC_LANG_POP(C)
fi
fi
AC_SUBST($2SVE_CFLAGS)
])
AC_DEFUN_ONCE([FLAGS_SETUP_BRANCH_PROTECTION],
+5 -21
View File
@@ -34,7 +34,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS],
FLAGS_SETUP_LDFLAGS_CPU_DEP([TARGET])
# Setup the build toolchain
FLAGS_SETUP_LDFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_], [BUILD_])
FLAGS_SETUP_LDFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
AC_SUBST(ADLC_LDFLAGS)
])
@@ -50,9 +50,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
# add -z,relro (mark relocations read only) for all libs
# add -z,now ("full relro" - more of the Global Offset Table GOT is marked read only)
# add --no-as-needed to disable default --as-needed link flag on some GCC toolchains
# add --icf=all (Identical Code Folding — merges identical functions)
BASIC_LDFLAGS="-Wl,-z,defs -Wl,-z,relro -Wl,-z,now -Wl,--no-as-needed -Wl,--exclude-libs,ALL"
# Linux : remove unused code+data in link step
if test "x$ENABLE_LINKTIME_GC" = xtrue; then
if test "x$OPENJDK_TARGET_CPU" = xs390x; then
@@ -63,7 +61,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
fi
BASIC_LDFLAGS_JVM_ONLY=""
LDFLAGS_LTO="-flto=auto -fuse-linker-plugin -fno-strict-aliasing $DEBUG_PREFIX_CFLAGS"
LDFLAGS_CXX_PARTIAL_LINKING="$MACHINE_FLAG -r"
@@ -71,19 +68,18 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
-fPIC"
LDFLAGS_LTO="-flto=auto -fuse-linker-plugin -fno-strict-aliasing $DEBUG_PREFIX_CFLAGS"
LDFLAGS_CXX_PARTIAL_LINKING="$MACHINE_FLAG -r"
if test "x$OPENJDK_TARGET_OS" = xlinux; then
# Clang needs the lld linker to work correctly
BASIC_LDFLAGS="-fuse-ld=lld -Wl,--exclude-libs,ALL"
if test "x$CXX_IS_USER_SUPPLIED" = xfalse && test "x$CC_IS_USER_SUPPLIED" = xfalse; then
UTIL_REQUIRE_TOOLCHAIN_PROGS(LLD, lld)
UTIL_REQUIRE_PROGS(LLD, lld, $TOOLCHAIN_PATH:$PATH)
fi
fi
if test "x$OPENJDK_TARGET_OS" = xaix; then
BASIC_LDFLAGS="-Wl,-b64 -Wl,-brtl -Wl,-bnorwexec -Wl,-blibpath:/usr/lib:lib -Wl,-bnoexpall \
-Wl,-bernotok -Wl,-bcdtors:mbr::s -Wl,-bdatapsize:64k -Wl,-btextpsize:64k -Wl,-bstackpsize:64k"
-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
@@ -91,7 +87,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
BASIC_LDFLAGS="-opt:ref"
BASIC_LDFLAGS_JDK_ONLY="-incremental:no"
BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
LDFLAGS_LTO="-LTCG:INCREMENTAL"
fi
if (test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang) \
@@ -103,10 +98,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
# Setup OS-dependent LDFLAGS
if test "x$OPENJDK_TARGET_OS" = xmacosx && test "x$TOOLCHAIN_TYPE" = xclang; then
if test x$DEBUG_LEVEL = xrelease; then
BASIC_LDFLAGS_JDK_ONLY="$BASIC_LDFLAGS_JDK_ONLY -Wl,-dead_strip"
fi
# FIXME: We should really generalize SetSharedLibraryOrigin instead.
# 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 -Wl,-reproducible"
fi
@@ -156,7 +148,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
# Export some intermediate variables for compatibility
LDFLAGS_CXX_JDK="$DEBUGLEVEL_LDFLAGS_JDK_ONLY"
AC_SUBST(LDFLAGS_LTO)
AC_SUBST(LDFLAGS_CXX_JDK)
AC_SUBST(LDFLAGS_CXX_PARTIAL_LINKING)
])
@@ -164,8 +155,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
################################################################################
# $1 - Either BUILD or TARGET to pick the correct OS/CPU variables to check
# conditionals against.
# $2 - Optional prefix for each variable defined (OPENJDK_BUILD_ or nothing).
# $3 - Optional prefix for toolchain variables (BUILD_ or nothing).
# $2 - Optional prefix for each variable defined.
AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
[
# Setup CPU-dependent basic LDFLAGS. These can differ between the target and
@@ -199,12 +189,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
fi
fi
if test "x${$3LD_TYPE}" = "xgold"; then
if test x$DEBUG_LEVEL = xrelease; then
$1_CPU_LDFLAGS="${$1_CPU_LDFLAGS} -Wl,--icf=all"
fi
fi
# Export variables according to old definitions, prefix with $2 if present.
LDFLAGS_JDK_COMMON="$BASIC_LDFLAGS $BASIC_LDFLAGS_JDK_ONLY \
$OS_LDFLAGS $DEBUGLEVEL_LDFLAGS_JDK_ONLY ${$2EXTRA_LDFLAGS}"
-56
View File
@@ -107,62 +107,6 @@ AC_DEFUN([FLAGS_SETUP_NMFLAGS],
AC_SUBST(NMFLAGS)
])
# 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.
AC_DEFUN([FLAGS_SETUP_SVE],
[
AARCH64_SVE_AVAILABLE=false
# 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_OS" = "xlinux"; then
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
# check the compiler and binutils support sve or not
AC_MSG_CHECKING([if Arm SVE ACLE is supported])
AC_LANG_PUSH([C])
saved_cflags="$CFLAGS"
CFLAGS="$CFLAGS -march=armv8-a+sve $CFLAGS_WARNINGS_ARE_ERRORS ARG_ARGUMENT"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[
#include <arm_sve.h>
svfloat64_t a() {}
],
[
svint32_t r = svdup_n_s32(1)
])],
[
AARCH64_SVE_AVAILABLE=true
]
)
CFLAGS="$saved_cflags"
AC_LANG_POP([C])
AC_MSG_RESULT([$AARCH64_SVE_AVAILABLE])
fi
fi
UTIL_ARG_ENABLE(NAME: aarch64-sve, DEFAULT: auto,
RESULT: AARCH64_SVE_ENABLED,
DESC: [Use SVE when compiling libsleef],
AVAILABLE: $AARCH64_SVE_AVAILABLE)
SVE_CFLAGS=""
if test "x$AARCH64_SVE_ENABLED" = xtrue; then
SVE_CFLAGS="-march=armv8-a+sve"
# Switching the initialization mode with gcc from 'pattern' to 'zero'
# avoids the use of unsupported `__builtin_clear_padding` for variable
# length aggregates
if test "x$DEBUG_LEVEL" != xrelease && test "x$TOOLCHAIN_TYPE" = xgcc ; then
AC_MSG_CHECKING([Switching the initialization mode with gcc from pattern to zero])
INIT_ZERO_FLAG="-ftrivial-auto-var-init=zero"
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$INIT_ZERO_FLAG],
IF_TRUE: [
SVE_CFLAGS="${SVE_CFLAGS} $INIT_ZERO_FLAG"
]
)
fi
fi
AC_SUBST(SVE_CFLAGS)
])
################################################################################
# platform independent
AC_DEFUN([FLAGS_SETUP_ASFLAGS],
+7 -2
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, 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
@@ -319,10 +319,16 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL],
[
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
CC_OUT_OPTION=-Fo
if test "x$OPENJDK_TARGET_CPU" != xaarch64; then
AS_NON_ASM_EXTENSION_OPTION=-Ta
fi
else
# The option used to specify the target .o,.a or .so file.
# When compiling, how to specify the to be created object file.
CC_OUT_OPTION='-o$(SPACE)'
fi
AC_SUBST(CC_OUT_OPTION)
AC_SUBST(AS_NON_ASM_EXTENSION_OPTION)
# Generate make dependency files
@@ -368,7 +374,6 @@ AC_DEFUN([FLAGS_SETUP_FLAGS],
FLAGS_SETUP_RCFLAGS
FLAGS_SETUP_NMFLAGS
FLAGS_SETUP_SVE
FLAGS_SETUP_ASFLAGS
FLAGS_SETUP_ASFLAGS_CPU_DEP([TARGET])
FLAGS_SETUP_ASFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, 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
+9 -27
View File
@@ -316,36 +316,23 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
AC_MSG_CHECKING([if we should add external native debug symbols to the shipped bundles])
AC_ARG_WITH([external-symbols-in-bundles],
[AS_HELP_STRING([--with-external-symbols-in-bundles],
[which type of external native debug symbol information shall be shipped with bundles/images (none, public, full).
@<:@none in release builds, full otherwise. --with-native-debug-symbols=external/zipped is a prerequisite. public is only supported on Windows@:>@])],
[],
[with_external_symbols_in_bundles=default])
[which type of external native debug symbol information shall be shipped in product bundles (none, public, full)
(e.g. ship full/stripped pdbs on Windows) @<:@none@:>@])])
if test "x$with_external_symbols_in_bundles" = x || test "x$with_external_symbols_in_bundles" = xnone ; then
AC_MSG_RESULT([no])
elif test "x$with_external_symbols_in_bundles" = xfull || test "x$with_external_symbols_in_bundles" = xpublic ; then
if test "x$COPY_DEBUG_SYMBOLS" != xtrue ; then
AC_MSG_ERROR([--with-external-symbols-in-bundles only works when --with-native-debug-symbols=external/zipped is used!])
elif test "x$with_external_symbols_in_bundles" = xpublic && test "x$OPENJDK_TARGET_OS" != xwindows ; then
AC_MSG_ERROR([--with-external-symbols-in-bundles=public is only supported on Windows!])
fi
if test "x$with_external_symbols_in_bundles" = xfull ; then
if test "x$OPENJDK_TARGET_OS" != xwindows ; then
AC_MSG_ERROR([--with-external-symbols-in-bundles currently only works on windows!])
elif test "x$COPY_DEBUG_SYMBOLS" != xtrue ; then
AC_MSG_ERROR([--with-external-symbols-in-bundles only works when --with-native-debug-symbols=external is used!])
elif test "x$with_external_symbols_in_bundles" = xfull ; then
AC_MSG_RESULT([full])
SHIP_DEBUG_SYMBOLS=full
else
AC_MSG_RESULT([public])
SHIP_DEBUG_SYMBOLS=public
fi
elif test "x$with_external_symbols_in_bundles" = xdefault ; then
if test "x$DEBUG_LEVEL" = xrelease ; then
AC_MSG_RESULT([no (default)])
elif test "x$COPY_DEBUG_SYMBOLS" = xtrue ; then
AC_MSG_RESULT([full (default)])
SHIP_DEBUG_SYMBOLS=full
else
AC_MSG_RESULT([no (default, native debug symbols are not external/zipped)])
fi
else
AC_MSG_ERROR([$with_external_symbols_in_bundles is an unknown value for --with-external-symbols-in-bundles])
fi
@@ -578,14 +565,9 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_UNDEFINED_BEHAVIOR_SANITIZER],
# 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.
# In the ubsan case we have to link every binary with the C++-compiler as linker, because inherently
# the C-Compiler and the C++-compiler used as linker provide a different set of ubsan exports.
# Linking an executable with the C-compiler and one of its shared libraries with the C++-compiler
# leeds to unresolved symbols.
if test "x$TOOLCHAIN_TYPE" = "xclang" && test "x$OPENJDK_TARGET_OS" = "xaix"; then
UBSAN_CFLAGS="$UBSAN_CFLAGS -DLLVM_SYMBOLIZER=$(dirname $(dirname $CC))/tools/ibm-llvm-symbolizer"
UBSAN_LDFLAGS="$UBSAN_LDFLAGS -Wl,-bbigtoc"
LD="$LDCXX"
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],
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, 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
-2
View File
@@ -304,8 +304,6 @@ AC_DEFUN([LIB_SETUP_HSDIS_BINUTILS],
# If we have libsframe add it.
if test -e $BINUTILS_INSTALL_DIR/lib/libsframe.a; then
HSDIS_LIBS="$HSDIS_LIBS $BINUTILS_INSTALL_DIR/lib/libsframe.a"
elif test -e $BINUTILS_INSTALL_DIR/lib64/libsframe.a; then
HSDIS_LIBS="$HSDIS_LIBS $BINUTILS_INSTALL_DIR/lib64/libsframe.a"
fi
AC_CHECK_LIB(z, deflate, [ HSDIS_LIBS="$HSDIS_LIBS -lz" ], AC_MSG_ERROR([libz not found]))
else
+2 -2
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2018, 2026, 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=8.2.1
JTREG_MINIMUM_VERSION=7.5.2
GTEST_MINIMUM_VERSION=1.14.0
################################################################################
+9 -5
View File
@@ -42,12 +42,12 @@ m4_include([lib-tests.m4])
AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
[
# Check if X11 is needed
if test "x$OPENJDK_TARGET_OS" = xwindows ||
test "x$OPENJDK_TARGET_OS" = xmacosx ||
test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
# No X11 support on windows or macosx
NEEDS_LIB_X11=false
else
# All other instances need X11 for libawt.
# All other instances need X11, even if building headless only, libawt still
# needs X11 headers.
NEEDS_LIB_X11=true
fi
@@ -136,8 +136,12 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
BASIC_JVM_LIBS="$BASIC_JVM_LIBS $LIBPTHREAD"
fi
# librt - for timers (timer_* functions)
# librt for legacy clock_gettime
if test "x$OPENJDK_TARGET_OS" = xlinux; then
# Hotspot needs to link librt to get the clock_* functions.
# But once our supported minimum build and runtime platform
# has glibc 2.17, this can be removed as the functions are
# in libc.
BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lrt"
fi
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, 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
+19 -29
View File
@@ -386,22 +386,9 @@ CAPSTONE_ARCH_AARCH64_NAME := @CAPSTONE_ARCH_AARCH64_NAME@
# it in sync.
BOOT_JDK := @BOOT_JDK@
EXTERNAL_BUILDJDK_PATH := @EXTERNAL_BUILDJDK_PATH@
ifneq ($(EXTERNAL_BUILDJDK_PATH), )
EXTERNAL_BUILDJDK := true
CREATE_BUILDJDK := false
BUILD_JDK := $(EXTERNAL_BUILDJDK_PATH)
else
EXTERNAL_BUILDJDK := false
ifeq ($(COMPILE_TYPE), cross)
CREATE_BUILDJDK := true
BUILD_JDK := $(BUILDJDK_OUTPUTDIR)/jdk
else
CREATE_BUILDJDK := false
BUILD_JDK := $(JDK_OUTPUTDIR)
endif
endif
BUILD_JDK := @BUILD_JDK@
CREATE_BUILDJDK := @CREATE_BUILDJDK@
EXTERNAL_BUILDJDK := @EXTERNAL_BUILDJDK@
# Whether the boot jdk jar supports --date=TIMESTAMP
BOOT_JDK_JAR_SUPPORTS_DATE := @BOOT_JDK_JAR_SUPPORTS_DATE@
@@ -504,6 +491,7 @@ CXX_VERSION_NUMBER := @CXX_VERSION_NUMBER@
# Legacy support
HOTSPOT_TOOLCHAIN_TYPE := @HOTSPOT_TOOLCHAIN_TYPE@
CC_OUT_OPTION := @CC_OUT_OPTION@
AS_NON_ASM_EXTENSION_OPTION := @AS_NON_ASM_EXTENSION_OPTION@
# Flags used for overriding the default opt setting for a C/C++ source file.
@@ -513,14 +501,12 @@ C_O_FLAG_HI := @C_O_FLAG_HI@
C_O_FLAG_NORM := @C_O_FLAG_NORM@
C_O_FLAG_NONE := @C_O_FLAG_NONE@
C_O_FLAG_SIZE := @C_O_FLAG_SIZE@
C_O_FLAG_LTO := @C_O_FLAG_LTO@
CXX_O_FLAG_HIGHEST_JVM := @CXX_O_FLAG_HIGHEST_JVM@
CXX_O_FLAG_HIGHEST := @CXX_O_FLAG_HIGHEST@
CXX_O_FLAG_HI := @CXX_O_FLAG_HI@
CXX_O_FLAG_NORM := @CXX_O_FLAG_NORM@
CXX_O_FLAG_NONE := @CXX_O_FLAG_NONE@
CXX_O_FLAG_SIZE := @CXX_O_FLAG_SIZE@
CXX_O_FLAG_LTO := @CXX_O_FLAG_LTO@
GENDEPS_FLAGS := @GENDEPS_FLAGS@
@@ -589,9 +575,6 @@ LDFLAGS_CXX_JDK := @LDFLAGS_CXX_JDK@
# LDFLAGS specific to partial linking.
LDFLAGS_CXX_PARTIAL_LINKING := @LDFLAGS_CXX_PARTIAL_LINKING@
# LDFLAGS specific to link time optimization
LDFLAGS_LTO := @LDFLAGS_LTO@
# Sometimes a different linker is needed for c++ libs
LDCXX := @LDCXX@
# The flags for linking libstdc++ linker.
@@ -641,8 +624,17 @@ ASFLAGS_DEBUG_SYMBOLS := @ASFLAGS_DEBUG_SYMBOLS@
# Compress (or not) jars
COMPRESS_JARS := @COMPRESS_JARS@
# Options to linker to specify the library name.
# (Note absence of := assignment, because we do not want to evaluate the macro body here)
SET_SHARED_LIBRARY_NAME = @SET_SHARED_LIBRARY_NAME@
SHARED_LIBRARY_FLAGS := @SHARED_LIBRARY_FLAGS@
# Set origin using the linker, ie use the relative path to the dependent library to find the dependencies.
# (Note absence of := assignment, because we do not want to evaluate the macro body here)
SET_SHARED_LIBRARY_ORIGIN = @SET_SHARED_LIBRARY_ORIGIN@
SET_EXECUTABLE_ORIGIN = @SET_EXECUTABLE_ORIGIN@
LIBRARY_PREFIX := @LIBRARY_PREFIX@
SHARED_LIBRARY_SUFFIX := @SHARED_LIBRARY_SUFFIX@
STATIC_LIBRARY_SUFFIX := @STATIC_LIBRARY_SUFFIX@
@@ -665,8 +657,8 @@ JAVA_CMD := @JAVA@
JAVAC_CMD := @JAVAC@
JAVADOC_CMD := @JAVADOC@
JAR_CMD := @JAR@
JLINK_CMD := @FIXPATH@ $(BUILD_JDK)/bin/jlink
JMOD_CMD := @FIXPATH@ $(BUILD_JDK)/bin/jmod
JLINK_CMD := @JLINK@
JMOD_CMD := @JMOD@
# These variables are meant to be used. They are defined with = instead of := to make
# it possible to override only the *_CMD variables.
JAVA = $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
@@ -906,14 +898,12 @@ JDK_MACOSX_BUNDLE_DIR = $(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR)
JRE_MACOSX_BUNDLE_DIR = $(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR)
JDK_MACOSX_BUNDLE_DIR_SIGNED = $(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR_SIGNED)
JRE_MACOSX_BUNDLE_DIR_SIGNED = $(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR_SIGNED)
JDK_MACOSX_BUNDLE_TOP_SUBDIR = jdk-$(VERSION_NUMBER).jdk
JRE_MACOSX_BUNDLE_TOP_SUBDIR = jre-$(VERSION_NUMBER).jre
JDK_MACOSX_CONTENTS_SUBDIR = $(JDK_MACOSX_BUNDLE_TOP_SUBDIR)/Contents
JRE_MACOSX_CONTENTS_SUBDIR = $(JRE_MACOSX_BUNDLE_TOP_SUBDIR)/Contents
JDK_MACOSX_BUNDLE_TOP_DIR = jdk-$(VERSION_NUMBER).jdk
JRE_MACOSX_BUNDLE_TOP_DIR = jre-$(VERSION_NUMBER).jre
JDK_MACOSX_CONTENTS_SUBDIR = $(JDK_MACOSX_BUNDLE_TOP_DIR)/Contents
JRE_MACOSX_CONTENTS_SUBDIR = $(JRE_MACOSX_BUNDLE_TOP_DIR)/Contents
JDK_MACOSX_CONTENTS_DIR = $(JDK_MACOSX_BUNDLE_DIR)/$(JDK_MACOSX_CONTENTS_SUBDIR)
JRE_MACOSX_CONTENTS_DIR = $(JRE_MACOSX_BUNDLE_DIR)/$(JRE_MACOSX_CONTENTS_SUBDIR)
JDK_MACOSX_BUNDLE_TOP_DIR = $(JDK_MACOSX_BUNDLE_DIR)/$(JDK_MACOSX_BUNDLE_TOP_SUBDIR)
JRE_MACOSX_BUNDLE_TOP_DIR = $(JRE_MACOSX_BUNDLE_DIR)/$(JRE_MACOSX_BUNDLE_TOP_SUBDIR)
# Bundle names
ifneq ($(VERSION_BUILD), )
+13 -5
View File
@@ -276,6 +276,9 @@ AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
ORG_CFLAGS="$CFLAGS"
ORG_CXXFLAGS="$CXXFLAGS"
# autoconf magic only relies on PATH, so update it if tools dir is specified
OLD_PATH="$PATH"
if test "x$OPENJDK_BUILD_OS" = "xmacosx"; then
if test "x$XCODEBUILD" != x; then
XCODE_VERSION_OUTPUT=`"$XCODEBUILD" -version 2> /dev/null | $HEAD -n 1`
@@ -297,10 +300,9 @@ AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
fi
AC_SUBST(TOOLCHAIN_VERSION)
# For the microsoft toolchain the toolchain path needs to be added to the
# normal path, or the compiler will not work in some situations in later
# configure checks.
if test "x$TOOLCHAIN_TYPE" = "xmicrosoft" && test "x$TOOLCHAIN_PATH" != x; then
# Finally prepend TOOLCHAIN_PATH to the PATH, to allow --with-tools-dir to
# override all other locations.
if test "x$TOOLCHAIN_PATH" != x; then
export PATH=$TOOLCHAIN_PATH:$PATH
fi
])
@@ -308,6 +310,13 @@ AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
# Restore path, etc
AC_DEFUN_ONCE([TOOLCHAIN_POST_DETECTION],
[
# Restore old path, except for the microsoft toolchain, which requires the
# toolchain path to remain in place. Otherwise the compiler will not work in
# some situations in later configure checks.
if test "x$TOOLCHAIN_TYPE" != "xmicrosoft"; then
PATH="$OLD_PATH"
fi
# Restore the flags to the user specified values.
# This is necessary since AC_PROG_CC defaults CFLAGS to "-g -O2"
CFLAGS="$ORG_CFLAGS"
@@ -516,7 +525,6 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_LD_VERSION],
if [ [[ "$LINKER_VERSION_STRING" == *gold* ]] ]; then
[ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
$SED -e 's/.* \([0-9][0-9]*\(\.[0-9][0-9]*\)*\).*) .*/\1/'` ]
$1_TYPE=gold
else
[ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
$SED -e 's/.* \([0-9][0-9]*\(\.[0-9][0-9]*\)*\).*/\1/'` ]
+1 -16
View File
@@ -25,7 +25,7 @@
################################################################################
# The order of these defines the priority by which we try to find them.
VALID_VS_VERSIONS="2022 2019 2026"
VALID_VS_VERSIONS="2022 2019"
VS_DESCRIPTION_2019="Microsoft Visual Studio 2019"
VS_VERSION_INTERNAL_2019=142
@@ -57,21 +57,6 @@ VS_SDK_PLATFORM_NAME_2022=
VS_SUPPORTED_2022=true
VS_TOOLSET_SUPPORTED_2022=true
VS_DESCRIPTION_2026="Microsoft Visual Studio 2026"
VS_VERSION_INTERNAL_2026=145
VS_MSVCR_2026=vcruntime140.dll
VS_VCRUNTIME_1_2026=vcruntime140_1.dll
VS_MSVCP_2026=msvcp140.dll
VS_ENVVAR_2026="VS180COMNTOOLS"
VS_USE_UCRT_2026="true"
VS_VS_INSTALLDIR_2026="Microsoft Visual Studio/18"
VS_EDITIONS_2026="BuildTools Community Professional Enterprise"
VS_SDK_INSTALLDIR_2026=
VS_VS_PLATFORM_NAME_2026="v145"
VS_SDK_PLATFORM_NAME_2026=
VS_SUPPORTED_2026=true
VS_TOOLSET_SUPPORTED_2026=true
################################################################################
AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT],
+6 -6
View File
@@ -458,18 +458,17 @@ AC_DEFUN([UTIL_LOOKUP_PROGS],
################################################################################
# Call UTIL_SETUP_TOOL with AC_CHECK_TOOLS to locate the tool. This will look
# first for tools using the cross-compilation prefix, and then for tools without
# this prefix. For each of these name variants, it will look first in the
# toolchain path, and then in the normal path.
# first for cross-compilation tools.
# $1: variable to set
# $2: executable name (or list of names) to look for
# $3: [path]
AC_DEFUN([UTIL_LOOKUP_TOOLCHAIN_PROGS],
[
if test "x$ac_tool_prefix" = x; then
UTIL_LOOKUP_PROGS($1, $2, [$TOOLCHAIN_PATH:$PATH])
UTIL_LOOKUP_PROGS($1, $2, $3)
else
prefixed_names=$(for name in $2; do echo ${ac_tool_prefix}${name} $name; done)
UTIL_LOOKUP_PROGS($1, $prefixed_names, [$TOOLCHAIN_PATH:$PATH])
UTIL_LOOKUP_PROGS($1, $prefixed_names, $3)
fi
])
@@ -498,9 +497,10 @@ AC_DEFUN([UTIL_REQUIRE_PROGS],
# Like UTIL_LOOKUP_PROGS but fails if no tool was found.
# $1: variable to set
# $2: executable name (or list of names) to look for
# $3: [path]
AC_DEFUN([UTIL_REQUIRE_TOOLCHAIN_PROGS],
[
UTIL_LOOKUP_TOOLCHAIN_PROGS($1, $2)
UTIL_LOOKUP_TOOLCHAIN_PROGS($1, $2, $3)
UTIL_CHECK_NONEMPTY($1)
])
+6 -21
View File
@@ -82,8 +82,6 @@ ifeq ($(INCLUDE), true)
# INFO : Message to display at LOG=info level when running command (optional)
# WARN : Message to display at LOG=warn level when running command (optional)
# DEPS : Dependencies for the execution to take place
# DRYRUN : Set to true to perform everything but executing the command \
# (defaults to false, primarily intended for debugging)
#
# Setup make rules for copying files, with an option to do more complex
@@ -148,12 +146,9 @@ define SetupExecuteBody
$1_INFO := Running commands for $1
endif
$1_VARDEPS := $$($1_COMMAND) $$($1_PRE_COMMAND) $$($1_POST_COMMAND)
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$($1_BASE)_exec.vardeps)
ifneq ($$($1_PRE_COMMAND), )
$$($1_PRE_MARKER): $$($1_DEPS) $$($1_VARDEPS_FILE)
$$($1_PRE_MARKER): $$($1_DEPS)
ifneq ($$($1_WARN), )
$$(call LogWarn, $$($1_WARN))
endif
@@ -166,20 +161,15 @@ define SetupExecuteBody
$$(TOUCH) $$@
$$($1_EXEC_RESULT): $$($1_PRE_MARKER)
ifneq ($$($1_DRYRUN), true)
$$(call ExecuteWithLog, $$($1_BASE)_exec, \
cd $$($1_WORKING_DIR) && $$($1_COMMAND))
else
$$(call LogWarn, DRYRUN enabled for $1, not actually running command)
$$(TOUCH) $$@
endif
$$(call ExecuteWithLog, $$($1_BASE)_exec, \
cd $$($1_WORKING_DIR) && $$($1_COMMAND))
ifeq ($$($1_EXEC_RESULT), $$($1_EXEC_MARKER))
$$(TOUCH) $$@
endif
$1 := $$($1_PRE_MARKER) $$($1_EXEC_RESULT)
else
$$($1_EXEC_RESULT): $$($1_DEPS) $$($1_VARDEPS_FILE)
$$($1_EXEC_RESULT): $$($1_DEPS)
ifneq ($$($1_WARN), )
$$(call LogWarn, $$($1_WARN))
endif
@@ -187,13 +177,8 @@ define SetupExecuteBody
$$(call LogInfo, $$($1_INFO))
endif
$$(call MakeDir, $$(call EncodeSpace, $$($1_WORKING_DIR)) $$(call EncodeSpace, $$($1_SUPPORT_DIR)) $$(call EncodeSpace, $$($1_OUTPUT_DIR)))
ifneq ($$($1_DRYRUN), true)
$$(call ExecuteWithLog, $$($1_BASE)_exec, \
cd $$($1_WORKING_DIR) && $$($1_COMMAND))
else
$$(call LogWarn, DRYRUN enabled for $1, not actually running command)
$$(TOUCH) $$@
endif
$$(call ExecuteWithLog, $$($1_BASE)_exec, \
cd $$($1_WORKING_DIR) && $$($1_COMMAND))
ifeq ($$($1_EXEC_RESULT), $$($1_EXEC_MARKER))
$$(TOUCH) $$@
endif
+2 -43
View File
@@ -30,47 +30,6 @@ ifeq ($(INCLUDE), true)
include NativeCompilation.gmk
ifeq ($(call isCompiler, gcc), true)
# --disable-new-dtags forces use of RPATH instead of RUNPATH for rpaths.
# This protects internal library dependencies within the JDK from being
# overridden using LD_LIBRARY_PATH. See JDK-8326891 for more information.
SetExecutableOrigin = \
-Wl,-rpath,\$(DOLLAR)ORIGIN$1 -Wl,--disable-new-dtags
SetSharedLibraryOrigin = \
-Wl,-z,origin -Wl,-rpath,\$(DOLLAR)ORIGIN$1 -Wl,--disable-new-dtags
else ifeq ($(call isCompiler, clang), true)
ifeq ($(call isTargetOs, macosx), true)
SetExecutableOrigin = \
-Wl,-rpath,@loader_path$(or $1,/.)
SetSharedLibraryOrigin = \
-Wl,-rpath,@loader_path$(or $1,/.)
else ifeq ($(call isTargetOs, aix), true)
SetExecutableOrigin =
SetSharedLibraryOrigin =
else
ifeq ($(call isTargetOs, linux), true)
SetExecutableOrigin = \
-Wl,-rpath,\$(DOLLAR)ORIGIN$1 -Wl,--disable-new-dtags
else
SetExecutableOrigin = \
-Wl,-rpath,\$(DOLLAR)ORIGIN$1
endif
ifeq ($(call isTargetOs, arm), true)
SetSharedLibraryOrigin = \
-Wl,-rpath,\$(DOLLAR)ORIGIN$1
else
SetSharedLibraryOrigin = \
-Wl,-z,origin -Wl,-rpath,\$(DOLLAR)ORIGIN$1
endif
endif
else ifeq ($(call isCompiler, microsoft), true)
SetExecutableOrigin =
SetSharedLibraryOrigin =
else
$(error Unknown toolchain)
endif
FindSrcDirsForComponent += \
$(call uniq, $(wildcard \
$(TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS)/native/$(strip $2) \
@@ -485,9 +444,9 @@ define SetupJdkNativeCompilationBody
ifneq ($$($1_LD_SET_ORIGIN), false)
ifeq ($$($1_TYPE), EXECUTABLE)
$1_LDFLAGS += $$(call SetExecutableOrigin)
$1_LDFLAGS += $$(call SET_EXECUTABLE_ORIGIN)
else
$1_LDFLAGS += $$(call SetSharedLibraryOrigin)
$1_LDFLAGS += $$(call SET_SHARED_LIBRARY_ORIGIN)
endif
endif
# APPEND_LDFLAGS, if it exists, must be set after the origin flags
-1
View File
@@ -98,7 +98,6 @@ include native/Paths.gmk
# SYSROOT_CFLAGS the compiler flags for using the specific sysroot
# SYSROOT_LDFLAGS the linker flags for using the specific sysroot
# OPTIMIZATION sets optimization level to NONE, LOW, HIGH, HIGHEST, HIGHEST_JVM, SIZE
# LINK_TIME_OPTIMIZATION if set to true, enables link time optimization
# DISABLED_WARNINGS_<toolchain> Disable the given warnings for the specified toolchain
# DISABLED_WARNINGS_<toolchain>_<OS> Disable the given warnings for the specified
# toolchain and target OS
+1 -1
View File
@@ -114,7 +114,7 @@ EscapeDollar = $(subst $$,\$$,$(subst \$$,$$,$(strip $1)))
################################################################################
# This macro works just like EscapeDollar above, but for #.
EscapeHash = $(subst $(HASH),\$(HASH),$(subst \$(HASH),$(HASH),$(strip $1)))
EscapeHash = $(subst \#,\\\#,$(subst \\\#,\#,$(strip $1)))
################################################################################
# This macro translates $ into $$ to protect the string from make itself.
+8 -56
View File
@@ -43,9 +43,6 @@ LAUNCHER_CFLAGS += -I$(TOPDIR)/src/java.base/share/native/launcher \
MACOSX_PLIST_DIR := $(TOPDIR)/src/java.base/macosx/native/launcher
JAVA_MANIFEST := $(TOPDIR)/src/java.base/windows/native/launcher/java.manifest
INCLUDED_LAUNCHERS_FILE := $(SUPPORT_OUTPUTDIR)/modules_static-launchers/$(MODULE)/module-included-launchers.txt
INCLUDED_LAUNCHERS :=
################################################################################
# Build standard launcher.
@@ -77,29 +74,18 @@ define SetupBuildLauncherBody
$1_MAIN_MODULE := $(MODULE)
$1_RELAUNCHER_ARGUMENTS :=
ifneq ($$($1_MAIN_CLASS), )
$1_JAVA_ARGS += -Xms8m
$1_LAUNCHER_CLASS := -m $$($1_MAIN_MODULE)/$$($1_MAIN_CLASS)
endif
ifeq ($$($1_ENABLE_ARG_FILES), true)
$1_CFLAGS += -DDISABLE_ARGFILE=JNI_FALSE
else
$1_CFLAGS += -DDISABLE_ARGFILE=JNI_TRUE
# This must be the first argument given, if it should be present
$1_RELAUNCHER_ARGUMENTS += -DjavaLauncherArgFiles=false
endif
ifeq ($$($1_EXPAND_CLASSPATH_WILDCARDS), true)
$1_CFLAGS += -DCLASSPATH_WILDCARDS=JNI_TRUE
else
$1_CFLAGS += -DCLASSPATH_WILDCARDS=JNI_FALSE
$1_RELAUNCHER_ARGUMENTS += -DjavaLauncherWildcards=false
$1_CFLAGS += -DEXPAND_CLASSPATH_WILDCARDS
endif
$1_RELAUNCHER_ARGUMENTS += -DjavaLauncherProgname=$1
ifeq ($$($1_ENABLE_ARG_FILES), true)
$1_CFLAGS += -DENABLE_ARG_FILES
endif
ifeq ($(call isTargetOs, windows), true)
ifeq ($$($1_WINDOWS_JAVAW), true)
@@ -108,14 +94,9 @@ define SetupBuildLauncherBody
endif
ifneq ($$($1_JAVA_ARGS), )
$1_PREFIXED_JAVA_ARGS := $$(addprefix -J, $$($1_JAVA_ARGS)) \
$$($1_LAUNCHER_CLASS)
$1_JAVA_ARGS_STR := '{ $$(strip $$(foreach a, $$($1_PREFIXED_JAVA_ARGS), \
"$$a"$(COMMA) )) }'
$1_JAVA_ARGS_STR := '{ $$(strip $$(foreach a, \
$$(addprefix -J, $$($1_JAVA_ARGS)) $$($1_LAUNCHER_CLASS), "$$a"$(COMMA) )) }'
$1_CFLAGS += -DJAVA_ARGS=$$($1_JAVA_ARGS_STR)
# To preserve spaces, substitute them with a hopefully unique pattern
$1_RELAUNCHER_ARGUMENTS += \
-DjavaLauncherArgs=$$(subst $$(SPACE),||||,$$($1_PREFIXED_JAVA_ARGS))
endif
ifeq ($(call isTargetOs, macosx), true)
@@ -175,8 +156,8 @@ define SetupBuildLauncherBody
DISABLED_WARNINGS_gcc := unused-function unused-variable, \
DISABLED_WARNINGS_clang := unused-function, \
LDFLAGS := $$($1_LDFLAGS), \
LDFLAGS_linux := $$(call SetExecutableOrigin,/../lib), \
LDFLAGS_macosx := $$(call SetExecutableOrigin,/../lib), \
LDFLAGS_linux := $$(call SET_EXECUTABLE_ORIGIN,/../lib), \
LDFLAGS_macosx := $$(call SET_EXECUTABLE_ORIGIN,/../lib), \
LDFLAGS_FILTER_OUT := $$($1_LDFLAGS_FILTER_OUT), \
JDK_LIBS := $$($1_JDK_LIBS), \
JDK_LIBS_windows := $$($1_JDK_LIBS_windows), \
@@ -191,28 +172,8 @@ define SetupBuildLauncherBody
))
$1 += $$(BUILD_LAUNCHER_$1)
$1_RELAUNCHER_ARGUMENTS_FILE := \
$$(SUPPORT_OUTPUTDIR)/static-native/relaunchers/$$(MODULE)/$1-relauncher-arguments.txt
$1_VARDEPS := $$($1_RELAUNCHER_ARGUMENTS)
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
$$($1_RELAUNCHER_ARGUMENTS_FILE).vardeps)
$$($1_RELAUNCHER_ARGUMENTS_FILE):
$$(call MakeDir, $$(@D))
$$(ECHO) '$$($1_RELAUNCHER_ARGUMENTS)' > $$@
$1 += $$($1_RELAUNCHER_ARGUMENTS_FILE)
TARGETS += $$($1)
# Record the fact that this launcher is part of the current module.
INCLUDED_LAUNCHERS += $1
# Add a dependency from this launcher to the launcher list
$$(INCLUDED_LAUNCHERS_FILE): $$($1)
$$(BUILD_LAUNCHER_$1): $$(BUILD_PLIST_$1)
ifeq ($(call isTargetOs, macosx), true)
@@ -281,14 +242,5 @@ endif
################################################################################
# We need to keep track of which launchers are created by this module. This
# information is required for static builds, to know which relaunchers to
# create. The file module-included-launchers.txt is then read in StaticLibs.gmk.
$(INCLUDED_LAUNCHERS_FILE):
$(call MakeDir, $(@D))
$(ECHO) $(INCLUDED_LAUNCHERS) > $@
TARGETS += $(INCLUDED_LAUNCHERS_FILE)
endif # include guard
include MakeIncludeEnd.gmk
+2 -10
View File
@@ -93,14 +93,6 @@ DEPENDENCY_TARGET_SED_PATTERN := \
-e 's/$$$$/ :/' \
#
################################################################################
# Setup compiler-specific argument to specify output file
ifeq ($(call isCompiler, microsoft), true)
CC_OUT_OPTION := -Fo
else
CC_OUT_OPTION := -o$(SPACE)
endif
################################################################################
# Create the recipe needed to compile a single native source file.
#
@@ -342,7 +334,7 @@ define CreateWindowsResourceFile
$$(call LogInfo, Compiling resource $$(notdir $$($1_VERSIONINFO_RESOURCE)) (for $$($1_BASENAME)))
$$(call MakeDir, $$(@D) $$($1_OBJECT_DIR))
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
$$($1_RC) $$($1_RCFLAGS) $$($1_SYSROOT_CFLAGS) -Fo$$@ \
$$($1_RC) $$($1_RCFLAGS) $$($1_SYSROOT_CFLAGS) $(CC_OUT_OPTION)$$@ \
$$($1_VERSIONINFO_RESOURCE) 2>&1 ))
# Windows RC compiler does not support -showIncludes, so we mis-use CL
# for this. Filter out RC specific arguments that are unknown to CL.
@@ -352,7 +344,7 @@ define CreateWindowsResourceFile
$$(call ExecuteWithLog, $$($1_RES_DEPS_FILE)$(OBJ_SUFFIX), \
$$($1_CC) $$(filter-out -l%, $$($1_RCFLAGS)) \
$$($1_SYSROOT_CFLAGS) -showIncludes -nologo -TC \
-Fo$$($1_RES_DEPS_FILE)$(OBJ_SUFFIX) -P -Fi$$($1_RES_DEPS_FILE).pp \
$(CC_OUT_OPTION)$$($1_RES_DEPS_FILE)$(OBJ_SUFFIX) -P -Fi$$($1_RES_DEPS_FILE).pp \
$$($1_VERSIONINFO_RESOURCE)) 2>&1 \
| $(TR) -d '\r' | $(GREP) -v -e "^Note: including file:" \
-e "^$$(notdir $$($1_VERSIONINFO_RESOURCE))$$$$" || test "$$$$?" = "1" ; \
-17
View File
@@ -194,11 +194,6 @@ define SetupCompilerFlags
$1_EXTRA_CXXFLAGS += $(CFLAGS_WARNINGS_ARE_ERRORS)
endif
ifeq (true, $$($1_LINK_TIME_OPTIMIZATION))
$1_EXTRA_CFLAGS += $(C_O_FLAG_LTO)
$1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_LTO)
endif
ifeq (NONE, $$($1_OPTIMIZATION))
$1_OPT_CFLAGS := $(C_O_FLAG_NONE)
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_NONE)
@@ -227,18 +222,6 @@ define SetupLinkerFlags
# Pickup extra OPENJDK_TARGET_OS_TYPE, OPENJDK_TARGET_OS and TOOLCHAIN_TYPE
# dependent variables for LDFLAGS and LIBS, and additionally the pair dependent
# TOOLCHAIN_TYPE plus OPENJDK_TARGET_OS
ifeq ($$($1_LINK_TIME_OPTIMIZATION), true)
$1_EXTRA_LDFLAGS += $(LDFLAGS_LTO)
# Instruct the ld64 linker not to delete the temporary object file
# generated during Link Time Optimization
ifeq ($(call isTargetOs, macosx), true)
$1_EXTRA_LDFLAGS += -Wl,-object_path_lto,$$($1_OBJECT_DIR)/$$($1_NAME)_lto_helper.o
endif
ifeq ($(TOOLCHAIN_TYPE), microsoft)
$1_EXTRA_LDFLAGS += -LTCGOUT:$$($1_OBJECT_DIR)/$$($1_NAME).iobj
endif
endif
$1_EXTRA_LDFLAGS += $$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS)) \
$$($1_LDFLAGS_$(TOOLCHAIN_TYPE)) $$($1_LDFLAGS_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS))
$1_EXTRA_LIBS += $$($1_LIBS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LIBS_$(OPENJDK_TARGET_OS)) \
+1 -21
View File
@@ -50,26 +50,6 @@ GetEntitlementsFile = \
$(if $(wildcard $f), $f, $(DEFAULT_ENTITLEMENTS_FILE)) \
)
ifeq ($(call isCompiler, gcc), true)
SetSharedLibraryName = \
-Wl,-soname=$1
else ifeq ($(call isCompiler, clang), true)
ifeq ($(call isTargetOs, macosx), true)
SetSharedLibraryName = \
-Wl,-install_name,@rpath/$1
else ifeq ($(call isTargetOs, aix), true)
SetSharedLibraryName =
else
# Default works for linux, might work on other platforms as well.
SetSharedLibraryName = \
-Wl,-soname=$1
endif
else ifeq ($(call isCompiler, microsoft), true)
SetSharedLibraryName =
else
$(error Unknown toolchain)
endif
################################################################################
define SetupLinking
# Unless specifically set, stripping should only happen if symbols are also
@@ -151,7 +131,7 @@ define CreateDynamicLibraryOrExecutable
# A shared dynamic library or an executable binary has been specified
ifeq ($$($1_TYPE), LIBRARY)
# Generating a dynamic library.
$1_EXTRA_LDFLAGS += $$(call SetSharedLibraryName,$$($1_BASENAME))
$1_EXTRA_LDFLAGS += $$(call SET_SHARED_LIBRARY_NAME,$$($1_BASENAME))
endif
ifeq ($(MACOSX_CODESIGN_MODE), hardened)
+12 -12
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2020, 2026, 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=8.2.1+1
JTREG_VERSION=7.5.2+1
LINUX_X64_BOOT_JDK_EXT=tar.gz
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk25/bd75d5f9689641da8e1daabeccb5528b/36/GPL/openjdk-25_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_SHA256=59cdcaf255add4721de38eb411d4ecfe779356b61fb671aee63c7dec78054c2b
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/temurin25-binaries/releases/download/jdk-25%2B36/OpenJDK25U-jdk_x64_alpine-linux_hotspot_25_36.tar.gz
ALPINE_LINUX_X64_BOOT_JDK_SHA256=637e47474d411ed86134f413af7d5fef4180ddb0bf556347b7e74a88cf8904c8
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/jdk25/bd75d5f9689641da8e1daabeccb5528b/36/GPL/openjdk-25_macos-aarch64_bin.tar.gz
MACOS_AARCH64_BOOT_JDK_SHA256=2006337bf326fdfdf6117081751ba38c1c8706d63419ecac7ff102ff7c776876
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/jdk25/bd75d5f9689641da8e1daabeccb5528b/36/GPL/openjdk-25_macos-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_SHA256=47482ad9888991ecac9b2bcc131e2b53ff78aff275104cef85f66252308e8a09
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/jdk25/bd75d5f9689641da8e1daabeccb5528b/36/GPL/openjdk-25_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_SHA256=85bcc178461e2cb3c549ab9ca9dfa73afd54c09a175d6510d0884071867137d3
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
+7 -7
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2026, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 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
@@ -387,8 +387,8 @@ var getJibProfilesCommon = function (input, data) {
};
};
common.boot_jdk_version = "25";
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" : "");
@@ -1174,9 +1174,9 @@ var getJibProfilesDependencies = function (input, common) {
jtreg: {
server: "jpg",
product: "jtreg",
version: "8.2.1",
version: "7.5.2",
build_number: "1",
file: "bundles/jtreg-8.2.1+1.zip",
file: "bundles/jtreg-7.5.2+1.zip",
environment_name: "JT_HOME",
environment_path: input.get("jtreg", "home_path") + "/bin",
configure_args: "--with-jtreg=" + input.get("jtreg", "home_path"),
@@ -1192,8 +1192,8 @@ var getJibProfilesDependencies = function (input, common) {
server: "jpg",
product: "jcov",
version: "3.0",
build_number: "5",
file: "bundles/jcov-3.0+5.zip",
build_number: "3",
file: "bundles/jcov-3.0+3.zip",
environment_name: "JCOV_HOME",
},
+5 -5
View File
@@ -26,17 +26,17 @@
# Default version, product, and vendor information to use,
# unless overridden by configure
DEFAULT_VERSION_FEATURE=27
DEFAULT_VERSION_FEATURE=26
DEFAULT_VERSION_INTERIM=0
DEFAULT_VERSION_UPDATE=0
DEFAULT_VERSION_PATCH=0
DEFAULT_VERSION_EXTRA1=0
DEFAULT_VERSION_EXTRA2=0
DEFAULT_VERSION_EXTRA3=0
DEFAULT_VERSION_DATE=2026-09-15
DEFAULT_VERSION_CLASSFILE_MAJOR=71 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
DEFAULT_VERSION_DATE=2026-03-17
DEFAULT_VERSION_CLASSFILE_MAJOR=70 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
DEFAULT_VERSION_CLASSFILE_MINOR=0
DEFAULT_VERSION_DOCS_API_SINCE=11
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="25 26 27"
DEFAULT_JDK_SOURCE_TARGET_VERSION=27
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="24 25 26"
DEFAULT_JDK_SOURCE_TARGET_VERSION=26
DEFAULT_PROMOTED_VERSION_PRE=ea
+5
View File
@@ -32,6 +32,11 @@
547d 92ca
53da 9b7e
446e f86f
#
# we should use this one instead of the 4260<-ff0d
#4260 2212
4260 ff0d
#
426A 00A6
43A1 301C
444A 2014
+9 -1
View File
@@ -25,6 +25,13 @@
# 4260 <--> 2212
# 426A <--> 00A6
#
# Warning:
# "our old" implementation seems agree with above "new" mappings
# except the entries 4260 <-> 2212. To keep the "compatbility"
# with the "old" implementation, I changed the entries "temporarily"
# 4260 <-> 2212
# 4260 <- ff0d
#
00 0000
01 0001
02 0002
@@ -400,7 +407,8 @@ FF 009F
425D FF09
425E FF1B
425F FFE2
4260 FF0D
#4260 FF0D
4260 2212
4261 FF0F
426A FFE4
426B FF0C
+1 -1
View File
@@ -1,4 +1,4 @@
UNICODE LICENSE V3
UNICODE LICENSE V3
COPYRIGHT AND PERMISSION NOTICE
-2
View File
@@ -45,8 +45,6 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="h23" description="Hour system using 023; 'H' in patterns" since="28" />
<type name="h11" description="Hour system using 011; 'K' in patterns" since="28" />
<type name="h24" description="Hour system using 124; 'k' in patterns" since="28" />
<type name="c12" description="Best 12-hour cycle for locale (h11 or h12)" since="48" deprecated="true" /> <!-- Technical Preview -->
<type name="c24" description="Best 24-hour cycle for locale (h23 or h24)" since="48" deprecated="true" /> <!-- Technical Preview -->
</key>
</keyword>
</ldmlBCP47>
-1
View File
@@ -105,7 +105,6 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="thai" description="Thai digits"/>
<type name="tirh" description="Tirhuta digits" since="28"/>
<type name="tibt" description="Tibetan digits"/>
<type name="tols" description="Tolong Siki digits" since="48"/>
<type name="traditio" description="Traditional numerals — may be algorithmic" alias="traditional" since="21"/>
<type name="vaii" description="Vai digits" since="21"/>
<type name="wara" description="Warang Citi digits" since="28"/>
+10 -11
View File
@@ -17,14 +17,14 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="aiaxa" description="Anguilla" alias="America/Anguilla"/>
<type name="altia" description="Tirane, Albania" alias="Europe/Tirane"/>
<type name="amevn" description="Yerevan, Armenia" alias="Asia/Yerevan"/>
<type name="ancur" description="Curaçao" alias="America/Curacao" region="CW"/>
<type name="ancur" description="Curaçao" alias="America/Curacao"/>
<type name="aolad" description="Luanda, Angola" alias="Africa/Luanda"/>
<type name="aqams" description="Amundsen-Scott Station, South Pole" deprecated="true" preferred="aqmcm"/>
<type name="aqams" description="Amundsen-Scott Station, South Pole" deprecated="true" preferred="nzakl"/>
<type name="aqcas" description="Casey Station, Bailey Peninsula" alias="Antarctica/Casey"/>
<type name="aqdav" description="Davis Station, Vestfold Hills" alias="Antarctica/Davis"/>
<type name="aqddu" description="Dumont d'Urville Station, Terre Adélie" alias="Antarctica/DumontDUrville"/>
<type name="aqmaw" description="Mawson Station, Holme Bay" alias="Antarctica/Mawson"/>
<type name="aqmcm" description="McMurdo Station, Ross Island" alias="Antarctica/McMurdo Antarctica/South_Pole"/>
<type name="aqmcm" description="McMurdo Station, Ross Island" alias="Antarctica/McMurdo"/>
<type name="aqplm" description="Palmer Station, Anvers Island" alias="Antarctica/Palmer"/>
<type name="aqrot" description="Rothera Station, Adelaide Island" alias="Antarctica/Rothera"/>
<type name="aqsyw" description="Syowa Station, East Ongul Island" alias="Antarctica/Syowa"/>
@@ -130,7 +130,6 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="chzrh" description="Zurich, Switzerland" alias="Europe/Zurich"/>
<type name="ciabj" description="Abidjan, Côte d'Ivoire" alias="Africa/Abidjan"/>
<type name="ckrar" description="Rarotonga, Cook Islands" alias="Pacific/Rarotonga"/>
<type name="clcxq" description="Aysén Region, Chile" alias="America/Coyhaique" since="48"/>
<type name="clipc" description="Easter Island, Chile" alias="Pacific/Easter Chile/EasterIsland"/>
<type name="clpuq" description="Punta Arenas, Chile" alias="America/Punta_Arenas" since="31"/>
<type name="clscl" description="Santiago, Chile" alias="America/Santiago Chile/Continental"/>
@@ -168,7 +167,7 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="est5edt" description="POSIX style time zone for US Eastern Time" deprecated="true" preferred="usnyc"/>
<type name="etadd" description="Addis Ababa, Ethiopia" alias="Africa/Addis_Ababa"/>
<type name="fihel" description="Helsinki, Finland" alias="Europe/Helsinki"/>
<type name="fimhq" description="Mariehamn, Åland, Finland" alias="Europe/Mariehamn" region="AX"/>
<type name="fimhq" description="Mariehamn, Åland, Finland" alias="Europe/Mariehamn"/>
<type name="fjsuv" description="Fiji" alias="Pacific/Fiji"/>
<type name="fkpsy" description="Stanley, Falkland Islands" alias="Atlantic/Stanley"/>
<type name="fmksa" description="Kosrae, Micronesia" alias="Pacific/Kosrae"/>
@@ -178,7 +177,7 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="frpar" description="Paris, France" alias="Europe/Paris"/>
<type name="galbv" description="Libreville, Gabon" alias="Africa/Libreville"/>
<type name="gaza" description="Gaza Strip, Palestinian Territories" deprecated="true" preferred="gazastrp"/>
<type name="gazastrp" description="Gaza Strip, Palestinian Territories" alias="Asia/Gaza" since="40" region="PS"/>
<type name="gazastrp" description="Gaza Strip, Palestinian Territories" alias="Asia/Gaza" since="40"/>
<type name="gblon" description="London, United Kingdom" alias="Europe/London Europe/Belfast GB GB-Eire"/>
<type name="gdgnd" description="Grenada" alias="America/Grenada"/>
<type name="getbs" description="Tbilisi, Georgia" alias="Asia/Tbilisi"/>
@@ -194,8 +193,8 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="gmt" description="Greenwich Mean Time" alias="Etc/GMT Etc/GMT+0 Etc/GMT-0 Etc/GMT0 Etc/Greenwich GMT GMT+0 GMT-0 GMT0 Greenwich" since="31"/>
<type name="gncky" description="Conakry, Guinea" alias="Africa/Conakry"/>
<type name="gpbbr" description="Guadeloupe" alias="America/Guadeloupe"/>
<type name="gpmsb" description="Marigot, Saint Martin" alias="America/Marigot" region="MF"/>
<type name="gpsbh" description="Saint Barthélemy" alias="America/St_Barthelemy" region="BL"/>
<type name="gpmsb" description="Marigot, Saint Martin" alias="America/Marigot"/>
<type name="gpsbh" description="Saint Barthélemy" alias="America/St_Barthelemy"/>
<type name="gqssg" description="Malabo, Equatorial Guinea" alias="Africa/Malabo"/>
<type name="grath" description="Athens, Greece" alias="Europe/Athens EET"/>
<type name="gsgrv" description="South Georgia and the South Sandwich Islands" alias="Atlantic/South_Georgia"/>
@@ -203,7 +202,7 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="gugum" description="Guam" alias="Pacific/Guam"/>
<type name="gwoxb" description="Bissau, Guinea-Bissau" alias="Africa/Bissau"/>
<type name="gygeo" description="Guyana" alias="America/Guyana"/>
<type name="hebron" description="West Bank, Palestinian Territories" alias="Asia/Hebron" since="21" region="PS"/>
<type name="hebron" description="West Bank, Palestinian Territories" alias="Asia/Hebron" since="21"/>
<type name="hkhkg" description="Hong Kong SAR China" alias="Asia/Hong_Kong Hongkong"/>
<type name="hntgu" description="Tegucigalpa, Honduras" alias="America/Tegucigalpa"/>
<type name="hrzag" description="Zagreb, Croatia" alias="Europe/Zagreb"/>
@@ -221,7 +220,7 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="irthr" description="Tehran, Iran" alias="Asia/Tehran Iran"/>
<type name="isrey" description="Reykjavik, Iceland" alias="Atlantic/Reykjavik Iceland"/>
<type name="itrom" description="Rome, Italy" alias="Europe/Rome"/>
<type name="jeruslm" description="Jerusalem" alias="Asia/Jerusalem Asia/Tel_Aviv Israel" region="IL"/>
<type name="jeruslm" description="Jerusalem" alias="Asia/Jerusalem Asia/Tel_Aviv Israel"/>
<type name="jesth" description="Jersey" alias="Europe/Jersey"/>
<type name="jmkin" description="Jamaica" alias="America/Jamaica Jamaica"/>
<type name="joamm" description="Amman, Jordan" alias="Asia/Amman"/>
@@ -306,7 +305,7 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="npktm" description="Kathmandu, Nepal" alias="Asia/Katmandu Asia/Kathmandu" iana="Asia/Kathmandu"/>
<type name="nrinu" description="Nauru" alias="Pacific/Nauru"/>
<type name="nuiue" description="Niue" alias="Pacific/Niue"/>
<type name="nzakl" description="Auckland, New Zealand" alias="Pacific/Auckland NZ"/>
<type name="nzakl" description="Auckland, New Zealand" alias="Pacific/Auckland Antarctica/South_Pole NZ"/>
<type name="nzcht" description="Chatham Islands, New Zealand" alias="Pacific/Chatham NZ-CHAT"/>
<type name="ommct" description="Muscat, Oman" alias="Asia/Muscat"/>
<type name="papty" description="Panama" alias="America/Panama EST"/>
+8 -6
View File
@@ -1,11 +1,12 @@
<!--
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/)
-->
Copyright © 2003-2010 Unicode, Inc. and others. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
<!-- This is only referenced by the deprecated GenerateLikelySubtagTests.java - see CLDR-17535 -->
Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that (a) the above copyright notice(s) and this permission notice appear with all copies of the Data Files or Software, (b) both the above copyright notice(s) and this permission notice appear in associated documentation, and (c) there is clear notice in each modified Data File or in the Software as well as in the documentation associated with the Data File(s) or Software that the data or software has been modified.
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE.
Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder.
-->
<!ELEMENT cldrTest ((number | date | zoneFields | collation | likelySubtags)*) >
<!ATTLIST cldrTest version CDATA #REQUIRED>
@@ -47,3 +48,4 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!-- likelySubtags result attributes -->
<!ATTLIST result add NMTOKEN #IMPLIED>
<!ATTLIST result remove NMTOKEN #IMPLIED>
+6 -49
View File
@@ -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 "48" >
<!ATTLIST version cldrVersion CDATA #FIXED "47" >
<!--@MATCH:any-->
<!--@VALUE-->
<!ATTLIST version draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -64,8 +64,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!--@MATCH:validity/locale-for-names-->
<!ATTLIST language alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/long, secondary, short, variant, menu, official-->
<!ATTLIST language menu NMTOKENS #IMPLIED >
<!--@MATCH:literal/core, extension-->
<!ATTLIST language draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
<!--@METADATA-->
<!--@DEPRECATED:true, false-->
@@ -279,8 +277,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!--@MATCH:bcp47/anykey-->
<!ATTLIST type type NMTOKEN #REQUIRED >
<!--@MATCH:bcp47/anyvalue-->
<!ATTLIST type scope NMTOKEN #IMPLIED >
<!--@MATCH:literal/core-->
<!ATTLIST type alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/short, variant-->
<!ATTLIST type draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -460,7 +456,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!--@DEPRECATED-->
<!ELEMENT exemplarCharacters ( #PCDATA | cp )* >
<!ATTLIST exemplarCharacters type (standard | auxiliary | numbers | numbers-auxiliary | punctuation | punctuation-auxiliary | punctuation-person | index | currencySymbol) #IMPLIED >
<!ATTLIST exemplarCharacters type (auxiliary | standard | punctuation | currencySymbol | index | numbers) #IMPLIED >
<!--@DEPRECATED:currencySymbol-->
<!ATTLIST exemplarCharacters alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
@@ -1532,7 +1528,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ELEMENT dateTimeFormat ( alias | ( pattern*, displayName*, special* ) ) >
<!ATTLIST dateTimeFormat type NMTOKEN "standard" >
<!--@MATCH:literal/standard, atTime, relative-->
<!--@MATCH:literal/standard, atTime-->
<!ATTLIST dateTimeFormat alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST dateTimeFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -1722,7 +1718,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST relativePeriod draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
<!--@METADATA-->
<!ELEMENT timeZoneNames ( alias | ( hourFormat*, hoursFormat*, gmtFormat*, gmtZeroFormat*, gmtUnknownFormat*, regionFormat*, fallbackFormat*, fallbackRegionFormat*, abbreviationFallback*, preferenceOrdering*, singleCountries*, default*, zone*, metazone*, special* ) ) >
<!ELEMENT timeZoneNames ( alias | ( hourFormat*, hoursFormat*, gmtFormat*, gmtZeroFormat*, regionFormat*, fallbackFormat*, fallbackRegionFormat*, abbreviationFallback*, preferenceOrdering*, singleCountries*, default*, zone*, metazone*, special* ) ) >
<!ATTLIST timeZoneNames draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
<!--@METADATA-->
<!--@DEPRECATED-->
@@ -1769,15 +1765,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST gmtZeroFormat references CDATA #IMPLIED >
<!--@METADATA-->
<!ELEMENT gmtUnknownFormat ( #PCDATA ) >
<!ATTLIST gmtUnknownFormat alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST gmtUnknownFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
<!--@METADATA-->
<!--@DEPRECATED:true, false-->
<!ATTLIST gmtUnknownFormat references CDATA #IMPLIED >
<!--@METADATA-->
<!ELEMENT regionFormat ( #PCDATA ) >
<!ATTLIST regionFormat type (standard | daylight) #IMPLIED >
<!ATTLIST regionFormat alt NMTOKENS #IMPLIED >
@@ -1976,7 +1963,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!-- ######################################################### -->
<!ELEMENT numbers ( alias | ( defaultNumberingSystem*, otherNumberingSystems*, minimumGroupingDigits*, symbols*, decimalFormats*, rationalFormats*, scientificFormats*, percentFormats*, currencyFormats*, currencies?, miscPatterns*, minimalPairs*, special* ) ) >
<!ELEMENT numbers ( alias | ( defaultNumberingSystem*, otherNumberingSystems*, minimumGroupingDigits*, symbols*, decimalFormats*, scientificFormats*, percentFormats*, currencyFormats*, currencies?, miscPatterns*, minimalPairs*, special* ) ) >
<!ATTLIST numbers alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST numbers draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -2280,28 +2267,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!--@VALUE-->
<!--@DEPRECATED-->
<!ELEMENT rationalFormats ( alias | ( rationalPattern*, integerAndRationalPattern*, rationalUsage*, special* ) ) >
<!ATTLIST rationalFormats numberSystem CDATA #REQUIRED >
<!--@MATCH:bcp47/nu-->
<!ELEMENT rationalPattern ( #PCDATA ) >
<!ATTLIST rationalPattern alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST rationalPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
<!--@METADATA-->
<!ELEMENT integerAndRationalPattern ( #PCDATA ) >
<!ATTLIST integerAndRationalPattern alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/superSub-->
<!ATTLIST integerAndRationalPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
<!--@METADATA-->
<!ELEMENT rationalUsage ( #PCDATA ) >
<!ATTLIST rationalUsage alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST rationalUsage draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
<!--@METADATA-->
<!ELEMENT scientificFormats ( alias | ( default*, scientificFormatLength*, special* ) ) >
<!ATTLIST scientificFormats draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
<!--@METADATA-->
@@ -3135,20 +3100,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ELEMENT rbnf ( alias | ( rulesetGrouping*, special* ) ) >
<!ELEMENT rulesetGrouping ( alias | ( rbnfRules?, ruleset*, special* ) ) >
<!ELEMENT rulesetGrouping ( alias | ( ruleset*, special* ) ) >
<!ATTLIST rulesetGrouping type NMTOKEN #REQUIRED >
<!--@MATCH:literal/NumberingSystemRules, OrdinalRules, SpelloutRules-->
<!ATTLIST rulesetGrouping draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
<!--@METADATA-->
<!ELEMENT rbnfRules ( #PCDATA ) >
<!--@CDATA-->
<!ATTLIST rbnfRules alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST rbnfRules draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
<!--@METADATA-->
<!--@DEPRECATED:true, false-->
<!ELEMENT ruleset ( alias | ( rbnfrule*, special* ) ) >
<!--@ORDERED-->
<!ATTLIST ruleset type NMTOKEN #REQUIRED >
+5 -124
View File
@@ -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="48" name="cldrVersion">
<xs:attribute default="47" name="cldrVersion">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="48"/>
<xs:enumeration value="47"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
@@ -182,7 +182,6 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:complexType mixed="true">
<xs:attribute name="type" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="menu" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
<xs:restriction base="xs:token">
@@ -204,7 +203,6 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="script">
<xs:complexType mixed="true">
<xs:attribute name="type" type="xs:NMTOKEN" use="required"/>
@@ -698,7 +696,6 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:complexType mixed="true">
<xs:attribute name="key" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="type" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="scope" type="xs:NMTOKEN"/>
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
@@ -721,7 +718,6 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="transformNames">
<xs:complexType>
<xs:choice>
@@ -1200,15 +1196,12 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:attribute name="type">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="standard"/>
<xs:enumeration value="auxiliary"/>
<xs:enumeration value="numbers"/>
<xs:enumeration value="numbers-auxiliary"/>
<xs:enumeration value="standard"/>
<xs:enumeration value="punctuation"/>
<xs:enumeration value="punctuation-auxiliary"/>
<xs:enumeration value="punctuation-person"/>
<xs:enumeration value="index"/>
<xs:enumeration value="currencySymbol"/>
<xs:enumeration value="index"/>
<xs:enumeration value="numbers"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
@@ -4519,7 +4512,6 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element maxOccurs="unbounded" minOccurs="0" ref="hoursFormat"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="gmtFormat"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="gmtZeroFormat"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="gmtUnknownFormat"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="regionFormat"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="fallbackFormat"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="fallbackRegionFormat"/>
@@ -4642,28 +4634,6 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="gmtUnknownFormat">
<xs:complexType mixed="true">
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="approved"/>
<xs:enumeration value="contributed"/>
<xs:enumeration value="provisional"/>
<xs:enumeration value="unconfirmed"/>
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="references"/>
</xs:complexType>
</xs:element>
<xs:element name="regionFormat">
<xs:complexType mixed="true">
<xs:attribute name="type">
@@ -5129,7 +5099,6 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element maxOccurs="unbounded" minOccurs="0" ref="minimumGroupingDigits"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="symbols"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="decimalFormats"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="rationalFormats"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="scientificFormats"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="percentFormats"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="currencyFormats"/>
@@ -5861,72 +5830,6 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="rationalFormats">
<xs:complexType>
<xs:choice>
<xs:element ref="alias"/>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="rationalPattern"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="integerAndRationalPattern"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="rationalUsage"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/>
</xs:sequence>
</xs:choice>
<xs:attribute name="numberSystem" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="rationalPattern">
<xs:complexType mixed="true">
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="approved"/>
<xs:enumeration value="contributed"/>
<xs:enumeration value="provisional"/>
<xs:enumeration value="unconfirmed"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="integerAndRationalPattern">
<xs:complexType mixed="true">
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="approved"/>
<xs:enumeration value="contributed"/>
<xs:enumeration value="provisional"/>
<xs:enumeration value="unconfirmed"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="rationalUsage">
<xs:complexType mixed="true">
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="approved"/>
<xs:enumeration value="contributed"/>
<xs:enumeration value="provisional"/>
<xs:enumeration value="unconfirmed"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="scientificFormats">
<xs:complexType>
<xs:choice>
@@ -8146,7 +8049,6 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:choice>
<xs:element ref="alias"/>
<xs:sequence>
<xs:element minOccurs="0" ref="rbnfRules"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="ruleset"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/>
</xs:sequence>
@@ -8168,27 +8070,6 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
</xs:element>
<xs:element name="rbnfRules">
<xs:complexType mixed="true">
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="approved"/>
<xs:enumeration value="contributed"/>
<xs:enumeration value="provisional"/>
<xs:enumeration value="unconfirmed"/>
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ruleset">
<xs:complexType>
<xs:choice>
+1 -4
View File
@@ -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 "48" >
<!ATTLIST version cldrVersion CDATA #FIXED "47" >
<!--@MATCH:version-->
<!--@VALUE-->
@@ -72,9 +72,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST type iana CDATA #IMPLIED >
<!--@MATCH:regex/^[A-Za-z]+(/[A-Za-z_\-]+)+$-->
<!--@VALUE-->
<!ATTLIST type region CDATA #IMPLIED >
<!--@MATCH:regex/^[A-Z]{2}$-->
<!--@VALUE-->
<!ELEMENT attribute EMPTY >
<!ATTLIST attribute name NMTOKEN #REQUIRED >
+2 -5
View File
@@ -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="48" name="cldrVersion">
<xs:attribute default="47" name="cldrVersion">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="48"/>
<xs:enumeration value="47"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
@@ -120,7 +120,6 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:attribute name="alias"/>
<xs:attribute name="since"/>
<xs:attribute name="iana"/>
<xs:attribute name="region"/>
</xs:complexType>
</xs:element>
@@ -135,8 +134,6 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="attribute">
<xs:complexType>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
+8 -5
View File
@@ -1,8 +1,11 @@
<!--
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/)
Copyright © 2003-2010 Unicode, Inc. and others. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that (a) the above copyright notice(s) and this permission notice appear with all copies of the Data Files or Software, (b) both the above copyright notice(s) and this permission notice appear in associated documentation, and (c) there is clear notice in each modified Data File or in the Software as well as in the documentation associated with the Data File(s) or Software that the data or software has been modified.
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE.
Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder.
-->
<!-- OpenOffice.org Specific elements -->
@@ -57,7 +60,7 @@ openOffice:quarter4Abbreviation?)>
<!ELEMENT openOffice:belowWord (#PCDATA)>
<!-- START_DEPRECATED -->
<!ELEMENT openOffice:quarter1Abbreviation (#PCDATA)>
<!ELEMENT openOffice:quarter1Abbreviation (#PCDATA)>
<!ELEMENT openOffice:quarter2Abbreviation (#PCDATA)>
<!ELEMENT openOffice:quarter3Abbreviation (#PCDATA)>
<!ELEMENT openOffice:quarter4Abbreviation (#PCDATA)>
+4 -11
View File
@@ -12,7 +12,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:any-->
<!--@METADATA-->
<!ATTLIST version cldrVersion CDATA #FIXED "48" >
<!ATTLIST version cldrVersion CDATA #FIXED "47" >
<!--@MATCH:version-->
<!--@VALUE-->
<!ATTLIST version unicodeVersion CDATA #FIXED "16.0.0" >
@@ -147,7 +147,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST language territories NMTOKENS #IMPLIED >
<!--@MATCH:set/validity/region-->
<!--@VALUE-->
<!--@DEPRECATED-->
<!ATTLIST language variants NMTOKENS #IMPLIED >
<!--@VALUE-->
<!ATTLIST language draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -275,7 +274,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!--@MATCH:time/yyyy-MM-dd-->
<!--@VALUE-->
<!ATTLIST era code NMTOKEN #IMPLIED >
<!--@MATCH:regex/[a-z0-9]{2,8}(\-[a-z0-9]{3,8})*-->
<!--@MATCH:regex/[a-z0-9]{3,8}(\-[a-z0-9]{3,8})*-->
<!--@VALUE-->
<!ATTLIST era aliases NMTOKENS #IMPLIED >
<!--@MATCH:set/regex/[a-z0-9]{2,8}(\-[a-z0-9]{3,8})*-->
@@ -771,7 +770,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST unitAlias type NMTOKEN #REQUIRED >
<!--@MATCH:validity/short-unit/deprecated-->
<!ATTLIST unitAlias replacement NMTOKEN #REQUIRED >
<!--@MATCH:regex/[A-Za-z0-9][-A-Za-z0-9]*-->
<!--@MATCH:regex/[A-Za-z][-A-Za-z0-9]*-->
<!--@VALUE-->
<!ATTLIST unitAlias reason (deprecated) #IMPLIED >
<!--@VALUE-->
@@ -997,12 +996,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST usesMetazone mzone NMTOKEN #REQUIRED >
<!--@MATCH:metazone-->
<!--@VALUE-->
<!ATTLIST usesMetazone stdOffset CDATA #IMPLIED >
<!--@MATCH:regex/[+-][0-9]{2}(:[0-9]{2})?-->
<!--@VALUE-->
<!ATTLIST usesMetazone dstOffset CDATA #IMPLIED >
<!--@MATCH:regex/[+-][0-9]{2}(:[0-9]{2})?-->
<!--@VALUE-->
<!ELEMENT plurals ( pluralRules*, pluralRanges* ) >
<!ATTLIST plurals type (ordinal | cardinal) #IMPLIED >
@@ -1097,7 +1090,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST numberingSystem radix NMTOKEN #IMPLIED >
<!--@VALUE-->
<!ATTLIST numberingSystem digits CDATA #IMPLIED >
<!--@MATCH:unicodeset/[\p{Nd}[\u3007\u4E00\u4E03\u4E09\u4E5D\u4E8C\u4E94\u516B\u516D\u56DB][\U00011DE0-\U00011DE9]]-->
<!--@MATCH:unicodeset/[\p{Nd}[\u3007\u4E00\u4E03\u4E09\u4E5D\u4E8C\u4E94\u516B\u516D\u56DB][\U00010D40-\U00010D49\U000116D0-\U000116E3\U00011BF0-\U00011BF9\U00016130-\U00016139\U00016D70-\U00016D79\U0001CCF0-\U0001CCF9\U0001E5F1-\U0001E5FA]]-->
<!--@VALUE-->
<!ATTLIST numberingSystem rules CDATA #IMPLIED >
<!--@MATCH:any-->
@@ -65,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="48" name="cldrVersion">
<xs:attribute default="47" name="cldrVersion">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="48"/>
<xs:enumeration value="47"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
@@ -374,7 +374,6 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="scriptData">
<xs:complexType>
<xs:sequence>
@@ -2184,18 +2183,12 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:attribute name="from"/>
<xs:attribute name="to"/>
<xs:attribute name="mzone" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="stdOffset"/>
<xs:attribute name="dstOffset"/>
</xs:complexType>
</xs:element>
<xs:element name="plurals">
<xs:complexType>
<xs:sequence>
+4 -11
View File
@@ -2072,7 +2072,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Asia/Phnom_Penh">
<exemplarCity draft="unconfirmed">Пномпен</exemplarCity>
</zone>
<zone type="Pacific/Enderbury">
<zone type="Pacific/Kanton">
<exemplarCity draft="unconfirmed">Кантон</exemplarCity>
</zone>
<zone type="Pacific/Kiritimati">
@@ -2746,7 +2746,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Africa_Western">
<long>
<standard draft="unconfirmed">Мраҭашәаратәи Африка</standard>
<generic draft="unconfirmed">Мраҭашәаратәи Африка</generic>
<standard draft="unconfirmed">Мраҭашәаратәи Африка, астандартә аамҭа</standard>
<daylight draft="unconfirmed">Мраҭашәаратәи Африка, аԥхынтәи аамҭа</daylight>
</long>
</metazone>
<metazone type="Alaska">
@@ -3134,11 +3136,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<standard draft="unconfirmed">Гаиана</standard>
</long>
</metazone>
<metazone type="Hawaii">
<long>
<standard draft="unconfirmed">Ҳаваи-алеуттәи астандартә аамҭа</standard>
</long>
</metazone>
<metazone type="Hawaii_Aleutian">
<long>
<generic draft="unconfirmed">Ҳаваи-алеуттәи аамҭа</generic>
@@ -3689,10 +3686,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<currencyFormatLength>
<currencyFormat type="standard">
<pattern draft="unconfirmed">#,##0.00 ¤</pattern>
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
<currencyFormat type="accounting">
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
</currencyFormatLength>
<unitPattern count="other" draft="unconfirmed">{0} {1}</unitPattern>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+316 -235
View File
@@ -215,6 +215,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="hax">ደቡባዊ ሃይዳ</language>
<language type="he">ዕብራይስጥ</language>
<language type="hi">ሕንድኛ</language>
<language type="hi_Latn">ሕንድኛ (ላቲን)</language>
<language type="hil">ሂሊጋይኖን</language>
<language type="hmn">ህሞንግ</language>
<language type="hr">ክሮሽያንኛ</language>
@@ -282,8 +283,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="ksf">ባፊያ</language>
<language type="ksh">ኮሎኝኛ</language>
<language type="ku">ኩርድሽ</language>
<language type="ku" menu="core">ኩርድሽ</language>
<language type="ku" menu="extension">ኩርድሽ</language>
<language type="kum">ኩማይክ</language>
<language type="kv">ኮሚ</language>
<language type="kw">ኮርኒሽ</language>
@@ -712,7 +711,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="CN">ቻይና</territory>
<territory type="CO">ኮሎምቢያ</territory>
<territory type="CP">ክሊፐርቶን ደሴት</territory>
<territory type="CQ">ሳርክ</territory>
<territory type="CR">ኮስታሪካ</territory>
<territory type="CU">ኩባ</territory>
<territory type="CV">ኬፕቨርዴ</territory>
@@ -954,52 +952,33 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<key type="colNumeric">የቁጥር ድርደራ</key>
<key type="colStrength">የድርደራ አቅም</key>
<key type="currency">ምንዛሪ</key>
<key type="em">ስሜት ገላጭ ምስል አቀራረብ</key>
<key type="hc">የሰዓት ዑደት (12 ወይም 24)</key>
<key type="lb">መስመር መስበሪያ ቅጥ</key>
<key type="lw">የመስመር መሰባበር በቃላት ውስጥ</key>
<key type="ms">የመለኪያ ስርዓት</key>
<key type="numbers">ቁጥሮች</key>
<key type="ss">ከአህጽሮተ ቃል በኋላ የዐረፍተ ነገር መቋረጥ</key>
<key type="timezone">የሰዓት ሰቅ</key>
<key type="va">የአካባቢ አይነት</key>
<key type="x">ለግል ጥቅም</key>
</keys>
<types>
<type key="calendar" type="buddhist">የቡዲስት ቀን አቆጣጠር</type>
<type key="calendar" type="buddhist" scope="core">ቡዲስት</type>
<type key="calendar" type="chinese">የቻይና የቀን አቆጣጠር</type>
<type key="calendar" type="chinese" scope="core">ቻይንኛ</type>
<type key="calendar" type="coptic">የኮፕቲክ የቀን አቆጣጠር</type>
<type key="calendar" type="coptic" scope="core">ኮፕቲክ</type>
<type key="calendar" type="dangi">የዳንጊ የቀን አቆጣጠር</type>
<type key="calendar" type="dangi" scope="core">ዳንጊ</type>
<type key="calendar" type="ethiopic">የኢትዮጵያ የቀን አቆጣጠር</type>
<type key="calendar" type="ethiopic" scope="core">ኢትዮፒክ</type>
<type key="calendar" type="ethiopic-amete-alem">የኢትዮፒክ አመተ አለም የቀን አቆጣጠር</type>
<type key="calendar" type="ethiopic-amete-alem" scope="core">ኢትዮፒክ ዓመተ ዓለም</type>
<type key="calendar" type="gregorian">የግሪጎሪያን የቀን አቆጣጠር</type>
<type key="calendar" type="gregorian" scope="core">ግሪጎሪያን</type>
<type key="calendar" type="hebrew">የእብራዊያን የቀን አቆጣጠር</type>
<type key="calendar" type="hebrew" scope="core">ሂብሩ</type>
<type key="calendar" type="indian">የህንድ ብሔራዊ የቀን አቆጣጠር</type>
<type key="calendar" type="islamic">የሂጅራ የቀን አቆጣጠር</type>
<type key="calendar" type="islamic" scope="core">ሂጅራ</type>
<type key="calendar" type="islamic-civil">የሂጅራ የቀን አቆጣጠር (ታቡላር፣ ሲቪል አፖች)</type>
<type key="calendar" type="islamic-civil" scope="core">ሂጅራ (ታቡላር፣ የሲቪል ዘመን)</type>
<type key="calendar" type="islamic-umalqura">የሂጅራ የቀን አቆጣጠር (ኡም አል-ቁራ)</type>
<type key="calendar" type="islamic-umalqura" scope="core">ሂጅራ (ኡሙ አል-ቁራ)</type>
<type key="calendar" type="iso8601">ISO-8601 የቀን አቆጣጠር</type>
<type key="calendar" type="japanese">የጃፓን የቀን አቆጣጠር</type>
<type key="calendar" type="japanese" scope="core">ጃፓንኛ</type>
<type key="calendar" type="persian">የፐርሽያ የቀን አቆጣጠር</type>
<type key="calendar" type="persian" scope="core">ፐርሽያን</type>
<type key="calendar" type="roc">የሚንጉ የቀን አቆጣጠር</type>
<type key="calendar" type="roc" scope="core">ሚንጉ</type>
<type key="cf" type="account">የሂሳብ ምንዛሪ ቅርጸት</type>
<type key="cf" type="account" scope="core">የሂሳብ አያያዝ</type>
<type key="cf" type="standard">መደበኛ የምንዛሪ ቅርጸት</type>
<type key="cf" type="standard" scope="core">መደበኛ</type>
<type key="colAlternate" type="non-ignorable">ምልክቶችን ደርድር</type>
<type key="colAlternate" type="shifted">ችላ ባይ ምልክቶችን ደርድር</type>
<type key="colBackwards" type="no">የፊደል ጭረቶችን እንደመደበኛ ደርድር</type>
@@ -1009,17 +988,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<type key="colCaseFirst" type="upper">አቢይ ሆሄ መጀመሪያ ደርድር</type>
<type key="colCaseLevel" type="no">ያለመልከፊደል ትብ ደርድር</type>
<type key="colCaseLevel" type="yes">በመልከፊደል ትብ ደርድር</type>
<type key="collation" type="big5han">የባህላዊ ቻይንኛ የድርድር ቅደም ተከተል - ትልቅ5</type>
<type key="collation" type="dictionary">የመዝገበ ቃላት የድርድር ቅደም ተከተል</type>
<type key="collation" type="ducet">የነባሪ ዩኒኮድ የድርድር ቅደም ተከተል</type>
<type key="collation" type="ducet" scope="core">ነባሪ ዩኒኮድ</type>
<type key="collation" type="gb2312han">የቀለለ የቻይንኛ የድርደራ ቅደም ተከተል - GB2312</type>
<type key="collation" type="phonebook">የስልክ ደብተር ድርድር ቅደም ተከተል</type>
<type key="collation" type="phonetic">የፎነቲክ ድርደራ ቅደም ተከተል</type>
<type key="collation" type="pinyin">ፒንይን የድርድር ቅደም ተከተል</type>
<type key="collation" type="search">ለጠቅላላ ጉዳይ ፍለጋ</type>
<type key="collation" type="search" scope="core">ፍለጋ</type>
<type key="collation" type="searchjl">በሃንጉል የመጀመሪያ ተነባቢ ፈልግ</type>
<type key="collation" type="standard">መደበኛ የድርድር ቅደም ተከተል</type>
<type key="collation" type="standard" scope="core">መደበኛ</type>
<type key="collation" type="stroke">የበትር ድርድር ቅደም ተከተል</type>
<type key="collation" type="traditional">ባህላዊ የድርድር ቅደም ተከተል</type>
<type key="collation" type="unihan">የመሰረታዊ በትር ድርድር ቅደም ተከተል</type>
@@ -1035,35 +1013,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<type key="d0" type="fwidth">ሙሉ ወርድ</type>
<type key="d0" type="hwidth">ግማሽ ወርድ</type>
<type key="d0" type="npinyin">አሃዛዊ</type>
<type key="em" type="default" scope="core">ነባሪ</type>
<type key="em" type="emoji" scope="core">ስሜት ገላጭ ምስል</type>
<type key="em" type="text" scope="core">ጽሑፍ</type>
<type key="hc" type="h11">የ12 ሰዓት ስርዓት (011)</type>
<type key="hc" type="h11" scope="core">12 (011)</type>
<type key="hc" type="h12">የ12 ሰዓት ስርዓት (112)</type>
<type key="hc" type="h12" scope="core">12 (112)</type>
<type key="hc" type="h23">የ24 ሰዓት ስርዓት (023)</type>
<type key="hc" type="h23" scope="core">24 (023)</type>
<type key="hc" type="h24">የ24 ሰዓት ስርዓት (124)</type>
<type key="hc" type="h24" scope="core">24 (124)</type>
<type key="lb" type="loose">ላላ ያለ መስመር መስበሪያ ቅጥ</type>
<type key="lb" type="loose" scope="core">ልቅ</type>
<type key="lb" type="normal">መደበኛ መስመር መስበሪያ ቅጥ</type>
<type key="lb" type="normal" scope="core">መደበኛ</type>
<type key="lb" type="strict">ጠበቅ ያለ መስመር መስበሪያ ቅጥ</type>
<type key="lb" type="strict" scope="core">ጥብቅ</type>
<type key="lw" type="breakall" scope="core">ሁሉንም ሰብረው</type>
<type key="lw" type="keepall" scope="core">ሁሉንም አቆይ</type>
<type key="lw" type="normal" scope="core">መደበኛ</type>
<type key="lw" type="phrase" scope="core">በዓረፍተ ነገሮች ውስጥ ያስቀምጡ</type>
<type key="m0" type="bgn">ዩኤስ ቢጂኤን ትራንስሊትሬሽን</type>
<type key="m0" type="ungegn">ዩኤን ጂኢጂኤን ትራንስሊትሬሽን</type>
<type key="ms" type="metric">ሜትሪክ ስርዓት</type>
<type key="ms" type="metric" scope="core">መለኪያ</type>
<type key="ms" type="uksystem">ኢምፔሪያል የመለኪያ ስርዓት</type>
<type key="ms" type="uksystem" scope="core">ዩኬ</type>
<type key="ms" type="ussystem">የአሜሪካ መለኪያ ስርዓት</type>
<type key="ms" type="ussystem" scope="core">ዩኤስ</type>
<type key="numbers" type="arab">የአረቢክ-ኢንዲክ አሃዞች</type>
<type key="numbers" type="arabext">የተራዘሙ የአረቢክ-ኢንዲክ አሃዞች</type>
<type key="numbers" type="armn">የአርመንኛ ቁጥሮች</type>
@@ -1108,8 +1069,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<type key="numbers" type="tibt">የቲቤት አሃዞች</type>
<type key="numbers" type="traditional">ተለምዷዊ ቁጥሮች</type>
<type key="numbers" type="vaii">የቫይ አሃዞች</type>
<type key="ss" type="none" scope="core">ጠፍቷል</type>
<type key="ss" type="standard" scope="core">በርቷል</type>
</types>
<measurementSystemNames>
<measurementSystemName type="metric">ሜትሪክ</measurementSystemName>
@@ -1139,23 +1098,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateTimeFormats>
<availableFormats>
<dateFormatItem id="GyMMM">MMM፣ y G</dateFormatItem>
<dateFormatItem id="yyyyM">GGGGG y-MM</dateFormatItem>
<dateFormatItem id="yyyyMd">GGGGG y-MM-dd</dateFormatItem>
<dateFormatItem id="yyyyMEd">GGGGG y-MM-dd, E</dateFormatItem>
</availableFormats>
<intervalFormats>
<intervalFormatItem id="H">
<greatestDifference id="H">HHHH</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Hv">
<greatestDifference id="H">HHHH v</greatestDifference>
</intervalFormatItem>
</intervalFormats>
</dateTimeFormats>
</calendar>
<calendar type="coptic">
<eras>
<eraAbbr>
<era type="0" draft="unconfirmed">ዓ/ዓ</era>
<era type="1" draft="unconfirmed">ዓ/ም</era>
</eraAbbr>
</eras>
@@ -1184,18 +1133,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<availableFormats>
<dateFormatItem id="GyMMM">MMM፣ y G</dateFormatItem>
<dateFormatItem id="MMMMEd">E, MMMM d</dateFormatItem>
<dateFormatItem id="yyyyM">GGGGG y-MM</dateFormatItem>
<dateFormatItem id="yyyyMd">GGGGG y-MM-dd</dateFormatItem>
<dateFormatItem id="yyyyMEd">GGGGG y-MM-dd, E</dateFormatItem>
</availableFormats>
<intervalFormats>
<intervalFormatItem id="H">
<greatestDifference id="H">HHHH</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Hv">
<greatestDifference id="H">HHHH v</greatestDifference>
</intervalFormatItem>
</intervalFormats>
</dateTimeFormats>
</calendar>
<calendar type="generic">
@@ -1226,33 +1164,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateTimeFormat>
<pattern>{1} {0}</pattern>
</dateTimeFormat>
<dateTimeFormat type="relative">
<pattern>{1} በ {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="long">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
</dateTimeFormat>
<dateTimeFormat type="relative">
<pattern>{1} በ {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="medium">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
</dateTimeFormat>
<dateTimeFormat type="relative">
<pattern>{1} በ {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="short">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
</dateTimeFormat>
<dateTimeFormat type="relative">
<pattern>{1} በ {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<availableFormats>
<dateFormatItem id="Ed">E d</dateFormatItem>
@@ -1489,6 +1415,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dayPeriodWidth type="narrow">
<dayPeriod type="am"></dayPeriod>
<dayPeriod type="pm"></dayPeriod>
<dayPeriod type="morning1">ጥዋት</dayPeriod>
<dayPeriod type="afternoon1">ከሰዓት</dayPeriod>
<dayPeriod type="evening1">ማታ</dayPeriod>
<dayPeriod type="night1">ሌሊት</dayPeriod>
</dayPeriodWidth>
</dayPeriodContext>
</dayPeriods>
@@ -1496,6 +1426,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<eraNames>
<era type="0">ዓመተ ዓለም</era>
<era type="1">ዓመተ ምሕረት</era>
<era type="1" alt="variant">ዓ/ም</era>
</eraNames>
<eraAbbr>
<era type="0">ዓ/ዓ</era>
@@ -1575,17 +1506,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateFormatItem id="Bh">B h</dateFormatItem>
<dateFormatItem id="Bhm">B h:mm</dateFormatItem>
<dateFormatItem id="Bhms">B h:mm:ss</dateFormatItem>
<dateFormatItem id="EBh">E B h</dateFormatItem>
<dateFormatItem id="EBhm">E B h:mm</dateFormatItem>
<dateFormatItem id="EBhms">E B h:mm:ss</dateFormatItem>
<dateFormatItem id="Ed">E d</dateFormatItem>
<dateFormatItem id="Eh">Ea h</dateFormatItem>
<dateFormatItem id="Ehm">E a h:mm</dateFormatItem>
<dateFormatItem id="Ehms">E a h:mm:ss</dateFormatItem>
<dateFormatItem id="Gy">y G</dateFormatItem>
<dateFormatItem id="GyM">M/y G</dateFormatItem>
<dateFormatItem id="GyMd">d/M/y GGGGG</dateFormatItem>
<dateFormatItem id="GyMEd">E d/M/y G</dateFormatItem>
<dateFormatItem id="GyMMM">MMM y G</dateFormatItem>
<dateFormatItem id="GyMMMd">MMM d y G</dateFormatItem>
<dateFormatItem id="GyMMMEd">E MMM d y G</dateFormatItem>
@@ -1593,7 +1520,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateFormatItem id="H">H</dateFormatItem>
<dateFormatItem id="hm">a h:mm</dateFormatItem>
<dateFormatItem id="hms">a h:mm:ss</dateFormatItem>
<dateFormatItem id="hv">a hv</dateFormatItem>
<dateFormatItem id="Md">d/M</dateFormatItem>
<dateFormatItem id="MEd">E፣ d/M</dateFormatItem>
<dateFormatItem id="MMMEd">E፣ MMM d</dateFormatItem>
@@ -1612,9 +1538,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</availableFormats>
<intervalFormats>
<intervalFormatFallback>{0} {1}</intervalFormatFallback>
<intervalFormatItem id="Bh">
<greatestDifference id="B">B h  B h</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyM">
<greatestDifference id="G">GGGGG M/y GGGGG M/y</greatestDifference>
<greatestDifference id="M">GGGGG M/y M/y</greatestDifference>
@@ -1758,26 +1681,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<relative type="0">ይህ ሩብ</relative>
<relative type="1">የሚቀጥለው ሩብ</relative>
<relativeTime type="future">
<relativeTimePattern count="one">{0} ሩብ</relativeTimePattern>
<relativeTimePattern count="other">{0} ሩብ</relativeTimePattern>
<relativeTimePattern count="one">+{0} ሩብ</relativeTimePattern>
<relativeTimePattern count="other">+{0} ሩብ</relativeTimePattern>
</relativeTime>
<relativeTime type="past">
<relativeTimePattern count="one">{0} ሩብ በፊት</relativeTimePattern>
<relativeTimePattern count="other">{0} ሩብ በፊት</relativeTimePattern>
</relativeTime>
</field>
<field type="quarter-short">
<relativeTime type="future">
<relativeTimePattern count="one">በ{0} ሩብ</relativeTimePattern>
<relativeTimePattern count="other">በ{0} ሩብ</relativeTimePattern>
</relativeTime>
</field>
<field type="quarter-narrow">
<relativeTime type="future">
<relativeTimePattern count="one">በ{0} ሩብ</relativeTimePattern>
<relativeTimePattern count="other">በ{0} ሩብ</relativeTimePattern>
</relativeTime>
</field>
<field type="month">
<displayName>ወር</displayName>
<relative type="-1">ያለፈው ወር</relative>
@@ -2079,7 +1990,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<hourFormat>+HHmm;-HHmm</hourFormat>
<gmtFormat>ጂ ኤም ቲ{0}</gmtFormat>
<gmtZeroFormat>ጂ ኤም ቲ</gmtZeroFormat>
<gmtUnknownFormat>ጂ ኤም ቲ+</gmtUnknownFormat>
<regionFormat>{0} ሰዓት</regionFormat>
<regionFormat type="daylight">{0} የቀን ብርሃን ሰዓት</regionFormat>
<regionFormat type="standard">{0} መደበኛ ሰዓት</regionFormat>
@@ -2701,6 +2611,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<exemplarCity>ፍኖም ፔንህ</exemplarCity>
</zone>
<zone type="Pacific/Enderbury">
<exemplarCity>ኢንደርበሪ</exemplarCity>
</zone>
<zone type="Pacific/Kanton">
<exemplarCity>ካንቶን</exemplarCity>
</zone>
<zone type="Pacific/Kiritimati">
@@ -3370,7 +3283,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Africa_Western">
<long>
<standard>የምዕራብ አፍሪካ ሰዓት</standard>
<generic>የምዕራብ አፍሪካ ሰዓት</generic>
<standard>የምዕራብ አፍሪካ መደበኛ ሰዓት</standard>
<daylight>የምዕራብ አፍሪካ ክረምት ሰዓት</daylight>
</long>
</metazone>
<metazone type="Alaska">
@@ -3727,11 +3642,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<standard>የጉያና ሰዓት</standard>
</long>
</metazone>
<metazone type="Hawaii">
<long>
<standard>የሃዋይ አሌኡት መደበኛ ሰዓት አቆጣጠር</standard>
</long>
</metazone>
<metazone type="Hawaii_Aleutian">
<long>
<generic>የሃዋይ አሌኡት ሰዓት አቆጣጠር</generic>
@@ -4315,6 +4225,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<currencyFormatLength>
<currencyFormat type="standard">
<pattern>¤#,##0.00</pattern>
<pattern alt="alphaNextToNumber" draft="provisional">¤ #,##0.00</pattern>
</currencyFormat>
<currencyFormat type="accounting">
<pattern>¤#,##0.00;(¤#,##0.00)</pattern>
@@ -4864,11 +4775,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<currency type="XCD">
<displayName>የምዕራብ ካሪብያን ዶላር</displayName>
</currency>
<currency type="XCG">
<displayName>የካሪቢያን ጊልደር</displayName>
<displayName count="one">የካሪቢያን ጊልደር</displayName>
<displayName count="other">የካሪቢያን ጊልደር</displayName>
</currency>
<currency type="XOF">
<displayName>የምዕራብ አፍሪካ ሴፋ ፍራንክ</displayName>
</currency>
@@ -4893,11 +4799,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<currency type="ZWD">
<displayName>የዚምቧቡዌ ዶላር</displayName>
</currency>
<currency type="ZWG">
<displayName>የዚምባብዌ ወርቅ</displayName>
<displayName count="one">የዚምባብዌ ወርቅ</displayName>
<displayName count="other">የዚምባብዌ ወርቅ</displayName>
</currency>
</currencies>
<miscPatterns numberSystem="latn">
<pattern type="atLeast">{0}+</pattern>
@@ -4921,6 +4822,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p-3">
<unitPrefixPattern>ሚሊ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
<unitPrefixPattern>ማይክሮ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>ናኖ{0}</unitPrefixPattern>
</compoundUnit>
@@ -4957,6 +4861,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p18">
<unitPrefixPattern>ኤክሳ {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p21">
<unitPrefixPattern>ዜታ {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p24">
<unitPrefixPattern>ዮታ {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p27">
<unitPrefixPattern>ሮና {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>ዮቢ {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0} በ{1}</compoundUnitPattern>
</compoundUnit>
@@ -4975,12 +4891,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other" case="accusative">{0} ጂ-ኃይል</unitPattern>
</unit>
<unit type="angle-revolution">
<displayName>ኡደት</displayName>
<unitPattern count="one">{0} ኡደት</unitPattern>
<unitPattern count="one" case="accusative">{0} ኡደት</unitPattern>
<unitPattern count="other">{0} ኡደት</unitPattern>
<unitPattern count="other" case="accusative">{0} ኡደቶች</unitPattern>
</unit>
<unit type="angle-radian">
<displayName>ራዲ</displayName>
<unitPattern count="one">{0} ራዲ</unitPattern>
<unitPattern count="one" case="accusative">{0} ራዲያን</unitPattern>
<unitPattern count="other">{0} ራዲ</unitPattern>
@@ -5004,6 +4922,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} ካሬ ሜትር</unitPattern>
<unitPattern count="other" case="accusative">{0} ካሬ ሜትር</unitPattern>
</unit>
<unit type="area-square-yard">
<displayName>ስኴር ያርድ</displayName>
<unitPattern count="one">{0} ስኴር ያርድ</unitPattern>
<unitPattern count="other">{0} ስኴር ያርድ</unitPattern>
</unit>
<unit type="area-dunam">
<displayName>ጋሻ</displayName>
</unit>
@@ -5017,12 +4940,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} ንጥሎች</unitPattern>
<unitPattern count="other" case="accusative">{0} ንጥሎች</unitPattern>
</unit>
<unit type="concentr-part">
<displayName>ክፍል</displayName>
<unitPattern count="one">{0} ክፍል</unitPattern>
<unitPattern count="other">{0} ክፍል</unitPattern>
</unit>
<unit type="concentr-part-per-1e6">
<unit type="concentr-permillion">
<unitPattern count="one">{0} ppm</unitPattern>
<unitPattern count="one" case="accusative">{0} ክፍል በየሚሊዮን</unitPattern>
<unitPattern count="other">{0} ppm</unitPattern>
@@ -5046,11 +4964,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} mol</unitPattern>
<unitPattern count="other" case="accusative">{0} moles</unitPattern>
</unit>
<unit type="concentr-ofglucose">
<displayName>ግሉኮስ</displayName>
<unitPattern count="one">{0} ግሉኮስ</unitPattern>
<unitPattern count="other">{0} ግሉኮስ</unitPattern>
</unit>
<unit type="consumption-liter-per-100-kilometer">
<displayName>ሊትሮች በ100 ኪሎሜትሮች</displayName>
<unitPattern count="one">{0} ሊትር በ100 ኪሎሜትሮች</unitPattern>
@@ -5118,6 +5031,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other" case="accusative">{0} ማይክሮሰከንድ</unitPattern>
</unit>
<unit type="electric-ampere">
<displayName>አምፒር</displayName>
<unitPattern count="one">{0} አምፒር</unitPattern>
<unitPattern count="one" case="accusative">{0} አምፒር</unitPattern>
<unitPattern count="other">{0} አምፒር</unitPattern>
@@ -5130,11 +5044,33 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other" case="accusative">{0} ohms</unitPattern>
</unit>
<unit type="electric-volt">
<displayName>ቮልት</displayName>
<unitPattern count="one">{0} ቮልት</unitPattern>
<unitPattern count="one" case="accusative">{0} ቮልት</unitPattern>
<unitPattern count="other">{0} ቮልት</unitPattern>
<unitPattern count="other" case="accusative">{0} ቮልቶች</unitPattern>
</unit>
<unit type="energy-kilocalorie">
<displayName>ኪሎ ካሎሪ</displayName>
<unitPattern count="one">{0} ኪሎ ካሎሪ</unitPattern>
<unitPattern count="one" case="accusative">{0} ኪሎ ካሎሪ</unitPattern>
<unitPattern count="other">{0} ኪሎ ካሎሪ</unitPattern>
<unitPattern count="other" case="accusative">{0} ኪሎ ካሎሪ</unitPattern>
</unit>
<unit type="energy-kilojoule">
<displayName>ኪጁ</displayName>
<unitPattern count="one">{0} ኪጁ</unitPattern>
<unitPattern count="one" case="accusative">{0} ኪጁ</unitPattern>
<unitPattern count="other">{0} ኪጁ</unitPattern>
<unitPattern count="other" case="accusative">{0} ኪጁ</unitPattern>
</unit>
<unit type="energy-joule">
<displayName>ጁልስ</displayName>
<unitPattern count="one">{0} ጁልስ</unitPattern>
<unitPattern count="one" case="accusative">{0} ጁልስ</unitPattern>
<unitPattern count="other">{0} ጁልስ</unitPattern>
<unitPattern count="other" case="accusative">{0} ጁልስ</unitPattern>
</unit>
<unit type="force-newton">
<unitPattern count="one">{0} ኒ</unitPattern>
<unitPattern count="one" case="accusative">{0} ኒውተን</unitPattern>
@@ -5148,6 +5084,34 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} ኪሎዋት-ሰዓታት በየ 100 ኪሎሜትሮች</unitPattern>
<unitPattern count="other" case="accusative">{0} ኪሎዋት-ሰዓታት በየ 100 ኪሎሜትሮች</unitPattern>
</unit>
<unit type="frequency-gigahertz">
<displayName>ጊጋኸርዝ</displayName>
<unitPattern count="one">{0} ጊጋኸርዝ</unitPattern>
<unitPattern count="one" case="accusative">{0} ጊጋኸርዝ</unitPattern>
<unitPattern count="other">{0} ጊጋኸርዝ</unitPattern>
<unitPattern count="other" case="accusative">{0} ጊጋኸርዝ</unitPattern>
</unit>
<unit type="frequency-megahertz">
<displayName>ሜጋኸርዝ</displayName>
<unitPattern count="one">{0} ሜጋኸርዝ</unitPattern>
<unitPattern count="one" case="accusative">{0} ሜጋኸርዝ</unitPattern>
<unitPattern count="other">{0} ሜጋኸርዝ</unitPattern>
<unitPattern count="other" case="accusative">{0} ሜጋኸርዝ</unitPattern>
</unit>
<unit type="frequency-kilohertz">
<displayName>ኪሎኸርዝ</displayName>
<unitPattern count="one">{0} ኪሎኸርዝ</unitPattern>
<unitPattern count="one" case="accusative">{0} ኪሎኸርዝ</unitPattern>
<unitPattern count="other">{0} ኪሎኸርዝ</unitPattern>
<unitPattern count="other" case="accusative">{0} ኪሎኸርዝ</unitPattern>
</unit>
<unit type="frequency-hertz">
<displayName>ኸርዝ</displayName>
<unitPattern count="one">{0} ኸርዝ</unitPattern>
<unitPattern count="one" case="accusative">{0} ኸርዝ</unitPattern>
<unitPattern count="other">{0} ኸርዝ</unitPattern>
<unitPattern count="other" case="accusative">{0} ኸርዝ</unitPattern>
</unit>
<unit type="graphics-em">
<displayName>ታይፖግራፊክ em</displayName>
</unit>
@@ -5238,7 +5202,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} ግራም</unitPattern>
<unitPattern count="other" case="accusative">{0} ግራም</unitPattern>
</unit>
<unit type="mass-milligram">
<displayName>ሚግ</displayName>
<unitPattern count="one">{0} ሚግ</unitPattern>
<unitPattern count="one" case="accusative">{0} ሚግ</unitPattern>
<unitPattern count="other">{0} ሚግ</unitPattern>
<unitPattern count="other" case="accusative">{0} ሚግ</unitPattern>
</unit>
<unit type="mass-microgram">
<displayName>ማግ</displayName>
<unitPattern count="one">{0} ማግ</unitPattern>
<unitPattern count="one" case="accusative">{0} ማይክሮ ግራም</unitPattern>
<unitPattern count="other">{0} ማግ</unitPattern>
@@ -5251,6 +5223,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} CD</unitPattern>
<unitPattern count="other" case="accusative">{0} ካራቶች</unitPattern>
</unit>
<unit type="mass-dalton">
<displayName>ዳልተንስ</displayName>
<unitPattern count="one">{0} ዳልተንስ</unitPattern>
<unitPattern count="other">{0} ዳልተንስ</unitPattern>
</unit>
<unit type="mass-earth-mass">
<unitPattern count="one">{0} ኤርዝማስስ</unitPattern>
<unitPattern count="other">{0} ኤርዝማስስ</unitPattern>
@@ -5259,8 +5236,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ሶላር ማስስ</unitPattern>
<unitPattern count="other">{0} ሶላር ማስስ</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>ጊጋ ዋት</displayName>
<unitPattern count="one">{0} ጊዋ</unitPattern>
<unitPattern count="one" case="accusative">{0} ጊዋ</unitPattern>
<unitPattern count="other">{0} ጊዋ</unitPattern>
<unitPattern count="other" case="accusative">{0} ጊዋ</unitPattern>
</unit>
<unit type="power-megawatt">
<displayName>ሜጋ ዋት</displayName>
<unitPattern count="one">{0} ሜዋ</unitPattern>
<unitPattern count="one" case="accusative">{0} ሜዋ</unitPattern>
<unitPattern count="other">{0} ሜዋ</unitPattern>
<unitPattern count="other" case="accusative">{0} ሜዋ</unitPattern>
</unit>
<unit type="power-kilowatt">
<unitPattern count="one">{0} ኪሎዋት</unitPattern>
@@ -5276,6 +5264,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</unit>
<unit type="power-milliwatt">
<displayName>ሚሊ ዋት</displayName>
<unitPattern count="one">{0} ሚዋ</unitPattern>
<unitPattern count="one" case="accusative">{0} ሚዋ</unitPattern>
<unitPattern count="other">{0} ሚዋ</unitPattern>
<unitPattern count="other" case="accusative">{0} ሚዋ</unitPattern>
</unit>
<unit type="power-horsepower">
<unitPattern count="one">{0} የፈረስ ጉልበት</unitPattern>
@@ -5324,6 +5316,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} ዲግሪ ፋራንሃይት</unitPattern>
</unit>
<unit type="temperature-kelvin">
<displayName></displayName>
<unitPattern count="one">{0} ኬ</unitPattern>
<unitPattern count="one" case="accusative">{0} ኬልቪን</unitPattern>
<unitPattern count="other">{0} ኬ</unitPattern>
@@ -5339,8 +5332,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ኩቢክ ማይል</unitPattern>
<unitPattern count="other">{0} ኩቢክ ማይል</unitPattern>
</unit>
<unit type="volume-cubic-yard">
<displayName>ኪዩቢክ ያርድ</displayName>
<unitPattern count="one">{0} ኪዩቢክ ያርድ</unitPattern>
<unitPattern count="other">{0} ኪዩቢክ ያርድ</unitPattern>
</unit>
<unit type="volume-megaliter">
<displayName>ሜጋሊትር</displayName>
<unitPattern count="one">{0} ሜሊ</unitPattern>
<unitPattern count="one" case="accusative">{0} ሜሊ</unitPattern>
<unitPattern count="other">{0} ሜሊ</unitPattern>
<unitPattern count="other" case="accusative">{0} ሜሊ</unitPattern>
</unit>
<unit type="volume-hectoliter">
<displayName>ሄክቶሊትር</displayName>
<unitPattern count="one">{0} ሄሊ</unitPattern>
<unitPattern count="one" case="accusative">{0} ሄሊ</unitPattern>
<unitPattern count="other">{0} ሄሊ</unitPattern>
<unitPattern count="other" case="accusative">{0} ሄሊ</unitPattern>
</unit>
<unit type="volume-liter">
<unitPattern count="one">{0} ሊትር</unitPattern>
@@ -5369,47 +5378,46 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other" case="accusative">{0} ሜትሪክ ፒንቶች</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>ጋሎን</displayName>
<unitPattern count="one">{0}/ጋሎን</unitPattern>
<unitPattern count="other">{0}/ጋሎን</unitPattern>
<perUnitPattern>{0}/ጋሎን</perUnitPattern>
</unit>
<unit type="volume-quart">
<displayName>ኳርትስ</displayName>
<unitPattern count="one">{0} ኳርትስ</unitPattern>
<unitPattern count="other">{0} ኳርትስ</unitPattern>
</unit>
<unit type="volume-cup">
<displayName>ኩባያ</displayName>
<unitPattern count="one">{0} ኩባያ</unitPattern>
<unitPattern count="other">{0} ኩባያ</unitPattern>
</unit>
<unit type="volume-fluid-ounce-imperial">
<displayName>Imp. fluid ኦንስስ</displayName>
<unitPattern count="one">{0} Imp. fluid ኦንስስ</unitPattern>
<unitPattern count="other">{0} Imp. fluid ኦንስስ</unitPattern>
</unit>
<unit type="volume-tablespoon">
<displayName>የሻይ ማንኪያ</displayName>
<unitPattern count="one">{0} የሻይ ማንኪያ</unitPattern>
<unitPattern count="other">{0} የሻይ ማንኪያ</unitPattern>
</unit>
<unit type="volume-teaspoon">
<displayName>የሻይ ማንኪያዎች</displayName>
<unitPattern count="one">{0} የሻይ ማንኪያዎች</unitPattern>
<unitPattern count="other">{0} የሻይ ማንኪያዎች</unitPattern>
</unit>
<unit type="volume-barrel">
<unitPattern count="one">{0} በርሜል</unitPattern>
<unitPattern count="other">{0} በርሜሎች</unitPattern>
</unit>
<unit type="concentr-katal">
<displayName>ካታልስ</displayName>
<unitPattern count="one">{0} ካት</unitPattern>
<unitPattern count="other">{0} ካት</unitPattern>
</unit>
<unit type="electric-henry">
<displayName>ሄነሪስ</displayName>
<unitPattern count="one">{0} ሄ</unitPattern>
<unitPattern count="other">{0} ሄ</unitPattern>
</unit>
<unit type="energy-calorie-it">
<displayName>ካሎሪ [IT]</displayName>
<unitPattern count="one">{0} ካሎሪ [IT]</unitPattern>
<unitPattern count="other">{0} ካሎሪ [IT]</unitPattern>
</unit>
<unit type="force-kilogram-force">
<displayName>ኪሎግራም - ኃይል</displayName>
<unitPattern count="one">{0} ኪግ-ኃይል</unitPattern>
<unitPattern count="other">{0} ኪግ-ኃይል</unitPattern>
</unit>
<unit type="magnetic-tesla">
<displayName>ቴስላስ</displayName>
<unitPattern count="one">{0} ቴ</unitPattern>
<unitPattern count="other">{0} ቴ</unitPattern>
</unit>
<unit type="magnetic-weber">
<displayName>ዌበርስ</displayName>
<unitPattern count="one">{0} ዌበ</unitPattern>
<unitPattern count="other">{0} ዌበ</unitPattern>
<unit type="speed-light-speed">
<displayName>ብርሃን</displayName>
<unitPattern count="one">{0} ብርሃን</unitPattern>
<unitPattern count="one" case="accusative">{0} ብርሃን</unitPattern>
<unitPattern count="other">{0} ብርሃን</unitPattern>
<unitPattern count="other" case="accusative">{0} ብርሃን</unitPattern>
</unit>
<unit type="duration-night">
<displayName>ለሊት</displayName>
@@ -5417,6 +5425,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one" case="accusative">{0}/ለሊት</unitPattern>
<unitPattern count="other">{0}/ለሊት</unitPattern>
<unitPattern count="other" case="accusative">{0}/ለሊት</unitPattern>
<perUnitPattern>{0}/ለሊት</perUnitPattern>
</unit>
<coordinateUnit>
<displayName>ዓቢይ አቅጣጫ</displayName>
@@ -5604,22 +5613,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ንጥል</unitPattern>
<unitPattern count="other">{0} ንጥል</unitPattern>
</unit>
<unit type="concentr-part">
<displayName>ክፍል</displayName>
<unitPattern count="one">{0} ክፍል</unitPattern>
<unitPattern count="other">{0} ክፍል</unitPattern>
</unit>
<unit type="concentr-percent">
<displayName>ፐርሰንት</displayName>
</unit>
<unit type="concentr-permille">
<displayName>በማይል</displayName>
</unit>
<unit type="concentr-ofglucose">
<displayName>ግሉኮስ</displayName>
<unitPattern count="one">{0} ግሉኮስ</unitPattern>
<unitPattern count="other">{0} ግሉኮስ</unitPattern>
</unit>
<unit type="consumption-liter-per-kilometer">
<displayName>ሊ/ኪሜ</displayName>
<unitPattern count="one">{0} ሊ/ኪሜ</unitPattern>
@@ -6285,36 +6284,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} የፈሳሽ መለኪያ</unitPattern>
<unitPattern count="other">{0} የፈሳሽ መለኪያ</unitPattern>
</unit>
<unit type="concentr-katal">
<displayName>ካት</displayName>
<unitPattern count="one">{0} ካት</unitPattern>
<unitPattern count="other">{0} ካት</unitPattern>
</unit>
<unit type="electric-henry">
<displayName></displayName>
<unitPattern count="one">{0} ሄ</unitPattern>
<unitPattern count="other">{0} ሄ</unitPattern>
</unit>
<unit type="energy-calorie-it">
<displayName>ካሎሪ-IT</displayName>
<unitPattern count="one">{0} ካሎሪ-IT</unitPattern>
<unitPattern count="other">{0} ካሎሪ-IT</unitPattern>
</unit>
<unit type="force-kilogram-force">
<displayName>ኪግ-ኃይል</displayName>
<unitPattern count="one">{0} ኪግ-ኃይል</unitPattern>
<unitPattern count="other">{0} ኪግ-ኃይል</unitPattern>
</unit>
<unit type="magnetic-tesla">
<displayName></displayName>
<unitPattern count="one">{0} ቴ</unitPattern>
<unitPattern count="other">{0} ቴ</unitPattern>
</unit>
<unit type="magnetic-weber">
<displayName>ዌበ</displayName>
<unitPattern count="one">{0} ዌበ</unitPattern>
<unitPattern count="other">{0} ዌበ</unitPattern>
</unit>
<unit type="speed-light-speed">
<displayName>ብርሃን</displayName>
<unitPattern count="one">{0} ብርሃን</unitPattern>
@@ -6335,12 +6304,28 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</coordinateUnit>
</unitLength>
<unitLength type="narrow">
<compoundUnit type="10p-6">
<unitPrefixPattern>ማይክሮ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p21">
<unitPrefixPattern>ዜታ {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p24">
<unitPrefixPattern>ዮታ {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p27">
<unitPrefixPattern>ሮና {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>ዮቢ {0}</unitPrefixPattern>
</compoundUnit>
<unit type="angle-revolution">
<displayName>ኡደ</displayName>
<unitPattern count="one">{0} ኡደ</unitPattern>
<unitPattern count="other">{0}ኡደ</unitPattern>
</unit>
<unit type="angle-radian">
<displayName>ራዲ</displayName>
<unitPattern count="one">{0}ራዲ</unitPattern>
<unitPattern count="other">{0}ራዲ</unitPattern>
</unit>
@@ -6360,23 +6345,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ማይል²</unitPattern>
<unitPattern count="other">{0} ማይል²</unitPattern>
</unit>
<unit type="area-square-yard">
<unitPattern count="one">{0} ስኴር ያርድ</unitPattern>
<unitPattern count="other">{0} ስኴር ያርድ</unitPattern>
</unit>
<unit type="area-square-foot">
<unitPattern count="one">{0} ጫማ²</unitPattern>
<unitPattern count="other">{0} ጫማ²</unitPattern>
</unit>
<unit type="concentr-part">
<displayName>ክፍል</displayName>
<unitPattern count="one">{0} ክፍል</unitPattern>
<unitPattern count="other">{0} ክፍል</unitPattern>
</unit>
<unit type="concentr-percent">
<displayName>%</displayName>
</unit>
<unit type="concentr-ofglucose">
<displayName>ግሉኮስ</displayName>
<unitPattern count="one">{0} ግሉኮስ</unitPattern>
<unitPattern count="other">{0} ግሉኮስ</unitPattern>
</unit>
<unit type="consumption-liter-per-100-kilometer">
<unitPattern count="one">{0}ሊበ100ኪሜ</unitPattern>
<unitPattern count="other">{0}ሊበ100ኪሜ</unitPattern>
@@ -6424,6 +6403,51 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ሰ</unitPattern>
<unitPattern count="other">{0} ሰ</unitPattern>
</unit>
<unit type="electric-ampere">
<displayName>አምፒር</displayName>
<unitPattern count="one">{0} አምፒር</unitPattern>
<unitPattern count="other">{0} አምፒር</unitPattern>
</unit>
<unit type="electric-volt">
<displayName>ቮልት</displayName>
<unitPattern count="one">{0} ቮልት</unitPattern>
<unitPattern count="other">{0} ቮልት</unitPattern>
</unit>
<unit type="energy-kilocalorie">
<displayName>ኪሎ ካሎሪ</displayName>
<unitPattern count="one">{0} ኪሎ ካሎሪ</unitPattern>
<unitPattern count="other">{0} ኪሎ ካሎሪ</unitPattern>
</unit>
<unit type="energy-kilojoule">
<displayName>ኪጁ</displayName>
<unitPattern count="one">{0} ኪጁ</unitPattern>
<unitPattern count="other">{0} ኪጁ</unitPattern>
</unit>
<unit type="energy-joule">
<displayName>ጁልስ</displayName>
<unitPattern count="one">{0} ጁልስ</unitPattern>
<unitPattern count="other">{0} ጁልስ</unitPattern>
</unit>
<unit type="frequency-gigahertz">
<displayName>ጊጋኸርዝ</displayName>
<unitPattern count="one">{0} ጊጋኸርዝ</unitPattern>
<unitPattern count="other">{0} ጊጋኸርዝ</unitPattern>
</unit>
<unit type="frequency-megahertz">
<displayName>ሜጋኸርዝ</displayName>
<unitPattern count="one">{0} ሜጋኸርዝ</unitPattern>
<unitPattern count="other">{0} ሜጋኸርዝ</unitPattern>
</unit>
<unit type="frequency-kilohertz">
<displayName>ኪሎኸርዝ</displayName>
<unitPattern count="one">{0} ኪሎኸርዝ</unitPattern>
<unitPattern count="other">{0} ኪሎኸርዝ</unitPattern>
</unit>
<unit type="frequency-hertz">
<displayName>ኸርዝ</displayName>
<unitPattern count="one">{0} ኸርዝ</unitPattern>
<unitPattern count="other">{0} ኸርዝ</unitPattern>
</unit>
<unit type="graphics-megapixel">
<unitPattern count="one">{0} ሜፒ</unitPattern>
<unitPattern count="other">{0} ሜፒ</unitPattern>
@@ -6441,11 +6465,33 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ሚሊግራም</unitPattern>
<unitPattern count="other">{0} ሚሊግራም</unitPattern>
</unit>
<unit type="mass-microgram">
<displayName>ማግ</displayName>
<unitPattern count="one">{0} ማግ</unitPattern>
<unitPattern count="other">{0} ማግ</unitPattern>
</unit>
<unit type="mass-carat">
<displayName>ካራት</displayName>
</unit>
<unit type="mass-dalton">
<displayName>ዳልተንስ</displayName>
<unitPattern count="one">{0} ዳልተንስ</unitPattern>
<unitPattern count="other">{0} ዳልተንስ</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>ጊዋ</displayName>
<unitPattern count="one">{0} ጊዋ</unitPattern>
<unitPattern count="other">{0} ጊዋ</unitPattern>
</unit>
<unit type="power-megawatt">
<displayName>ሜዋ</displayName>
<unitPattern count="one">{0} ሜዋ</unitPattern>
<unitPattern count="other">{0} ሜዋ</unitPattern>
</unit>
<unit type="power-milliwatt">
<displayName>ሚዋ</displayName>
<unitPattern count="one">{0} ሚዋ</unitPattern>
<unitPattern count="other">{0} ሚዋ</unitPattern>
</unit>
<unit type="power-horsepower">
<unitPattern count="one">{0} የፈረስ ኃይል</unitPattern>
@@ -6475,10 +6521,26 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0}°</unitPattern>
<unitPattern count="other">{0}°</unitPattern>
</unit>
<unit type="temperature-kelvin">
<displayName></displayName>
<unitPattern count="one">{0} ኬ</unitPattern>
<unitPattern count="other">{0} ኬ</unitPattern>
</unit>
<unit type="volume-cubic-yard">
<displayName>ኪዩቢክ ያርድ</displayName>
<unitPattern count="one">{0} ኪዩቢክ ያርድ</unitPattern>
<unitPattern count="other">{0} ኪዩቢክ ያርድ</unitPattern>
</unit>
<unit type="volume-megaliter">
<displayName>ሜጋሊትር</displayName>
<unitPattern count="one">{0} ሜጋሊትር</unitPattern>
<unitPattern count="other">{0} ሜጋሊትር</unitPattern>
</unit>
<unit type="volume-hectoliter">
<displayName>ሄሊ</displayName>
<unitPattern count="one">{0} ሄሊ</unitPattern>
<unitPattern count="other">{0} ሄሊ</unitPattern>
</unit>
<unit type="volume-milliliter">
<unitPattern count="one">{0} ሚሊ</unitPattern>
<unitPattern count="other">{0} ሚሊ</unitPattern>
@@ -6488,8 +6550,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} ኤጫ</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>ጋሎን</displayName>
<unitPattern count="one">{0} ጋሎን</unitPattern>
<unitPattern count="other">{0} ጋሎን</unitPattern>
<perUnitPattern>{0}/ጋሎን</perUnitPattern>
</unit>
<unit type="volume-quart">
<displayName>ኳርትስ</displayName>
<unitPattern count="one">{0} ኳርትስ</unitPattern>
<unitPattern count="other">{0} ኳርትስ</unitPattern>
</unit>
<unit type="volume-cup">
<displayName>ኩባያ</displayName>
<unitPattern count="one">{0} ኩባያ</unitPattern>
<unitPattern count="other">{0} ኩባያ</unitPattern>
</unit>
<unit type="volume-tablespoon">
<displayName>የሻይ ማንኪያ</displayName>
<unitPattern count="one">{0} የሻይ ማንኪያ</unitPattern>
<unitPattern count="other">{0} የሻይ ማንኪያ</unitPattern>
</unit>
<unit type="volume-teaspoon">
<displayName>የሻይ ማንኪያዎች</displayName>
<unitPattern count="one">{0} የሻይ ማንኪያዎች</unitPattern>
<unitPattern count="other">{0} የሻይ ማንኪያዎች</unitPattern>
</unit>
<unit type="volume-dram">
<unitPattern count="one">{0} ክመ</unitPattern>
@@ -6499,35 +6583,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ፈመ</unitPattern>
<unitPattern count="other">{0} ፈመ</unitPattern>
</unit>
<unit type="concentr-katal">
<displayName>ካት</displayName>
<unitPattern count="one">{0} ካት</unitPattern>
<unitPattern count="other">{0} ካት</unitPattern>
<unit type="speed-light-speed">
<displayName>ብርሃን</displayName>
<unitPattern count="one">{0} ብርሃን</unitPattern>
<unitPattern count="other">{0} ብርሃን</unitPattern>
</unit>
<unit type="electric-henry">
<displayName></displayName>
<unitPattern count="one">{0} </unitPattern>
<unitPattern count="other">{0} </unitPattern>
</unit>
<unit type="energy-calorie-it">
<displayName>ካሎሪ-IT</displayName>
<unitPattern count="one">{0} ካሎሪ-IT</unitPattern>
<unitPattern count="other">{0} ካሎሪ-IT</unitPattern>
</unit>
<unit type="force-kilogram-force">
<displayName>ኪግ-ኃይል</displayName>
<unitPattern count="one">{0} ኪግ-ኃይል</unitPattern>
<unitPattern count="other">{0} ኪግ-ኃይል</unitPattern>
</unit>
<unit type="magnetic-tesla">
<displayName></displayName>
<unitPattern count="one">{0} ቴ</unitPattern>
<unitPattern count="other">{0} ቴ</unitPattern>
</unit>
<unit type="magnetic-weber">
<displayName>ዌበ</displayName>
<unitPattern count="one">{0} ዌበ</unitPattern>
<unitPattern count="other">{0} ዌበ</unitPattern>
<unit type="duration-night">
<displayName>ለሊቶች</displayName>
<unitPattern count="one">{0} ለሊት</unitPattern>
<unitPattern count="other">{0} ለሊት</unitPattern>
<perUnitPattern>{0}/ለሊት</perUnitPattern>
</unit>
</unitLength>
</units>
@@ -6544,6 +6609,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<listPatternPart type="end">{0} ወይም {1}</listPatternPart>
<listPatternPart type="2">{0} ወይም {1}</listPatternPart>
</listPattern>
<listPattern type="or-narrow">
<listPatternPart type="end">{0} ወይም {1}</listPatternPart>
</listPattern>
<listPattern type="or-short">
<listPatternPart type="end">{0} ወይም {1}</listPatternPart>
</listPattern>
<listPattern type="standard-short">
<listPatternPart type="end">{0} እና {1}</listPatternPart>
</listPattern>
<listPattern type="unit">
<listPatternPart type="end">{0} እና {1}</listPatternPart>
</listPattern>
<listPattern type="unit-narrow">
<listPatternPart type="end">{0} እና {1}</listPatternPart>
<listPatternPart type="2">{0} እና {1}</listPatternPart>
</listPattern>
</listPatterns>
<posix>
<messages>
-3
View File
@@ -1066,12 +1066,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<currencyFormatLength>
<currencyFormat type="standard">
<pattern draft="unconfirmed">#,##0.00 ¤</pattern>
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
<currencyFormat type="accounting">
<pattern draft="unconfirmed">¤#,##0.00;(¤#,##0.00)</pattern>
<pattern alt="alphaNextToNumber">¤ #,##0.00;(¤ #,##0.00)</pattern>
<pattern alt="noCurrency">#,##0.00;(#,##0.00)</pattern>
</currencyFormat>
</currencyFormatLength>
<unitPattern count="one" draft="unconfirmed">{0} {1}</unitPattern>
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -133,7 +133,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} بوصة مربعة</unitPattern>
<unitPattern count="other">{0} بوصة مربعة</unitPattern>
</unit>
<unit type="concentr-part-per-1e6">
<unit type="concentr-permillion">
<unitPattern count="zero" draft="contributed">{0} جزء في المليون</unitPattern>
<unitPattern count="one" draft="contributed">{0} جزء في المليون</unitPattern>
<unitPattern count="two" draft="contributed">جزءان في المليون</unitPattern>
@@ -367,7 +367,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} قيراطًا</unitPattern>
<unitPattern count="other">{0} قيراط</unitPattern>
</unit>
<unit type="concentr-part-per-1e6">
<unit type="concentr-permillion">
<unitPattern count="zero" draft="contributed">{0} جزء/مليون</unitPattern>
<unitPattern count="one" draft="contributed">{0} جزء/مليون</unitPattern>
<unitPattern count="two" draft="contributed">جزءان/مليون</unitPattern>
+84 -367
View File
@@ -42,8 +42,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="awa">অৱধী</language>
<language type="ay">আয়মাৰা</language>
<language type="az">আজেৰবাইজানী</language>
<language type="az" alt="short">আজেৰি</language>
<language type="ba">বাছখিৰ</language>
<language type="bal">বালুচী</language>
<language type="ban">বালিনীজ</language>
<language type="bas">বাছা</language>
<language type="be">বেলাৰুছীয়</language>
@@ -226,8 +226,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="ksf">বাফিয়া</language>
<language type="ksh">কোলোগনিয়ান</language>
<language type="ku">কুৰ্ডিচ</language>
<language type="ku" menu="core">কুৰ্ডিশ্ব</language>
<language type="ku" menu="extension">কুৰ্ডিশ্ব</language>
<language type="kum">কুমিক</language>
<language type="kv">কোমি</language>
<language type="kw">কোৰ্নিচ</language>
@@ -621,7 +619,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="CN">চীন</territory>
<territory type="CO">কলম্বিয়া</territory>
<territory type="CP">ক্লিপাৰটোন দ্বীপ</territory>
<territory type="CQ">চাৰ্ক</territory>
<territory type="CR">কোষ্টা ৰিকা</territory>
<territory type="CU">কিউবা</territory>
<territory type="CV">কেপ ভার্দে</territory>
@@ -855,87 +852,49 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<key type="cf">মুদ্ৰা সজ্জা</key>
<key type="collation">সজোৱা ক্ৰম</key>
<key type="currency">মুদ্ৰা</key>
<key type="em">ইম’জীৰ উপস্থাপনা</key>
<key type="hc">ঘণ্টীয়া চক্ৰ (১২ বনাম ২৪)</key>
<key type="lb">পংক্তি বিচ্ছেদ শৈলী</key>
<key type="lw">শব্দৰ মাজত শাৰীৰ বিভাজন</key>
<key type="ms">জোখ-মাখৰ প্ৰণালী</key>
<key type="numbers">সংখ্যা</key>
<key type="ss"></key>
</keys>
<types>
<type key="calendar" type="buddhist">বৌদ্ধ কেলেণ্ডাৰ</type>
<type key="calendar" type="buddhist" scope="core">বৌদ্ধ</type>
<type key="calendar" type="chinese">চীনা কেলেণ্ডাৰ</type>
<type key="calendar" type="chinese" scope="core">চীনা</type>
<type key="calendar" type="coptic">ক’প্টিক কেলেণ্ডাৰ</type>
<type key="calendar" type="coptic" scope="core">ক’প্টিক</type>
<type key="calendar" type="dangi">দাংগি কেলেণ্ডাৰ</type>
<type key="calendar" type="dangi" scope="core">দাংগি</type>
<type key="calendar" type="ethiopic">ইথিঅ’পিক কেলেণ্ডাৰ</type>
<type key="calendar" type="ethiopic" scope="core">ইথিঅ’পিক</type>
<type key="calendar" type="ethiopic-amete-alem">ইথিঅ’পিক এমিটি এলেম কেলেণ্ডাৰ</type>
<type key="calendar" type="ethiopic-amete-alem" scope="core">ইথিঅ’পিক এমিটি এলেম</type>
<type key="calendar" type="gregorian">গ্ৰেগোৰিয়ান কেলেণ্ডাৰ</type>
<type key="calendar" type="gregorian" scope="core">গ্ৰেগোৰিয়ান</type>
<type key="calendar" type="hebrew">হিব্ৰু কেলেণ্ডাৰ</type>
<type key="calendar" type="hebrew" scope="core">হিব্ৰু</type>
<type key="calendar" type="indian">ভাৰতীয় ৰাষ্ট্ৰীয় পঞ্জিকা</type>
<type key="calendar" type="indian" scope="core">ভাৰতীয় ৰাষ্ট্ৰীয়</type>
<type key="calendar" type="islamic">হিজৰি কেলেণ্ডাৰ</type>
<type key="calendar" type="islamic" scope="core">হিজৰি</type>
<type key="calendar" type="islamic-civil">হিজৰি কেলেণ্ডাৰ (টেবুলাৰ, নাগৰিক যুগ)</type>
<type key="calendar" type="islamic-civil" scope="core">হিজৰি (টেবুলাৰ, নাগৰিক যুগ)</type>
<type key="calendar" type="islamic-umalqura">হিজৰি কেলেণ্ডাৰ (উম অল-কুৰা)</type>
<type key="calendar" type="islamic-umalqura" scope="core">হিজৰি (উম অল-কুৰা)</type>
<type key="calendar" type="iso8601">আই. এছ. অ’.-৮৬০১ কেলেণ্ডাৰ</type>
<type key="calendar" type="japanese">জাপানী কেলেণ্ডাৰ</type>
<type key="calendar" type="japanese" scope="core">জাপানী</type>
<type key="calendar" type="persian">ফাৰ্চী কেলেণ্ডাৰ</type>
<type key="calendar" type="persian" scope="core">ফাৰ্চী</type>
<type key="calendar" type="roc">চীনা প্ৰজাতন্ত্ৰৰ কেলেণ্ডাৰ</type>
<type key="calendar" type="roc" scope="core">চীনা প্ৰজাতন্ত্ৰ</type>
<type key="cf" type="account">গাণনিক মুদ্ৰা সজ্জা</type>
<type key="cf" type="account" scope="core">গাণনিক</type>
<type key="cf" type="standard">মান্য মুদ্ৰা সজ্জা</type>
<type key="cf" type="standard" scope="core">মান্য</type>
<type key="collation" type="big5han" draft="contributed">পৰম্পৰাগত চীনা শৃঙ্খলাবদ্ধ কৰাৰ ক্ৰম - Big5</type>
<type key="collation" type="ducet">ডিফ’ল্ট ইউনিকোড সজোৱা ক্ৰম</type>
<type key="collation" type="ducet" scope="core">ডিফ’ল্ট ইউনিকোড</type>
<type key="collation" type="gb2312han" draft="contributed">সৰল চীনা শৃঙ্খলাবদ্ধ কৰাৰ ক্ৰম - GB2312</type>
<type key="collation" type="phonebook" draft="contributed">টেলিফোন বহিৰ মতেশৃঙ্খলাবদ্ধ কৰাৰ ক্ৰম</type>
<type key="collation" type="pinyin" draft="contributed">পিন্‌য়িন শৃঙ্খলাবদ্ধ কৰাৰ ক্ৰম</type>
<type key="collation" type="search">সাধাৰণ উদ্দেশ্যে সন্ধান</type>
<type key="collation" type="search" scope="core">সন্ধান</type>
<type key="collation" type="search">সাধাৰণ উদ্দেশ্যে অনুসন্ধান</type>
<type key="collation" type="standard">মান্য সজোৱা ক্ৰম</type>
<type key="collation" type="standard" scope="core">মান্য</type>
<type key="collation" type="stroke" draft="contributed">স্ট্ৰোক শৃঙ্খলাবদ্ধ কৰাৰ ক্ৰম</type>
<type key="collation" type="traditional" draft="contributed">পৰম্পৰাগতভাবে শৃঙ্খলাবদ্ধ কৰাৰ ক্ৰম</type>
<type key="em" type="default" scope="core">ডিফ’ল্ট</type>
<type key="em" type="emoji" scope="core">ইম’জী</type>
<type key="em" type="text" scope="core">পাঠ্য</type>
<type key="hc" type="h11">১২ ঘণ্টীয়া প্ৰণালী (০–১১)</type>
<type key="hc" type="h11" scope="core">১২ (০–১১) ১২ (০–১১)</type>
<type key="hc" type="h12">১২ ঘণ্টীয়া প্ৰণালী (১–১২)</type>
<type key="hc" type="h12" scope="core">১২ (১–১২) ১২ (১–১২)</type>
<type key="hc" type="h23">২৪ ঘণ্টীয়া প্ৰণালী (০–২৩)</type>
<type key="hc" type="h23" scope="core">24 (023) Hour Cycle (12 vs 24) others… ২৪ (০–২৩) …অন্য ঘণ্টীয়া প্ৰণালী(১২ বনাম ২৪): ২৪ (০–২৩) ৩ (০–২৩)</type>
<type key="hc" type="h24">২৪ ঘণ্টীয়া প্ৰণালী (১–২৪)</type>
<type key="hc" type="h24" scope="core">২৪ (১–২৪) ২৪ (১–২৪)</type>
<type key="lb" type="loose">ঢিলা পংক্তি বিচ্ছেদ শৈলী</type>
<type key="lb" type="loose" scope="core">ঢিলা</type>
<type key="lb" type="normal">সাধাৰণ পংক্তি বিচ্ছেদ শৈলী</type>
<type key="lb" type="normal" scope="core">সাধাৰণ</type>
<type key="lb" type="strict">কঠোৰ পংক্তি বিচ্ছেদ শৈলী</type>
<type key="lb" type="strict" scope="core">পংক্তি বিচ্ছেদ</type>
<type key="lw" type="breakall" scope="core">আটাইবোৰ বিভাজন কৰক</type>
<type key="lw" type="keepall" scope="core">আটাইবোৰ ৰাখক</type>
<type key="lw" type="normal" scope="core">সাধাৰণ</type>
<type key="lw" type="phrase" scope="core">ব্যাক্যাংশত ৰাখক</type>
<type key="ms" type="metric">মেট্ৰিক প্ৰণালী</type>
<type key="ms" type="metric" scope="core">মেট্ৰিক</type>
<type key="ms" type="uksystem">ইম্পেৰিয়েল জোখ-মাখৰ প্ৰণালী</type>
<type key="ms" type="uksystem" scope="core">ইম্পেৰিয়েল</type>
<type key="ms" type="ussystem">মাৰ্কিন যুক্তৰাষ্ট্ৰৰ জোখ-মাখৰ প্ৰণালী</type>
<type key="ms" type="ussystem" scope="core">মাৰ্কিন</type>
<type key="numbers" type="arab">আৰবী-ভাৰতীয় অংক</type>
<type key="numbers" type="arabext">বিস্তাৰিত আৰবী-ভাৰতীয় অংক</type>
<type key="numbers" type="armn">আৰ্মেনীয় সংখ্যা</type>
@@ -976,8 +935,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<type key="numbers" type="thai">থাই অংক</type>
<type key="numbers" type="tibt">তিব্বতী অংক</type>
<type key="numbers" type="vaii">ভেই সংখ্যা</type>
<type key="ss" type="none" scope="core"></type>
<type key="ss" type="standard" scope="core"></type>
</types>
<measurementSystemNames>
<measurementSystemName type="metric">মেট্ৰিক</measurementSystemName>
@@ -1025,7 +982,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</dateFormatLength>
<dateFormatLength type="short">
<dateFormat>
<pattern>G y-MM-dd</pattern>
<pattern>GGGGG y-MM-dd</pattern>
</dateFormat>
</dateFormatLength>
</dateFormats>
@@ -1034,6 +991,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateTimeFormat>
<pattern>{1} {0} বজাত</pattern>
</dateTimeFormat>
<dateTimeFormat type="atTime">
<pattern>{1} 'at' {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="long">
<dateTimeFormat>
@@ -1241,9 +1201,27 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</quarters>
<dayPeriods>
<dayPeriodContext type="format">
<dayPeriodWidth type="narrow">
<dayPeriod type="am">am</dayPeriod>
<dayPeriod type="pm">pm</dayPeriod>
</dayPeriodWidth>
<dayPeriodWidth type="wide">
<dayPeriod type="am">AM</dayPeriod>
<dayPeriod type="pm">PM</dayPeriod>
</dayPeriodWidth>
</dayPeriodContext>
<dayPeriodContext type="stand-alone">
<dayPeriodWidth type="abbreviated">
<dayPeriod type="am">পূৰ্বাহ্ন</dayPeriod>
<dayPeriod type="pm">অপৰাহ্ন</dayPeriod>
<dayPeriod type="am">AM</dayPeriod>
<dayPeriod type="pm">PM</dayPeriod>
</dayPeriodWidth>
<dayPeriodWidth type="narrow">
<dayPeriod type="am">AM</dayPeriod>
<dayPeriod type="pm">PM</dayPeriod>
</dayPeriodWidth>
<dayPeriodWidth type="wide">
<dayPeriod type="am">AM</dayPeriod>
<dayPeriod type="pm">PM</dayPeriod>
</dayPeriodWidth>
</dayPeriodContext>
</dayPeriods>
@@ -2180,9 +2158,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Pacific/Easter">
<exemplarCity>ইষ্টাৰ</exemplarCity>
</zone>
<zone type="America/Coyhaique">
<exemplarCity>কোইহাইক</exemplarCity>
</zone>
<zone type="America/Punta_Arenas">
<exemplarCity>পুণ্টা এৰিনাছ</exemplarCity>
</zone>
@@ -2448,6 +2423,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<exemplarCity>নোম পেন্‌হ</exemplarCity>
</zone>
<zone type="Pacific/Enderbury">
<exemplarCity>এণ্ডৰবাৰী</exemplarCity>
</zone>
<zone type="Pacific/Kanton">
<exemplarCity>কেণ্টন</exemplarCity>
</zone>
<zone type="Pacific/Kiritimati">
@@ -3117,7 +3095,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Africa_Western">
<long>
<standard>পশ্চিম আফ্ৰিকাৰ সময়</standard>
<generic>পশ্চিম আফ্ৰিকাৰ সময়</generic>
<standard>পশ্চিম আফ্ৰিকাৰ মান সময়</standard>
<daylight>পশ্চিম আফ্ৰিকাৰ গ্ৰীষ্মকালীন সময়</daylight>
</long>
</metazone>
<metazone type="Alaska">
@@ -3467,11 +3447,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<standard>গায়ানাৰ সময়</standard>
</long>
</metazone>
<metazone type="Hawaii">
<long>
<standard>হাৱাই-এলিউশ্বনৰ মান সময়</standard>
</long>
</metazone>
<metazone type="Hawaii_Aleutian">
<long>
<generic>হাৱাই-এলিউশ্বনৰ সময়</generic>
@@ -3980,9 +3955,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<otherNumberingSystems>
<native>beng</native>
</otherNumberingSystems>
<symbols numberSystem="beng">
<timeSeparator draft="contributed">:</timeSeparator>
</symbols>
<symbols numberSystem="latn">
<timeSeparator draft="unconfirmed">.</timeSeparator>
</symbols>
@@ -4032,8 +4004,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<pattern type="1000000" count="other">0 নিযুত</pattern>
<pattern type="10000000" count="one">00 নিযুত</pattern>
<pattern type="10000000" count="other">00 নিযুত</pattern>
<pattern type="100000000" count="one">0 নিঃ</pattern>
<pattern type="100000000" count="other">0 নিঃ</pattern>
<pattern type="100000000" count="one">000 নিঃ</pattern>
<pattern type="100000000" count="other">000 নিঃ</pattern>
<pattern type="1000000000" count="one">0 শঃ কোঃ</pattern>
<pattern type="1000000000" count="other">0 শঃ কোঃ</pattern>
<pattern type="10000000000" count="one">00 শঃ কোঃ</pattern>
@@ -4049,9 +4021,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</decimalFormat>
</decimalFormatLength>
</decimalFormats>
<rationalFormats numberSystem="beng">
<rationalUsage>never</rationalUsage>
</rationalFormats>
<percentFormats numberSystem="latn">
<percentFormatLength>
<percentFormat>
@@ -4062,11 +4031,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<currencyFormats numberSystem="beng">
<currencyFormatLength>
<currencyFormat type="standard">
<pattern alt="alphaNextToNumber">¤ #,##,##0.00</pattern>
<pattern alt="noCurrency">#,##,##0.00</pattern>
</currencyFormat>
<currencyFormat type="accounting">
<pattern alt="alphaNextToNumber">¤ #,##0.00;(¤ #,##0.00)</pattern>
<pattern alt="noCurrency">#,##0.00</pattern>
</currencyFormat>
</currencyFormatLength>
</currencyFormats>
@@ -4074,12 +4039,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<currencyFormatLength>
<currencyFormat type="standard">
<pattern>¤ #,##,##0.00</pattern>
<pattern alt="alphaNextToNumber">¤ #,##,##0.00</pattern>
<pattern alt="noCurrency">#,##,##0.00</pattern>
<pattern alt="noCurrency" draft="provisional">#,##,##0.00</pattern>
</currencyFormat>
<currencyFormat type="accounting">
<pattern>¤#,##0.00;(¤#,##0.00)</pattern>
<pattern alt="alphaNextToNumber">¤ #,##0.00;(¤ #,##0.00)</pattern>
<pattern alt="noCurrency">#,##0.00;(#,##0.00)</pattern>
</currencyFormat>
</currencyFormatLength>
@@ -4089,26 +4052,26 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<pattern type="1000" count="other">¤ 0 হাজাৰ</pattern>
<pattern type="10000" count="one">¤ 00 হাজাৰ</pattern>
<pattern type="10000" count="other">¤ 00 হাজাৰ</pattern>
<pattern type="100000" count="one">¤ 0 লাখ</pattern>
<pattern type="100000" count="other">¤ 0 লাখ</pattern>
<pattern type="100000" count="one">¤ 000 লাখ</pattern>
<pattern type="100000" count="other">¤ 000 লাখ</pattern>
<pattern type="1000000" count="one">¤ 0 নিযুত</pattern>
<pattern type="1000000" count="other">¤ 0 নিযুত</pattern>
<pattern type="10000000" count="one">¤ 00 নিযুত</pattern>
<pattern type="10000000" count="other">¤ 00 নিযুত</pattern>
<pattern type="100000000" count="one">¤ 0 নি</pattern>
<pattern type="100000000" count="other">¤ 0 নি</pattern>
<pattern type="1000000000" count="one">¤ 0 শ কো</pattern>
<pattern type="1000000000" count="other">¤ 0 শ কো</pattern>
<pattern type="10000000000" count="one">¤ 00 শ কো</pattern>
<pattern type="10000000000" count="other">¤ 00 শ কো</pattern>
<pattern type="100000000000" count="one">¤ 000 শ ক</pattern>
<pattern type="100000000000" count="other">¤ 000 শ ক</pattern>
<pattern type="1000000000000" count="one">¤ 0 শ প</pattern>
<pattern type="1000000000000" count="other">¤ 0 শ প</pattern>
<pattern type="10000000000000" count="one">¤ 00 শ প</pattern>
<pattern type="10000000000000" count="other">¤ 00 শ প</pattern>
<pattern type="100000000000000" count="one">¤ 000 শ প</pattern>
<pattern type="100000000000000" count="other">¤ 000 শ প</pattern>
<pattern type="100000000" count="one">¤ 000 নিযুত</pattern>
<pattern type="100000000" count="other">¤ 000 নিযুত</pattern>
<pattern type="1000000000" count="one">¤ 0 শ কোটি</pattern>
<pattern type="1000000000" count="other">¤ 0 শ কোটি</pattern>
<pattern type="10000000000" count="one">¤ 00 শ কোটি</pattern>
<pattern type="10000000000" count="other">¤ 00 শ কোটি</pattern>
<pattern type="100000000000" count="one">¤ 000 শ কোটি</pattern>
<pattern type="100000000000" count="other">¤ 000 শ কোটি</pattern>
<pattern type="1000000000000" count="one">¤ 0 শ পৰাৰ্দ্ধ</pattern>
<pattern type="1000000000000" count="other">¤ 0 শ পৰাৰ্দ্ধ</pattern>
<pattern type="10000000000000" count="one">¤ 00 শ পৰাৰ্দ্ধ</pattern>
<pattern type="10000000000000" count="other">¤ 00 শ পৰাৰ্দ্ধ</pattern>
<pattern type="100000000000000" count="one">¤ 000 শ পৰাৰ্দ্ধ</pattern>
<pattern type="100000000000000" count="other">¤ 000 শ পৰাৰ্দ্ধ</pattern>
</currencyFormat>
</currencyFormatLength>
<currencyPatternAppendISO>{0} ¤¤</currencyPatternAppendISO>
@@ -4116,6 +4079,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<currencies>
<currency type="AED">
<displayName>সংযুক্ত আৰব আমিৰাত ডিৰহেম</displayName>
<displayName count="one">UAE ডিৰহেম</displayName>
<displayName count="other">UAE ডিৰহেম</displayName>
</currency>
<currency type="AFN">
<displayName>আফগান আফগানী</displayName>
@@ -4598,11 +4563,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<currency type="XCD">
<displayName>ইষ্ট কেৰিবিয়ান ডলাৰ</displayName>
</currency>
<currency type="XCG">
<displayName>কেৰিবীয়ান গিল্ডাৰ</displayName>
<displayName count="one">কেৰিবীয়ান গিল্ডাৰ</displayName>
<displayName count="other">কেৰিবীয়ান গিল্ডাৰ</displayName>
</currency>
<currency type="XOF">
<displayName>পশ্চিম আফ্ৰিকান CFA ফ্ৰেংক</displayName>
</currency>
@@ -4623,11 +4583,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<currency type="ZMW">
<displayName>জাম্বিয়ান কোৱাচা</displayName>
</currency>
<currency type="ZWG">
<displayName>জিম্বাৱীয় সোণ</displayName>
<displayName count="one">জিম্বাৱীয় সোণ</displayName>
<displayName count="other">জিম্বাৱীয় সোণ</displayName>
</currency>
</currencies>
<miscPatterns numberSystem="latn">
<pattern type="atLeast">{0}+</pattern>
@@ -4799,12 +4754,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unit type="concentr-item">
<displayName>আইটেমসমূহ</displayName>
</unit>
<unit type="concentr-part">
<displayName>অংশ</displayName>
<unitPattern count="one">{0} অংশ</unitPattern>
<unitPattern count="other">{0} অংশ</unitPattern>
</unit>
<unit type="concentr-part-per-1e6">
<unit type="concentr-permillion">
<displayName>প্ৰতি মিলিয়নত ভাগ</displayName>
<unitPattern count="one">প্ৰতি মিলিয়নত {0} ভাগ</unitPattern>
<unitPattern count="other">প্ৰতি মিলিয়নত {0} ভাগ</unitPattern>
@@ -4822,11 +4772,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} পাৰমিৰেইড</unitPattern>
<unitPattern count="other">{0} পাৰমিৰেইড</unitPattern>
</unit>
<unit type="concentr-ofglucose">
<displayName>গ্লুক’জ</displayName>
<unitPattern count="one">{0} গ্লুঃ</unitPattern>
<unitPattern count="other">{0}গ্লুঃ</unitPattern>
</unit>
<unit type="consumption-liter-per-kilometer">
<displayName>প্ৰতি কিলোমিটাৰত লিটাৰ</displayName>
<unitPattern count="one">প্ৰতি কিলোমিটাৰত {0} লিটাৰ</unitPattern>
@@ -5186,11 +5131,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} মিলিমিটাৰ মাৰ্কিউৰী</unitPattern>
<unitPattern count="other">{0} মিলিমিটাৰ মাৰ্কিউৰী</unitPattern>
</unit>
<unit type="pressure-ofhg">
<displayName>মাৰ্কিঃ</displayName>
<unitPattern count="one">{0} মাৰ্কিঃ</unitPattern>
<unitPattern count="other">{0} মাৰ্কিঃ</unitPattern>
</unit>
<unit type="pressure-pound-force-per-square-inch">
<displayName>প্ৰতি বৰ্গ ইঞ্চিত পাউণ্ড</displayName>
<unitPattern count="one">{0} প্ৰতি বৰ্গ ইঞ্চিত পাউণ্ড</unitPattern>
@@ -5343,11 +5283,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} মেট্ৰিক কাপ</unitPattern>
<unitPattern count="other">{0} মেট্ৰিক কাপ</unitPattern>
</unit>
<unit type="volume-fluid-ounce-metric">
<displayName>ফ্লুঃ আঃ মেঃ</displayName>
<unitPattern count="one">{0} ফ্লুঃ আঃ মেঃ</unitPattern>
<unitPattern count="other">{0}ফ্লুঃ আঃ মেঃ</unitPattern>
</unit>
<unit type="volume-acre-foot">
<unitPattern count="one">{0} একৰ-ফুট</unitPattern>
<unitPattern count="other">{0} একৰ-ফুট</unitPattern>
@@ -5399,76 +5334,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ইম্পেৰিয়েল কুৱাৰ্ট</unitPattern>
<unitPattern count="other">{0} ইম্পেৰিয়েল কুৱাৰ্ট</unitPattern>
</unit>
<unit type="angle-steradian">
<displayName>ষ্টেৰাডিয়ান</displayName>
<unitPattern count="one">{0} ষ্টেৰাঃ</unitPattern>
<unitPattern count="other">{0} ষ্টেৰাঃ</unitPattern>
<unit type="speed-light-speed">
<displayName>আলোক</displayName>
<unitPattern count="one">{0} আলোক</unitPattern>
<unitPattern count="other">{0} আলোক</unitPattern>
</unit>
<unit type="concentr-katal">
<displayName>কাটাল</displayName>
<unitPattern count="one">{0} কাটাঃ</unitPattern>
<unitPattern count="other">{0} কাটাঃ</unitPattern>
</unit>
<unit type="electric-coulomb">
<displayName>কুলম্ব</displayName>
<unitPattern count="one">{0} কুঃ</unitPattern>
<unitPattern count="other">{0} কুঃ</unitPattern>
</unit>
<unit type="electric-farad">
<displayName>ফাৰাড</displayName>
<unitPattern count="one">{0}ফাঃ</unitPattern>
<unitPattern count="other">{0} ফাঃ</unitPattern>
</unit>
<unit type="electric-henry">
<displayName>হেনৰী</displayName>
<unitPattern count="one">{0} হেনঃ</unitPattern>
<unitPattern count="other">{0}হেনঃ</unitPattern>
</unit>
<unit type="electric-siemens">
<displayName>ছিয়েমেন</displayName>
<unitPattern count="one">{0} ছিয়েঃ</unitPattern>
<unitPattern count="other">{0} ছিয়েঃ</unitPattern>
</unit>
<unit type="energy-calorie-it">
<displayName>কেল’ৰি-আইটি</displayName>
<unitPattern count="one">{0}কেল-আইটি</unitPattern>
<unitPattern count="other">{0} কেল-আইটি</unitPattern>
</unit>
<unit type="energy-becquerel">
<displayName>বেকাৰেল</displayName>
<unitPattern count="one">{0} বেঃ</unitPattern>
<unitPattern count="other">{0} বেঃ</unitPattern>
</unit>
<unit type="energy-sievert">
<displayName>চিয়েভাৰ্ট</displayName>
<unitPattern count="one">{0} এচভিঃ</unitPattern>
<unitPattern count="other">{0} এচভিঃ</unitPattern>
</unit>
<unit type="energy-gray">
<displayName>গ্ৰে</displayName>
<unitPattern count="one">{0} গ্ৰে</unitPattern>
<unitPattern count="other">{0} গ্ৰে</unitPattern>
</unit>
<unit type="force-kilogram-force">
<displayName>কিলোগ্ৰাম-বল</displayName>
<unitPattern count="one">{0} কিঃগ্ৰাঃবঃ</unitPattern>
<unitPattern count="other">{0} কিঃগ্ৰাঃবঃ</unitPattern>
</unit>
<unit type="magnetic-tesla">
<displayName>টেচলা</displayName>
<unitPattern count="one">{0} টেঃ</unitPattern>
<unitPattern count="other">{0} টেঃ</unitPattern>
</unit>
<unit type="magnetic-weber">
<displayName>ৱেবাৰ</displayName>
<unitPattern count="one">{0} ৱেঃ</unitPattern>
<unitPattern count="other">{0} ৱেঃ</unitPattern>
</unit>
<unit type="concentr-part-per-1e9">
<unit type="concentr-portion-per-1e9">
<displayName>প্ৰতি বিলিয়নত অংশ</displayName>
<unitPattern count="one">{0} প্ৰতি বিলিয়নত অংশ</unitPattern>
<unitPattern count="other">{0} প্ৰতি বিলিয়নত অংশ</unitPattern>
</unit>
<unit type="duration-night">
<displayName>নিশা</displayName>
<unitPattern count="one">{0} নিশা</unitPattern>
<unitPattern count="other">{0} নিশা</unitPattern>
<perUnitPattern>{0}/নিশা</perUnitPattern>
</unit>
<coordinateUnit>
<displayName>প্ৰধান দিক্-নিৰ্দেশনা</displayName>
<coordinateUnitPattern type="east">{0} পূব</coordinateUnitPattern>
@@ -5661,12 +5542,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} টা আইটেম</unitPattern>
<unitPattern count="other">{0} টা আইটেম</unitPattern>
</unit>
<unit type="concentr-part">
<displayName>অংশ</displayName>
<unitPattern count="one">{0} অংশ</unitPattern>
<unitPattern count="other">{0} অংশ</unitPattern>
</unit>
<unit type="concentr-part-per-1e6">
<unit type="concentr-permillion">
<displayName>ভাগ/মিলিয়ন</displayName>
</unit>
<unit type="concentr-percent">
@@ -5683,11 +5559,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ম’ল</unitPattern>
<unitPattern count="other">{0} ম’ল</unitPattern>
</unit>
<unit type="concentr-ofglucose">
<displayName>গ্লুঃ</displayName>
<unitPattern count="one">{0} গ্লুঃ</unitPattern>
<unitPattern count="other">{0} গ্লুঃ</unitPattern>
</unit>
<unit type="consumption-liter-per-kilometer">
<displayName>লিটাৰ/কিঃ মিঃ</displayName>
<unitPattern count="one">{0} লিঃ/কিঃ মিঃ</unitPattern>
@@ -6185,13 +6056,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</unit>
<unit type="pressure-millimeter-ofhg">
<displayName>mmHg</displayName>
<unitPattern count="one">{0} মিঃমিঃমাৰ্কিঃ</unitPattern>
<unitPattern count="other">{0}মিঃমিঃমাৰ্কিঃ</unitPattern>
</unit>
<unit type="pressure-ofhg">
<displayName>মাৰ্কিঃ</displayName>
<unitPattern count="one">{0} মাৰ্কিঃ</unitPattern>
<unitPattern count="other">{0} মাৰ্কিঃ</unitPattern>
<unitPattern count="one">{0} mmHg</unitPattern>
<unitPattern count="other">{0} mmHg</unitPattern>
</unit>
<unit type="pressure-bar">
<displayName>বাৰ</displayName>
@@ -6315,11 +6181,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} মেঃ কাঃ</unitPattern>
<unitPattern count="other">{0} মেঃ কাঃ</unitPattern>
</unit>
<unit type="volume-fluid-ounce-metric">
<displayName>ফ্লুঃ আঃ মেঃ</displayName>
<unitPattern count="one">{0}ফ্লুঃ আঃ মেঃ</unitPattern>
<unitPattern count="other">{0} ফ্লুঃ আঃ মেঃ</unitPattern>
</unit>
<unit type="volume-acre-foot">
<displayName>একৰ-ফুট</displayName>
<unitPattern count="one">{0} এঃ-ফুঃ</unitPattern>
@@ -6398,77 +6259,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} পিঞ্চ</unitPattern>
<unitPattern count="other">{0} পিঞ্চ</unitPattern>
</unit>
<unit type="angle-steradian">
<displayName>ষ্টেৰাঃ</displayName>
<unitPattern count="one">{0} ষ্টেৰাঃ</unitPattern>
<unitPattern count="other">{0}ষ্টেৰাঃ</unitPattern>
</unit>
<unit type="concentr-katal">
<displayName>কাটাঃ</displayName>
<unitPattern count="one">{0} কাটাঃ</unitPattern>
<unitPattern count="other">{0} কাটাঃ</unitPattern>
</unit>
<unit type="electric-coulomb">
<displayName>কুঃ</displayName>
<unitPattern count="one">{0} কুঃ</unitPattern>
<unitPattern count="other">{0} কুঃ</unitPattern>
</unit>
<unit type="electric-farad">
<displayName>ফাঃ</displayName>
<unitPattern count="one">{0} ফাঃ</unitPattern>
<unitPattern count="other">{0} ফাঃ</unitPattern>
</unit>
<unit type="electric-henry">
<displayName>হেনঃ</displayName>
<unitPattern count="one">{0} হেনঃ</unitPattern>
<unitPattern count="other">{0} হেনঃ</unitPattern>
</unit>
<unit type="electric-siemens">
<displayName>ছিয়েঃ</displayName>
<unitPattern count="one">{0} ছিয়েঃ</unitPattern>
<unitPattern count="other">{0} ছিয়েঃ</unitPattern>
</unit>
<unit type="energy-calorie-it">
<displayName>কেল’ৰি-আইটি</displayName>
<unitPattern count="one">{0} কেল-আইটি</unitPattern>
<unitPattern count="other">{0} কেল-আইটি</unitPattern>
</unit>
<unit type="energy-becquerel">
<displayName>বেঃ</displayName>
<unitPattern count="one">{0}বেঃ</unitPattern>
<unitPattern count="other">{0}বেঃ</unitPattern>
</unit>
<unit type="energy-sievert">
<displayName>এচভিঃ</displayName>
<unitPattern count="one">{0} এচভিঃ</unitPattern>
<unitPattern count="other">{0} এচভিঃ</unitPattern>
</unit>
<unit type="energy-gray">
<displayName>গ্ৰে</displayName>
<unitPattern count="one">{0}গ্ৰে</unitPattern>
<unitPattern count="other">{0} গ্ৰে</unitPattern>
</unit>
<unit type="force-kilogram-force">
<displayName>কিঃগ্ৰাঃবঃ</displayName>
<unitPattern count="one">{0} কিঃগ্ৰাঃবঃ</unitPattern>
<unitPattern count="other">{0} কিঃগ্ৰাঃবঃ</unitPattern>
</unit>
<unit type="magnetic-tesla">
<displayName>টেঃ</displayName>
<unitPattern count="one">{0} টেঃ</unitPattern>
<unitPattern count="other">{0} টেঃ</unitPattern>
</unit>
<unit type="magnetic-weber">
<displayName>ৱেঃ</displayName>
<unitPattern count="one">{0} ৱেঃ</unitPattern>
<unitPattern count="other">{0} ৱেঃ</unitPattern>
</unit>
<unit type="speed-light-speed">
<displayName>আলোক</displayName>
<unitPattern count="one">{0} আলোক</unitPattern>
<unitPattern count="other">{0} আলোক</unitPattern>
</unit>
<unit type="concentr-part-per-1e9">
<unit type="concentr-portion-per-1e9">
<displayName>অংশ/বিলিয়ন</displayName>
</unit>
<unit type="duration-night">
@@ -6571,12 +6367,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0}″</unitPattern>
<unitPattern count="other">{0}″</unitPattern>
</unit>
<unit type="concentr-part">
<displayName>অংশ</displayName>
<unitPattern count="one">{0} অংশ</unitPattern>
<unitPattern count="other">{0} অংশ</unitPattern>
</unit>
<unit type="concentr-part-per-1e6">
<unit type="concentr-permillion">
<displayName>ppm</displayName>
<unitPattern count="one">{0}ppm</unitPattern>
<unitPattern count="other">{0}ppm</unitPattern>
@@ -6590,11 +6381,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unit type="concentr-permyriad">
<displayName></displayName>
</unit>
<unit type="concentr-ofglucose">
<displayName>গ্লুঃ</displayName>
<unitPattern count="one">{0} গ্লুঃ</unitPattern>
<unitPattern count="other">{0} গ্লুঃ</unitPattern>
</unit>
<unit type="consumption-liter-per-100-kilometer">
<displayName>ল/১০০ ক.ম.</displayName>
</unit>
@@ -6649,6 +6435,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0}কেলৰি</unitPattern>
<unitPattern count="other">{0}কেলৰি</unitPattern>
</unit>
<unit type="force-newton">
<displayName>N</displayName>
</unit>
<unit type="force-kilowatt-hour-per-100-kilometer">
<unitPattern count="one">{0}kWh/100km</unitPattern>
<unitPattern count="other">{0} kWh/100km</unitPattern>
@@ -6688,15 +6477,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unit type="light-solar-luminosity">
<displayName>L☉</displayName>
</unit>
<unit type="pressure-millimeter-ofhg">
<unitPattern count="one">{0} মিঃমিঃমাৰ্কিঃ</unitPattern>
<unitPattern count="other">{0}মিঃমিঃমাৰ্কিঃ</unitPattern>
</unit>
<unit type="pressure-ofhg">
<displayName>মাৰ্কিঃ</displayName>
<unitPattern count="one">{0} মাৰ্কিঃ</unitPattern>
<unitPattern count="other">{0} মাৰ্কিঃ</unitPattern>
</unit>
<unit type="pressure-inch-ofhg">
<displayName>″ Hg</displayName>
<unitPattern count="one">{0}″ Hg</unitPattern>
@@ -6722,11 +6502,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0}°</unitPattern>
<unitPattern count="other">{0}°</unitPattern>
</unit>
<unit type="volume-fluid-ounce-metric">
<displayName>ফ্লুঃ আঃ মেঃ</displayName>
<unitPattern count="one">{0}ফ্লুঃ আঃ মেঃ</unitPattern>
<unitPattern count="other">{0} ফ্লুঃ আঃ মেঃ</unitPattern>
</unit>
<unit type="volume-teaspoon">
<unitPattern count="one">{0}টিস্পুন</unitPattern>
<unitPattern count="other">{0}টিস্পুন</unitPattern>
@@ -6740,79 +6515,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0}dsp-Imp</unitPattern>
<unitPattern count="other">{0}dsp-Imp</unitPattern>
</unit>
<unit type="angle-steradian">
<displayName>ষ্টেৰাঃ</displayName>
<unitPattern count="one">{0} ষ্টেৰাঃ</unitPattern>
<unitPattern count="other">{0}ষ্টেৰাঃ</unitPattern>
</unit>
<unit type="concentr-katal">
<displayName>কাটাঃ</displayName>
<unitPattern count="one">{0} কাটাঃ</unitPattern>
<unitPattern count="other">{0} কাটাঃ</unitPattern>
</unit>
<unit type="electric-coulomb">
<displayName>কুঃ</displayName>
<unitPattern count="one">{0} কুঃ</unitPattern>
<unitPattern count="other">{0} কুঃ</unitPattern>
</unit>
<unit type="electric-farad">
<displayName>ফাঃ</displayName>
<unitPattern count="one">{0} ফাঃ</unitPattern>
<unitPattern count="other">{0} ফাঃ</unitPattern>
</unit>
<unit type="electric-henry">
<displayName>হেনঃ</displayName>
<unitPattern count="one">{0} হেনঃ</unitPattern>
<unitPattern count="other">{0} হেনঃ</unitPattern>
</unit>
<unit type="electric-siemens">
<displayName>ছিয়েঃ</displayName>
<unitPattern count="one">{0} ছিয়েঃ</unitPattern>
<unitPattern count="other">{0} ছিয়েঃ</unitPattern>
</unit>
<unit type="energy-calorie-it">
<displayName>কেল’ৰি-আইটি</displayName>
<unitPattern count="one">{0} কেল-আইটি</unitPattern>
<unitPattern count="other">{0} কেল-আইটি</unitPattern>
</unit>
<unit type="energy-becquerel">
<displayName>বেঃ</displayName>
<unitPattern count="one">{0}বেঃ</unitPattern>
<unitPattern count="other">{0}বেঃ</unitPattern>
</unit>
<unit type="energy-sievert">
<displayName>এচভিঃ</displayName>
<unitPattern count="one">{0} এচভিঃ</unitPattern>
<unitPattern count="other">{0} এচভিঃ</unitPattern>
</unit>
<unit type="energy-gray">
<displayName>গ্ৰে</displayName>
<unitPattern count="one">{0} গ্ৰে</unitPattern>
<unitPattern count="other">{0}গ্ৰে</unitPattern>
</unit>
<unit type="force-kilogram-force">
<displayName>কিঃগ্ৰাঃবঃ</displayName>
<unitPattern count="one">{0} কিঃগ্ৰাঃবঃ</unitPattern>
<unitPattern count="other">{0} কিঃগ্ৰাঃবঃ</unitPattern>
</unit>
<unit type="magnetic-tesla">
<displayName>টেঃ</displayName>
<unitPattern count="one">{0} টেঃ</unitPattern>
<unitPattern count="other">{0} টেঃ</unitPattern>
</unit>
<unit type="magnetic-weber">
<displayName>ৱেঃ</displayName>
<unitPattern count="one">{0} ৱেঃ</unitPattern>
<unitPattern count="other">{0} ৱেঃ</unitPattern>
</unit>
<unit type="speed-light-speed">
<displayName>আলোক</displayName>
<unitPattern count="one">{0}আলোক</unitPattern>
<unitPattern count="other">{0}আলোক</unitPattern>
</unit>
<unit type="concentr-part-per-1e9">
<unit type="concentr-portion-per-1e9">
<unitPattern count="one">{0}ppb</unitPattern>
<unitPattern count="other">{0}ppb</unitPattern>
</unit>
<unit type="duration-night">
<displayName>নিশা</displayName>
<unitPattern count="one">{0} নিশা</unitPattern>
<unitPattern count="other">{0} নিশা</unitPattern>
<perUnitPattern>{0}/নিশা</perUnitPattern>
</unit>
</unitLength>
</units>
<listPatterns>
-4
View File
@@ -556,10 +556,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<currencyFormatLength>
<currencyFormat type="standard">
<pattern>#,##0.00 ¤</pattern>
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
<currencyFormat type="accounting">
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
</currencyFormatLength>
<currencyFormatLength type="short">
+29 -12
View File
@@ -1198,11 +1198,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<type key="calendar" type="roc">calendariu de la República de China</type>
<type key="cf" type="account">formatu monetariu contable</type>
<type key="cf" type="standard">formatu monetariu estándar</type>
<type key="collation" type="big5han">orde de clasificación chinu tradicional - Big5</type>
<type key="collation" type="compat">orde de clasificación anterior, por compatibilidá</type>
<type key="collation" type="dictionary">orde de clasificación de diccionariu</type>
<type key="collation" type="ducet">orde de clasificación Unicode predetermináu</type>
<type key="collation" type="emoji">orde de clasificación Emoji</type>
<type key="collation" type="eor">regles dordenamientu europees</type>
<type key="collation" type="gb2312han">orde de clasificación chinu simplificáu - GB2312</type>
<type key="collation" type="phonebook">orde de clasificación de llista telefónica</type>
<type key="collation" type="pinyin">orde de clasificación pinyin</type>
<type key="collation" type="search">gueta xeneral</type>
@@ -1703,6 +1705,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic
</monthWidth>
</monthContext>
</months>
<eras>
<eraNames>
<era type="0">antes de la Encarnación</era>
<era type="1">después de la Encarnación</era>
</eraNames>
<eraAbbr>
<era type="0">a. E.</era>
<era type="1">d. E.</era>
</eraAbbr>
<eraNarrow>
<era type="0">aE</era>
<era type="1">dE</era>
</eraNarrow>
</eras>
<dateTimeFormats>
<intervalFormats>
<intervalFormatItem id="yMMMd">
@@ -3360,6 +3376,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<regionFormat type="daylight">Hora braniega de {0}</regionFormat>
<regionFormat type="standard">Hora estándar de {0}</regionFormat>
<zone type="Pacific/Honolulu">
<short>
<generic>HST</generic>
<standard>HST</standard>
<daylight>HDT</daylight>
</short>
<exemplarCity>Honolulu</exemplarCity>
</zone>
<zone type="Etc/UTC">
@@ -3535,6 +3556,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<zone type="Asia/Tokyo">
<exemplarCity>Tokiu</exemplarCity>
</zone>
<zone type="Pacific/Enderbury">
<exemplarCity>Enderbury</exemplarCity>
</zone>
<zone type="Asia/Pyongyang">
<exemplarCity>Pyong Yang</exemplarCity>
</zone>
@@ -3744,7 +3768,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic
</metazone>
<metazone type="Africa_Western">
<long>
<standard>Hora d’África del oeste</standard>
<generic>Hora d’África del oeste</generic>
<standard>Hora estándar d’África del oeste</standard>
<daylight>Hora braniega d’África del oeste</daylight>
</long>
</metazone>
<metazone type="Alaska">
@@ -4180,11 +4206,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<standard>Hora de La Guyana</standard>
</long>
</metazone>
<metazone type="Hawaii">
<long>
<standard>Hora estándar de Hawaii-Aleutianes</standard>
</long>
</metazone>
<metazone type="Hawaii_Aleutian">
<long>
<generic>Hora de Hawaii-Aleutianes</generic>
@@ -4751,10 +4772,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<currencyFormatLength>
<currencyFormat type="standard">
<pattern>#,##0.00 ¤</pattern>
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
<currencyFormat type="accounting">
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
</currencyFormatLength>
<currencyFormatLength type="short">
@@ -6414,7 +6431,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="one">{0} milimol per llitru</unitPattern>
<unitPattern count="other">{0} milimoles per llitru</unitPattern>
</unit>
<unit type="concentr-part-per-1e6">
<unit type="concentr-permillion">
<displayName>partes per millón</displayName>
<unitPattern count="one">{0} parte per millón</unitPattern>
<unitPattern count="other">{0} partes per millón</unitPattern>
@@ -7326,7 +7343,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="one">{0}mmol/L</unitPattern>
<unitPattern count="other">{0}mmol/L</unitPattern>
</unit>
<unit type="concentr-part-per-1e6">
<unit type="concentr-permillion">
<unitPattern count="one">{0}ppm</unitPattern>
<unitPattern count="other">{0}ppm</unitPattern>
</unit>
+92 -336
View File
@@ -124,6 +124,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="dav">taita</language>
<language type="de">alman</language>
<language type="de_AT">Avstriya almancası</language>
<language type="de_CH">İsveçrə yüksək almancası</language>
<language type="del">delaver</language>
<language type="den">slavey</language>
<language type="dgr">doqrib</language>
@@ -256,10 +257,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="kbd">kabarda-çərkəz</language>
<language type="kcg">tiyap</language>
<language type="kde">makond</language>
<language type="kea">kabuverdianu</language>
<language type="kea">kabuverdian</language>
<language type="kfo">koro</language>
<language type="kg">konqo</language>
<language type="kgp">kaynqanq</language>
<language type="kgp">kaiqanq</language>
<language type="kha">xazi</language>
<language type="kho">xotan</language>
<language type="khq">koyra çiini</language>
@@ -286,8 +287,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="ksf">bafia</language>
<language type="ksh">köln</language>
<language type="ku">kürd</language>
<language type="ku" menu="core">kürd dili</language>
<language type="ku" menu="extension">kurmanci (kürd dili) dialekti</language>
<language type="kum">kumık</language>
<language type="kut">kutenay</language>
<language type="kv">komi</language>
@@ -806,7 +805,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="CN">Çin</territory>
<territory type="CO">Kolumbiya</territory>
<territory type="CP">Klipperton adası</territory>
<territory type="CQ">sark (ingilis dili) dialekti</territory>
<territory type="CR">Kosta Rika</territory>
<territory type="CU">Kuba</territory>
<territory type="CV">Kabo-Verde</territory>
@@ -1041,85 +1039,45 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<key type="cf">Valyuta Formatı</key>
<key type="collation">Sıralama</key>
<key type="currency">Valyuta</key>
<key type="em">Emojilərin təqdim edilməsi</key>
<key type="hc">Saat Sikli (12 / 24)</key>
<key type="lb">Sətirdən sətrə keçirmə üslubu</key>
<key type="lw">Sözlərin bölünərək sətirdən-sətrə keçirilməsi</key>
<key type="ms">Ölçü Sistemi</key>
<key type="numbers">Rəqəmlər</key>
<key type="ss">Abreviaturadan sonra cümlə kəsintisi</key>
</keys>
<types>
<type key="calendar" type="buddhist">Buddist təqvimi</type>
<type key="calendar" type="buddhist" scope="core">Buddist</type>
<type key="calendar" type="chinese">Çin təqvimi</type>
<type key="calendar" type="chinese" scope="core">Çin</type>
<type key="calendar" type="coptic">Kopt təqvimi</type>
<type key="calendar" type="coptic" scope="core">Qibti</type>
<type key="calendar" type="dangi">Dangi təqvimi</type>
<type key="calendar" type="dangi" scope="core">Dangi</type>
<type key="calendar" type="ethiopic">Efiop təqvimi</type>
<type key="calendar" type="ethiopic" scope="core">Efiop</type>
<type key="calendar" type="ethiopic-amete-alem">Efiop amet-alem təqvimi</type>
<type key="calendar" type="ethiopic-amete-alem" scope="core">Efiop Amete Alem</type>
<type key="calendar" type="gregorian">Qriqori təqvimi</type>
<type key="calendar" type="gregorian" scope="core">Qriqori</type>
<type key="calendar" type="gregorian">Qreqorian təqvimi</type>
<type key="calendar" type="hebrew">Yəhudi Təqvimi</type>
<type key="calendar" type="hebrew" scope="core">Yəhudi</type>
<type key="calendar" type="indian" draft="contributed">Hindi təqvimi</type>
<type key="calendar" type="islamic">Hicri təqvimi</type>
<type key="calendar" type="islamic" scope="core">Hicri</type>
<type key="calendar" type="islamic-civil">Hicri təqvimi (tabulyar, vətəndaşlıq dövrü)</type>
<type key="calendar" type="islamic-civil" scope="core">Hicri (cədvəl, mülki dövr)</type>
<type key="calendar" type="islamic-tbla">Hicri təqvim (tabulyar, astromonik dövr)</type>
<type key="calendar" type="islamic-tbla" scope="core">Hicri (cədvəl, astronomik dövr)</type>
<type key="calendar" type="islamic-umalqura">Hicri təqvim (Umm əl-Qura)</type>
<type key="calendar" type="islamic-umalqura" scope="core">Hicri (Umm əl-Qura)</type>
<type key="calendar" type="iso8601">ISO-8601 Təqvimi</type>
<type key="calendar" type="japanese">Yapon Təqvimi</type>
<type key="calendar" type="japanese" scope="core">Yapon</type>
<type key="calendar" type="persian">İran Təqvimi</type>
<type key="calendar" type="persian" scope="core">İran</type>
<type key="calendar" type="roc">Minquo Təqvimi</type>
<type key="calendar" type="roc" scope="core">Minquo</type>
<type key="cf" type="account">Uçot Valyuta Formatı</type>
<type key="cf" type="account" scope="core">Valyuta formatı: Uçot</type>
<type key="cf" type="standard">Standart Valyuta Formatı</type>
<type key="cf" type="standard" scope="core">Valyuta formatı: Standart</type>
<type key="collation" type="ducet">Standart Unicode Sıralama</type>
<type key="collation" type="ducet" scope="core">Defolt unikod</type>
<type key="collation" type="pinyin" draft="contributed">Pinyin təqvimi</type>
<type key="collation" type="search">Ümumi Məqsədli Axtarış</type>
<type key="collation" type="search" scope="core">Axtarış</type>
<type key="collation" type="standard">Standart Sıralama</type>
<type key="collation" type="standard" scope="core">Standart</type>
<type key="em" type="default" scope="core">Emojilərin təqdim edilməsi: Standart</type>
<type key="em" type="emoji" scope="core">Emoji</type>
<type key="em" type="text" scope="core">Mətn</type>
<type key="hc" type="h11">12 Saatlıq Sistem (011)</type>
<type key="hc" type="h11" scope="core">12 (011)</type>
<type key="hc" type="h12">12 Saatlıq Sistem (012)</type>
<type key="hc" type="h12" scope="core">12 (112)</type>
<type key="hc" type="h23">24 Saatlıq Sistem (023)</type>
<type key="hc" type="h23" scope="core">24 (023)</type>
<type key="hc" type="h24">24 Saatlıq Sistem (023)</type>
<type key="hc" type="h24" scope="core">24 (124)</type>
<type key="lb" type="loose">Sərbəst sətirdən sətrə keçirmə üslubu</type>
<type key="lb" type="loose" scope="core">Sərbəst</type>
<type key="lb" type="normal">Normal sətirdən sətrə keçirmə üslubu</type>
<type key="lb" type="normal" scope="core">Normal</type>
<type key="lb" type="strict">Sərt sətirdən sətrə keçirmə üslubu</type>
<type key="lb" type="strict" scope="core">Ciddi</type>
<type key="lw" type="breakall" scope="core">Hamısını böl</type>
<type key="lw" type="keepall" scope="core">Hamısını saxla</type>
<type key="lw" type="normal" scope="core">Normal</type>
<type key="lw" type="phrase" scope="core">İfadələrdə saxla</type>
<type key="ms" type="metric">Metrik Sistem</type>
<type key="ms" type="metric" scope="core">Metrik</type>
<type key="ms" type="uksystem">İmperial Ölçü Sistemi</type>
<type key="ms" type="uksystem" scope="core">Birləşmiş Krallıq</type>
<type key="ms" type="ussystem">ABŞ Ölçü Sistemi</type>
<type key="ms" type="ussystem" scope="core">Birləşmiş Ştatlar</type>
<type key="numbers" type="arab">Ərəb-Hind Rəqəmləri</type>
<type key="numbers" type="arabext">Genişlənmiş Ərəb-Hind Rəqəmləri</type>
<type key="numbers" type="armn">Erməni Rəqəmləri</type>
@@ -1160,8 +1118,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<type key="numbers" type="thai">Tay Rəqəmləri</type>
<type key="numbers" type="tibt">Tibet Rəqəmləri</type>
<type key="numbers" type="vaii">Vai rəqəmləri</type>
<type key="ss" type="none" scope="core">Deaktiv</type>
<type key="ss" type="standard" scope="core">Aktiv</type>
</types>
<measurementSystemNames>
<measurementSystemName type="metric">Metrik</measurementSystemName>
@@ -1182,6 +1138,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<parseLenients scope="date" level="lenient">
<parseLenient sample=":">[\: ]</parseLenient>
</parseLenients>
<parseLenients scope="general" level="lenient">
<parseLenient sample="£">[££ ₤]</parseLenient>
</parseLenients>
<parseLenients scope="number" level="lenient">
<parseLenient sample="-">[\--﹣ −⁻₋ ]</parseLenient>
<parseLenient sample=",">[,,﹐︐ ، ٫ 、﹑、︑]</parseLenient>
@@ -1251,12 +1210,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<availableFormats>
<dateFormatItem id="Ehm">E h:mma</dateFormatItem>
<dateFormatItem id="Ehms">E h:mm:ssa</dateFormatItem>
<dateFormatItem id="GyM">G MM/y</dateFormatItem>
<dateFormatItem id="GyMd">GGGGG d M y</dateFormatItem>
<dateFormatItem id="GyMEd">G dd/MM/y, E</dateFormatItem>
<dateFormatItem id="GyMMM">G MMM y</dateFormatItem>
<dateFormatItem id="GyMMMd">G d MMM y</dateFormatItem>
<dateFormatItem id="GyMMMEd">G d MMM y, E</dateFormatItem>
<dateFormatItem id="h">ha</dateFormatItem>
<dateFormatItem id="hm">h:mma</dateFormatItem>
<dateFormatItem id="hms">h:mm:ssa</dateFormatItem>
<dateFormatItem id="Md">dd.MM</dateFormatItem>
@@ -1272,15 +1230,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateFormatItem id="yyyyMMMM">G MMMM y</dateFormatItem>
</availableFormats>
<intervalFormats>
<intervalFormatItem id="Bh">
<greatestDifference id="B">B h  B h</greatestDifference>
<greatestDifference id="h">B h  h</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Bhm">
<greatestDifference id="B">B h:mm  B h:mm</greatestDifference>
<greatestDifference id="h">B h:mm  h:mm</greatestDifference>
<greatestDifference id="m">B h:mm  h:mm</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyM">
<greatestDifference id="G">GGGGG MM/y GGGGG MM/y</greatestDifference>
<greatestDifference id="M">GGGGG MM/y  MM/y</greatestDifference>
@@ -1315,6 +1264,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<greatestDifference id="M">G d MMM, E  d MMM y, E</greatestDifference>
<greatestDifference id="y">G d MMM y, E  d MMM y, E</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="h">
<greatestDifference id="a">ha  ha</greatestDifference>
<greatestDifference id="h">hha</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="hm">
<greatestDifference id="a">h:mma  h:mma</greatestDifference>
<greatestDifference id="h">h:mmh:mma</greatestDifference>
@@ -1325,6 +1278,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<greatestDifference id="h">h:mmh:mma v</greatestDifference>
<greatestDifference id="m">h:mmh:mma v</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="hv">
<greatestDifference id="a">ha  ha v</greatestDifference>
<greatestDifference id="h">hha v</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Md">
<greatestDifference id="d">dd.MM  dd.MM</greatestDifference>
<greatestDifference id="M">dd.MM  dd.MM</greatestDifference>
@@ -1334,7 +1291,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<greatestDifference id="M">dd.MM, E  dd.MM, E</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="MMMd">
<greatestDifference id="d">d d MMM</greatestDifference>
<greatestDifference id="M">MMM d  MMM d</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="MMMEd">
<greatestDifference id="d">MMM d, E  MMM d, E</greatestDifference>
<greatestDifference id="M">MMM d, E  MMM d, E</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="yM">
<greatestDifference id="M">GGGGG MM/y  MM/y</greatestDifference>
@@ -1355,8 +1316,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<greatestDifference id="y">G MMM y  MMM y</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="yMMMd">
<greatestDifference id="d">G MMM d  d, y</greatestDifference>
<greatestDifference id="M">G MMM d MMM d, y</greatestDifference>
<greatestDifference id="d">G dd MMM y</greatestDifference>
<greatestDifference id="M">G d MMM yd MMM</greatestDifference>
<greatestDifference id="y">G d MMM y  d MMM y</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="yMMMEd">
@@ -1564,19 +1525,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateTimeFormat type="atTime">
<pattern>{1}/{0}</pattern>
</dateTimeFormat>
<dateTimeFormat type="relative">
<pattern>{1}/{0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="long">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
</dateTimeFormat>
<dateTimeFormat type="atTime">
<pattern>{1}/{0}</pattern>
</dateTimeFormat>
<dateTimeFormat type="relative">
<pattern>{1}/{0}</pattern>
<pattern>{1} 'at' {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="medium">
@@ -1586,9 +1541,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateTimeFormat type="atTime">
<pattern>{1}, {0}</pattern>
</dateTimeFormat>
<dateTimeFormat type="relative">
<pattern>{1}, {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="short">
<dateTimeFormat>
@@ -1597,9 +1549,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateTimeFormat type="atTime">
<pattern>{1}, {0}</pattern>
</dateTimeFormat>
<dateTimeFormat type="relative">
<pattern>{1}, {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<availableFormats>
<dateFormatItem id="Bh">B h</dateFormatItem>
@@ -1610,12 +1559,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateFormatItem id="Ed">d E</dateFormatItem>
<dateFormatItem id="Ehm">E h:mma</dateFormatItem>
<dateFormatItem id="Ehms">E h:mm:ssa</dateFormatItem>
<dateFormatItem id="GyM">G M y</dateFormatItem>
<dateFormatItem id="GyMd">G d M y</dateFormatItem>
<dateFormatItem id="GyMEd">G d M y, E</dateFormatItem>
<dateFormatItem id="GyMd">GGGGG d MMM y</dateFormatItem>
<dateFormatItem id="GyMMM">G MMM y</dateFormatItem>
<dateFormatItem id="GyMMMd">G d MMM y</dateFormatItem>
<dateFormatItem id="GyMMMEd">G d MMM y, E</dateFormatItem>
<dateFormatItem id="h">ha</dateFormatItem>
<dateFormatItem id="hm">h:mma</dateFormatItem>
<dateFormatItem id="hms">h:mm:ssa</dateFormatItem>
<dateFormatItem id="hmsv">h:mm:ssa v</dateFormatItem>
@@ -1638,15 +1586,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateFormatItem id="yw" count="other">Y, w 'həftə'</dateFormatItem>
</availableFormats>
<intervalFormats>
<intervalFormatItem id="Bh">
<greatestDifference id="B">B h  B h</greatestDifference>
<greatestDifference id="h">B hh</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Bhm">
<greatestDifference id="B">B h:mmB h:mm</greatestDifference>
<greatestDifference id="h">B h:mmh:mm</greatestDifference>
<greatestDifference id="m">B h:mmh:mm</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyM">
<greatestDifference id="G">GGGGG MM.y  GGGGG MM.y</greatestDifference>
<greatestDifference id="M">GGGGG MM.y  MM.y</greatestDifference>
@@ -1676,11 +1615,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<greatestDifference id="y">G d MMM y  d MMM y</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyMMMEd">
<greatestDifference id="d">G d MMM, E  d MMM, E, y</greatestDifference>
<greatestDifference id="d">G d MMM, E  d MMM y, E</greatestDifference>
<greatestDifference id="G">G d MMM y, E  d MMM y, E</greatestDifference>
<greatestDifference id="M">G d MMM, E  d MMM y, E</greatestDifference>
<greatestDifference id="y">G d MMM y, E  d MMM y, E</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="h">
<greatestDifference id="a">ha  ha</greatestDifference>
<greatestDifference id="h">hha</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="hm">
<greatestDifference id="a">h:mma  h:mma</greatestDifference>
<greatestDifference id="h">h:mmh:mma</greatestDifference>
@@ -1691,6 +1634,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<greatestDifference id="h">h:mmh:mma v</greatestDifference>
<greatestDifference id="m">h:mmh:mma v</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="hv">
<greatestDifference id="a">ha  ha v</greatestDifference>
<greatestDifference id="h">hha v</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Md">
<greatestDifference id="d">dd.MM  dd.MM</greatestDifference>
<greatestDifference id="M">dd.MM  dd.MM</greatestDifference>
@@ -1726,13 +1673,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<greatestDifference id="y">MMM y  MMM y</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="yMMMd">
<greatestDifference id="d">d  d MMM y</greatestDifference>
<greatestDifference id="M">d MMM  d MMM y</greatestDifference>
<greatestDifference id="M">d MMM y d MMM</greatestDifference>
<greatestDifference id="y">d MMM y  d MMM y</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="yMMMEd">
<greatestDifference id="d">E, dMMM  E, d MMM y</greatestDifference>
<greatestDifference id="M">E, d MMM E, d MMM y</greatestDifference>
<greatestDifference id="d">d MMM y, E d MMM, E</greatestDifference>
<greatestDifference id="M">d MMM y, E d MMM, E</greatestDifference>
<greatestDifference id="y">d MMM y, E  d MMM y, E</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="yMMMM">
@@ -1775,12 +1721,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</monthWidth>
</monthContext>
</months>
<dateTimeFormats>
<availableFormats>
<dateFormatItem id="GyM">G MM/y</dateFormatItem>
<dateFormatItem id="GyMEd">G dd/MM/y, E</dateFormatItem>
</availableFormats>
</dateTimeFormats>
</calendar>
<calendar type="persian">
<months>
@@ -1903,7 +1843,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName>hft. günü</displayName>
</field>
<field type="weekdayOfMonth">
<displayName>ayın həftəiçi günü</displayName>
<displayName>ayın həftə günü</displayName>
</field>
<field type="weekdayOfMonth-short">
<displayName>ay hft. günü</displayName>
@@ -1959,13 +1899,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</relativeTime>
</field>
<field type="tue-short">
<relative type="-1">keçən Ç.ax.</relative>
<relative type="-1">keçən ÇƏ</relative>
<relative type="0">bu ÇƏ</relative>
<relative type="1">gələn ÇƏ</relative>
<relativeTime type="future">
<relativeTimePattern count="one">{0} çərşənbə axşamı sonra</relativeTimePattern>
<relativeTimePattern count="other">{0} çərşənbə axşamı ərzində</relativeTimePattern>
</relativeTime>
</field>
<field type="wed">
<relative type="-1">keçən çərşənbə</relative>
@@ -2121,6 +2057,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="America/Anguilla">
<exemplarCity>Angilya</exemplarCity>
</zone>
<zone type="Europe/Tirane">
<exemplarCity>Tirana</exemplarCity>
</zone>
<zone type="Antarctica/Syowa">
<exemplarCity>Syova</exemplarCity>
</zone>
@@ -2361,9 +2300,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Pacific/Easter">
<exemplarCity>Pasxa</exemplarCity>
</zone>
<zone type="America/Coyhaique">
<exemplarCity>Koyayke</exemplarCity>
</zone>
<zone type="America/Santiago">
<exemplarCity>Santyaqo</exemplarCity>
</zone>
@@ -2576,7 +2512,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<exemplarCity>Pnom Pen</exemplarCity>
</zone>
<zone type="Pacific/Enderbury">
<exemplarCity>Kanton</exemplarCity>
<exemplarCity>Enderböri</exemplarCity>
</zone>
<zone type="Pacific/Kiritimati">
<exemplarCity>Kirimati</exemplarCity>
@@ -3041,7 +2977,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Africa_Western">
<long>
<standard>Qərbi Afrika Vaxtı</standard>
<generic>Qərbi Afrika Vaxtı</generic>
<standard>Qərbi Afrika Standart Vaxtı</standard>
<daylight>Qərbi Afrika Yay Vaxtı</daylight>
</long>
</metazone>
<metazone type="Alaska">
@@ -3060,9 +2998,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="America_Central">
<long>
<generic>Mərkəzi Amerika saat qurşağı</generic>
<standard>Mərkəzi Amerika Standart Vaxtı</standard>
<daylight>Mərkəzi Amerika yay vaxtı</daylight>
<generic>Şimali Mərkəzi Amerika Vaxtı</generic>
<standard>Şimali Mərkəzi Amerika Standart Vaxtı</standard>
<daylight>Şimali Mərkəzi Amerika Yay Vaxtı</daylight>
</long>
</metazone>
<metazone type="America_Eastern">
@@ -3123,7 +3061,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Atlantic">
<long>
<generic>Atlantik saat qurşağı</generic>
<generic>Atlantik Vaxt</generic>
<standard>Atlantik Standart Vaxt</standard>
<daylight>Atlantik Yay Vaxtı</daylight>
</long>
@@ -3391,11 +3329,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<standard>Qayana Vaxtı</standard>
</long>
</metazone>
<metazone type="Hawaii">
<long>
<standard>Havay-Aleut Standart Vaxtı</standard>
</long>
</metazone>
<metazone type="Hawaii_Aleutian">
<long>
<generic>Havay-Aleut Vaxtı</generic>
@@ -3815,13 +3748,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<standard>Çuuk Vaxtı</standard>
</long>
</metazone>
<metazone type="Turkey">
<long>
<generic>Türkiya vaxtı</generic>
<standard>Türkiya standart vaxtı</standard>
<daylight>Türkiya yay vaxtı</daylight>
</long>
</metazone>
<metazone type="Turkmenistan">
<long>
<generic>Türkmənistan Vaxtı</generic>
@@ -4000,26 +3926,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</scientificFormat>
</scientificFormatLength>
</scientificFormats>
<currencyFormats numberSystem="arabext">
<currencyFormatLength>
<currencyFormat type="standard">
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
<currencyFormat type="accounting">
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
<pattern alt="noCurrency">#,##0.00</pattern>
</currencyFormat>
</currencyFormatLength>
</currencyFormats>
<currencyFormats numberSystem="latn">
<currencyFormatLength>
<currencyFormat type="standard">
<pattern>#,##0.00 ¤</pattern>
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
<currencyFormat type="accounting">
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
<pattern alt="noCurrency">#,##0.00</pattern>
<pattern alt="noCurrency">#,##0.00;(#,##0.00)</pattern>
</currencyFormat>
</currencyFormatLength>
<currencyFormatLength type="short">
@@ -4030,24 +3943,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<pattern type="10000" count="other">00K ¤</pattern>
<pattern type="100000" count="one">000K ¤</pattern>
<pattern type="100000" count="other">000K ¤</pattern>
<pattern type="1000000" count="one">0 mln ¤</pattern>
<pattern type="1000000" count="other">0 mln ¤</pattern>
<pattern type="10000000" count="one">00 mln ¤</pattern>
<pattern type="10000000" count="other">00 mln ¤</pattern>
<pattern type="100000000" count="one">000 mln ¤</pattern>
<pattern type="100000000" count="other">000 mln ¤</pattern>
<pattern type="1000000000" count="one">0 mlrd ¤</pattern>
<pattern type="1000000000" count="other">0 mlrd ¤</pattern>
<pattern type="10000000000" count="one">00 mlrd ¤</pattern>
<pattern type="10000000000" count="other">00 mlrd ¤</pattern>
<pattern type="100000000000" count="one">000 mlrd ¤</pattern>
<pattern type="100000000000" count="other">000 mlrd ¤</pattern>
<pattern type="1000000000000" count="one">0 trln ¤</pattern>
<pattern type="1000000000000" count="other">0 trln ¤</pattern>
<pattern type="10000000000000" count="one">00 trln ¤</pattern>
<pattern type="10000000000000" count="other">00 trln ¤</pattern>
<pattern type="100000000000000" count="one">000 trln ¤</pattern>
<pattern type="100000000000000" count="other">000 trln ¤</pattern>
<pattern type="1000000" count="one">0M ¤</pattern>
<pattern type="1000000" count="other">0M ¤</pattern>
<pattern type="10000000" count="one">00M ¤</pattern>
<pattern type="10000000" count="other">00M ¤</pattern>
<pattern type="100000000" count="one">000M ¤</pattern>
<pattern type="100000000" count="other">000M ¤</pattern>
<pattern type="1000000000" count="one">0G ¤</pattern>
<pattern type="1000000000" count="other">0G ¤</pattern>
<pattern type="10000000000" count="one">00G ¤</pattern>
<pattern type="10000000000" count="other">00G ¤</pattern>
<pattern type="100000000000" count="one">000G ¤</pattern>
<pattern type="100000000000" count="other">000G ¤</pattern>
<pattern type="1000000000000" count="one">0T ¤</pattern>
<pattern type="1000000000000" count="other">0T ¤</pattern>
<pattern type="10000000000000" count="one">00T ¤</pattern>
<pattern type="10000000000000" count="other">00T ¤</pattern>
<pattern type="100000000000000" count="one">000T ¤</pattern>
<pattern type="100000000000000" count="other">000T ¤</pattern>
</currencyFormat>
</currencyFormatLength>
</currencyFormats>
@@ -5270,11 +5183,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName count="one">Şərqi Karib dolları</displayName>
<displayName count="other">Şərqi Karib dolları</displayName>
</currency>
<currency type="XCG">
<displayName>Karib gilderi</displayName>
<displayName count="one">Karib gilderi</displayName>
<displayName count="other">Karib gilderi</displayName>
</currency>
<currency type="XFO">
<displayName>Fransız Gızıl Frankı</displayName>
<displayName count="one">Fransız gızıl frankı</displayName>
@@ -5368,11 +5276,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName count="one">Zimbabve dolları (19802008)</displayName>
<displayName count="other">Zimbabve dolları (19802008)</displayName>
</currency>
<currency type="ZWG">
<displayName>Zimbabve Qızılı</displayName>
<displayName count="one">Zimbabve qızılı</displayName>
<displayName count="other">Zimbabve qızılı</displayName>
</currency>
<currency type="ZWL">
<displayName>Zimbabve Dolları (2009)</displayName>
<displayName count="one">Zimbabve dolları (2009)</displayName>
@@ -5583,12 +5486,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} millimol/litr</unitPattern>
<unitPattern count="other">{0} millimol/litr</unitPattern>
</unit>
<unit type="concentr-part">
<displayName>hissə</displayName>
<unitPattern count="one">{0}hissə</unitPattern>
<unitPattern count="other">{0}hissə</unitPattern>
</unit>
<unit type="concentr-part-per-1e6">
<unit type="concentr-permillion">
<displayName>milyonda hissəcik</displayName>
<unitPattern count="one">{0} milyonda hissəcik</unitPattern>
<unitPattern count="other">{0} milyonda hissəcik</unitPattern>
@@ -5605,11 +5503,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} permiriada</unitPattern>
<unitPattern count="other">{0} permiriada</unitPattern>
</unit>
<unit type="concentr-ofglucose">
<displayName>qlükoza</displayName>
<unitPattern count="one">{0} qlükoza</unitPattern>
<unitPattern count="other">{0} qlükoza</unitPattern>
</unit>
<unit type="consumption-liter-per-kilometer">
<displayName>litr/kilometr</displayName>
<unitPattern count="one">{0} litr/kilometr</unitPattern>
@@ -5997,9 +5890,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} millimetr civə sütunu</unitPattern>
<unitPattern count="other">{0} millimetr civə sütunu</unitPattern>
</unit>
<unit type="pressure-ofhg">
<displayName>civə</displayName>
</unit>
<unit type="pressure-pound-force-per-square-inch">
<displayName>funt/kvadrat düym</displayName>
<unitPattern count="one">{0} funt/kvadrat düym</unitPattern>
@@ -6131,11 +6021,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} millilitr</unitPattern>
<unitPattern count="other">{0} millilitr</unitPattern>
</unit>
<unit type="volume-fluid-ounce-metric">
<displayName>metrik maye unsiyası</displayName>
<unitPattern count="one">{0} metrik maye unsiyası</unitPattern>
<unitPattern count="other">{0} metrik maye unsiyası</unitPattern>
</unit>
<unit type="volume-acre-foot">
<displayName>akr-fut</displayName>
<unitPattern count="one">{0} akr-fut</unitPattern>
@@ -6203,61 +6088,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} İmp. kvarta</unitPattern>
<unitPattern count="other">{0} İmp. kvarta</unitPattern>
</unit>
<unit type="angle-steradian">
<displayName>steradian</displayName>
<unit type="speed-light-speed">
<displayName>işıq</displayName>
<unitPattern count="one">{0} işıq</unitPattern>
<unitPattern count="other">{0} işıq</unitPattern>
</unit>
<unit type="concentr-katal">
<displayName>katal</displayName>
<unit type="concentr-portion-per-1e9">
<displayName>bir milyarda düşən hissə sayı</displayName>
<unitPattern count="one">bir milyarda düşən {0} hissə</unitPattern>
<unitPattern count="other">bir milyarda düşən {0} hissə</unitPattern>
</unit>
<unit type="electric-coulomb">
<displayName>kulomb</displayName>
<unitPattern count="one">{0} kulomb</unitPattern>
<unitPattern count="other">{0} kulomb</unitPattern>
</unit>
<unit type="electric-farad">
<displayName>farad</displayName>
</unit>
<unit type="electric-henry">
<displayName>henri</displayName>
</unit>
<unit type="electric-siemens">
<displayName>simen</displayName>
</unit>
<unit type="energy-calorie-it">
<displayName>kalori-IT</displayName>
<unitPattern count="one">{0} kalori [IT]</unitPattern>
<unitPattern count="other">{0}kal-IT</unitPattern>
</unit>
<unit type="energy-becquerel">
<displayName>bekkerel</displayName>
<unitPattern count="one">{0} bekkerel</unitPattern>
<unitPattern count="other">{0} bekkerel</unitPattern>
</unit>
<unit type="energy-sievert">
<displayName>zivert</displayName>
<unitPattern count="one">{0} zivert</unitPattern>
<unitPattern count="other">{0} zivert</unitPattern>
</unit>
<unit type="energy-gray">
<displayName>qrey</displayName>
<unitPattern count="one">{0} Qy</unitPattern>
<unitPattern count="other">{0} Qy</unitPattern>
</unit>
<unit type="force-kilogram-force">
<displayName>kiloqram qüvvə</displayName>
<unitPattern count="one">{0} kqq</unitPattern>
<unitPattern count="other">{0} kqq</unitPattern>
</unit>
<unit type="magnetic-tesla">
<displayName>tesla</displayName>
</unit>
<unit type="magnetic-weber">
<displayName>veber</displayName>
</unit>
<unit type="concentr-part-per-1e9">
<displayName>milyardda hissə</displayName>
<unitPattern count="one">milyardda {0} hissə</unitPattern>
<unitPattern count="other">milyardda {0} hissə</unitPattern>
<unit type="duration-night">
<displayName>gecə</displayName>
<unitPattern count="one">{0} gecə</unitPattern>
<unitPattern count="other">{0} gecə</unitPattern>
<perUnitPattern>{0}/gecə</perUnitPattern>
</unit>
<coordinateUnit>
<displayName>kardinal istiqamət</displayName>
@@ -6375,12 +6220,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} element</unitPattern>
<unitPattern count="other">{0} element</unitPattern>
</unit>
<unit type="concentr-part">
<displayName>hissə</displayName>
<unitPattern count="one">{0}hissə</unitPattern>
<unitPattern count="other">{0}hissə</unitPattern>
</unit>
<unit type="concentr-part-per-1e6">
<unit type="concentr-permillion">
<displayName>hissəcik/milyon</displayName>
<unitPattern count="one">{0} hs/mln</unitPattern>
<unitPattern count="other">{0} hs/mln</unitPattern>
@@ -6394,11 +6234,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unit type="concentr-permyriad">
<displayName>permiriada</displayName>
</unit>
<unit type="concentr-ofglucose">
<displayName>Qlk</displayName>
<unitPattern count="one">{0} Qlk</unitPattern>
<unitPattern count="other">{0} Qlk</unitPattern>
</unit>
<unit type="consumption-liter-per-kilometer">
<displayName>l/km</displayName>
<unitPattern count="one">{0} l/km</unitPattern>
@@ -6750,11 +6585,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} sL</unitPattern>
<unitPattern count="other">{0} sL</unitPattern>
</unit>
<unit type="volume-fluid-ounce-metric">
<displayName>mmu</displayName>
<unitPattern count="one">{0} mmu</unitPattern>
<unitPattern count="other">{0} mmu</unitPattern>
</unit>
<unit type="volume-bushel">
<displayName>buşel</displayName>
<unitPattern count="one">{0} buşel</unitPattern>
@@ -6827,45 +6657,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} kvarta İmp.</unitPattern>
<unitPattern count="other">{0} kvarta İmp.</unitPattern>
</unit>
<unit type="electric-coulomb">
<displayName>kulomb</displayName>
<unitPattern count="one">{0} kulomb</unitPattern>
<unitPattern count="other">{0} kulomb</unitPattern>
</unit>
<unit type="energy-calorie-it">
<displayName>kal-IT</displayName>
<unitPattern count="one">{0}kal-IT</unitPattern>
<unitPattern count="other">{0}kal-IT</unitPattern>
</unit>
<unit type="energy-becquerel">
<displayName>Bk</displayName>
<unitPattern count="one">{0} Bk</unitPattern>
<unitPattern count="other">{0} Bk</unitPattern>
</unit>
<unit type="energy-sievert">
<displayName>Zv</displayName>
<unitPattern count="one">{0} Zv</unitPattern>
<unitPattern count="other">{0} Zv</unitPattern>
</unit>
<unit type="energy-gray">
<displayName>Qy</displayName>
<unitPattern count="one">{0} Qy</unitPattern>
<unitPattern count="other">{0} Qy</unitPattern>
</unit>
<unit type="force-kilogram-force">
<displayName>kqq</displayName>
<unitPattern count="one">{0} kqq</unitPattern>
<unitPattern count="other">{0} kqq</unitPattern>
</unit>
<unit type="speed-light-speed">
<displayName>işıq</displayName>
<unitPattern count="one">{0} işıq</unitPattern>
<unitPattern count="other">{0} işıq</unitPattern>
</unit>
<unit type="concentr-part-per-1e9">
<unit type="concentr-portion-per-1e9">
<displayName>hissə/milyard</displayName>
<unitPattern count="one">{0} hissə/milyard</unitPattern>
<unitPattern count="other">{0} hissə/milyard</unitPattern>
</unit>
<unit type="duration-night">
<displayName>gecə</displayName>
@@ -6909,10 +6707,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ft²</unitPattern>
<unitPattern count="other">{0} ft²</unitPattern>
</unit>
<unit type="concentr-part">
<displayName>hissə</displayName>
<unitPattern count="one">{0}hissə</unitPattern>
<unitPattern count="other">{0}hissə</unitPattern>
<unit type="concentr-permillion">
<unitPattern count="one">{0} hs/mln</unitPattern>
<unitPattern count="other">{0}ppm</unitPattern>
</unit>
<unit type="concentr-percent">
<displayName>%</displayName>
@@ -6923,11 +6720,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unit type="concentr-permyriad">
<displayName></displayName>
</unit>
<unit type="concentr-ofglucose">
<displayName>Qlk</displayName>
<unitPattern count="one">{0} Qlk</unitPattern>
<unitPattern count="other">{0} Qlk</unitPattern>
</unit>
<unit type="consumption-mile-per-gallon-imperial">
<unitPattern count="one">{0} mil/imq</unitPattern>
<unitPattern count="other">{0} mil/imq</unitPattern>
@@ -7101,11 +6893,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} mf</unitPattern>
<unitPattern count="other">{0} mf</unitPattern>
</unit>
<unit type="volume-fluid-ounce-metric">
<displayName>mmu</displayName>
<unitPattern count="one">{0} mmu</unitPattern>
<unitPattern count="other">{0} mmu</unitPattern>
</unit>
<unit type="volume-acre-foot">
<displayName>ak-ft</displayName>
<unitPattern count="one">{0} ak-ft</unitPattern>
@@ -7137,47 +6924,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0}qt-Imp.</unitPattern>
<unitPattern count="other">{0}qt-Imp.</unitPattern>
</unit>
<unit type="electric-coulomb">
<displayName>K</displayName>
<unitPattern count="one">{0} K</unitPattern>
<unitPattern count="other">{0} K</unitPattern>
</unit>
<unit type="energy-calorie-it">
<displayName>kal-IT</displayName>
<unitPattern count="one">{0}kal-IT</unitPattern>
<unitPattern count="other">{0}kal-IT</unitPattern>
</unit>
<unit type="energy-becquerel">
<displayName>Bk</displayName>
<unitPattern count="one">{0} Bk</unitPattern>
<unitPattern count="other">{0} Bk</unitPattern>
</unit>
<unit type="energy-sievert">
<displayName>Zv</displayName>
<unitPattern count="one">{0} Zv</unitPattern>
<unitPattern count="other">{0} Zv</unitPattern>
</unit>
<unit type="energy-gray">
<displayName>Qy</displayName>
<unitPattern count="one">{0} Qy</unitPattern>
<unitPattern count="other">{0} Qy</unitPattern>
</unit>
<unit type="force-kilogram-force">
<displayName>kqq</displayName>
<unitPattern count="one">{0} kqq</unitPattern>
<unitPattern count="other">{0} kqq</unitPattern>
</unit>
<unit type="speed-light-speed">
<displayName>işıq</displayName>
<unitPattern count="one">{0}işıq</unitPattern>
<unitPattern count="other">{0}işıq</unitPattern>
</unit>
<unit type="concentr-part-per-1e9">
<unitPattern count="one">{0} hissə/milyard</unitPattern>
<unitPattern count="other">{0} hissə/milyard</unitPattern>
</unit>
<unit type="duration-night">
<displayName>gecə</displayName>
<unitPattern count="one">{0}gecə</unitPattern>
<unitPattern count="other">{0}gecə</unitPattern>
<perUnitPattern>{0}/gecə</perUnitPattern>
</unit>
</unitLength>
</units>
-4
View File
@@ -1070,10 +1070,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<currencyFormatLength>
<currencyFormat type="standard">
<pattern>#,##0.00 ¤</pattern>
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
<currencyFormat type="accounting">
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
</currencyFormatLength>
<currencyFormatLength type="short">
File diff suppressed because it is too large Load Diff
-5
View File
@@ -385,11 +385,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<standard>گرین‌وِچ مین ٹائم</standard>
</long>
</metazone>
<metazone type="Hawaii">
<long>
<standard draft="provisional">هئواییئے گیشّتگێن ساهت</standard>
</long>
</metazone>
<metazone type="Hawaii_Aleutian">
<long>
<generic draft="provisional">هئواییئے ساهت</generic>
+5 -6
View File
@@ -997,11 +997,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<type key="calendar" type="roc">Mingu-Chini sáldar</type>
<type key="cf" type="account">Hesáb, Zarr Káleb</type>
<type key="cf" type="standard">Zarray anjárén káleb</type>
<type key="collation" type="big5han">Chini Rabyati Red o band</type>
<type key="collation" type="compat">Pésari Red o band, pa hamdapiá</type>
<type key="collation" type="dictionary">Labzbaladi Red o band</type>
<type key="collation" type="ducet">Aslén Yunikodi Red o band</type>
<type key="collation" type="emoji">Emóji Red o band</type>
<type key="collation" type="eor">Yuropi Red o bandi Rahband</type>
<type key="collation" type="gb2312han">Sádah kortagén Chini Red o band - GB2312</type>
<type key="collation" type="phonebook">Pawnbokki Red o band</type>
<type key="collation" type="pinyin">Pinyi Red o band</type>
<type key="collation" type="search">Ám Kári Shóház</type>
@@ -2953,7 +2955,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic
</metazone>
<metazone type="Africa_Western">
<long>
<standard>Rónendi Aprikáay wahd</standard>
<generic>Rónendi Aprikáay wahd</generic>
<standard>Rónendi Aprikáay anjári wahd</standard>
<daylight>Rónendi Aprikáay garmági wahd</daylight>
</long>
</metazone>
<metazone type="Alaska">
@@ -3303,11 +3307,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<standard>Guyánáay wahd</standard>
</long>
</metazone>
<metazone type="Hawaii">
<long>
<standard>Hawái/Alushiay anjári wahd</standard>
</long>
</metazone>
<metazone type="Hawaii_Aleutian">
<long>
<generic>Hawái/Alushiay wahd</generic>

Some files were not shown because too many files have changed in this diff Show More