diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2021-10-21 13:06:25 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2021-10-21 15:13:42 +0200 |
commit | 81debfba86b1d67d1c2e0ecd9c10ca35c3e7de5e (patch) | |
tree | 921dc0998b2e14402f9a5d239bd07d081a510fed /jvmfwk | |
parent | 29489b33b435683021b72cb2bce27aba8cb7a430 (diff) |
Restrict macOS ARM64 to Java >= 17
The commit message of e529461bcb126e0975ffa3f86e1fd5a630551de2 "Enable JVM also
on macOS ARM64" had identified
<https://cdn.azul.com/zulu/bin/zulu17.0.63-ea-jdk17.0.0-ea.27-macosx_aarch64.zip>
"to work reliably now" while other (older Zulu) JVMs "have always crashed with
SIGBUS that smelled like our uses of pthread_jit_write_protect_np in
bridges/source/cpp_uno/shared/vtablefactory.cxx colided with corresponding calls
in the in-process JVM". Those observations would be in line with
<http://openjdk.java.net/jeps/391> "JEP 391: macOS/AArch64 Port" only
implemented for Java 17 now (see
<https://github.com/openjdk/jdk/commit/dbc9e4b50cdda35f5712deaf440c49f50b9edc96>
"8253795: Implementation of JEP 391: macOS/AArch64 Port").
So for macOS ARM64 assume that all OpenJDK variants (i.e., providing an empty
jvmfwk/distributions/OpenOfficeorg/javavendors_macosx_aarch64.xml) of at least
Java 17 (i.e., building on recent 3460c16d7f749d8d2a59d8b927df5ec31f64a083
"Make getVersionInformation always return a VersionInfo" and "change the
hardcoded '1.8.0' to '17' for just that one platform") work.
Change-Id: I11e8ba232cee066a25a49edebd0cc50e24e84124
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123989
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'jvmfwk')
-rw-r--r-- | jvmfwk/Package_rcfiles.mk | 4 | ||||
-rw-r--r-- | jvmfwk/distributions/OpenOfficeorg/javavendors_macosx_aarch64.xml | 11 | ||||
-rw-r--r-- | jvmfwk/source/fwkbase.cxx | 9 |
3 files changed, 23 insertions, 1 deletions
diff --git a/jvmfwk/Package_rcfiles.mk b/jvmfwk/Package_rcfiles.mk index 7864d628b276..e7010b970da5 100644 --- a/jvmfwk/Package_rcfiles.mk +++ b/jvmfwk/Package_rcfiles.mk @@ -14,7 +14,11 @@ $(eval $(call gb_Package_add_file,jvmfwk_javavendors,$(LIBO_URE_MISC_FOLDER)/jav else ifeq ($(OS),FREEBSD) $(eval $(call gb_Package_add_file,jvmfwk_javavendors,$(LIBO_URE_MISC_FOLDER)/javavendors.xml,distributions/OpenOfficeorg/javavendors_freebsd.xml)) else ifeq ($(OS),MACOSX) +ifeq ($(CPUNAME),AARCH64) +$(eval $(call gb_Package_add_file,jvmfwk_javavendors,$(LIBO_URE_MISC_FOLDER)/javavendors.xml,distributions/OpenOfficeorg/javavendors_macosx_aarch64.xml)) +else $(eval $(call gb_Package_add_file,jvmfwk_javavendors,$(LIBO_URE_MISC_FOLDER)/javavendors.xml,distributions/OpenOfficeorg/javavendors_macosx.xml)) +endif else ifeq ($(OS),LINUX) $(eval $(call gb_Package_add_file,jvmfwk_javavendors,$(LIBO_URE_MISC_FOLDER)/javavendors.xml,distributions/OpenOfficeorg/javavendors_linux.xml)) else ifeq ($(OS),AIX) diff --git a/jvmfwk/distributions/OpenOfficeorg/javavendors_macosx_aarch64.xml b/jvmfwk/distributions/OpenOfficeorg/javavendors_macosx_aarch64.xml new file mode 100644 index 000000000000..329030ccb1c0 --- /dev/null +++ b/jvmfwk/distributions/OpenOfficeorg/javavendors_macosx_aarch64.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + --> +<javaSelection xmlns="http://openoffice.org/2004/java/framework/1.0"> + <updated>2021-10-19</updated> +</javaSelection> diff --git a/jvmfwk/source/fwkbase.cxx b/jvmfwk/source/fwkbase.cxx index 8de3f0c4d00c..fc2223fd842e 100644 --- a/jvmfwk/source/fwkbase.cxx +++ b/jvmfwk/source/fwkbase.cxx @@ -131,7 +131,14 @@ VersionInfo VendorSettings::getVersionInformation(std::u16string_view sVendor) c m_xmlPathContextVendorSettings); if (xmlXPathNodeSetIsEmpty(pathObject->nodesetval)) { - return {{}, "1.8.0", ""}; + return { + {}, +#if defined MACOSX && defined __aarch64__ + "17", +#else + "1.8.0", +#endif + ""}; } VersionInfo aVersionInfo; |