summaryrefslogtreecommitdiff
path: root/jvmfwk
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2021-10-21 13:06:25 +0200
committerStephan Bergmann <sbergman@redhat.com>2021-10-21 15:13:42 +0200
commit81debfba86b1d67d1c2e0ecd9c10ca35c3e7de5e (patch)
tree921dc0998b2e14402f9a5d239bd07d081a510fed /jvmfwk
parent29489b33b435683021b72cb2bce27aba8cb7a430 (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.mk4
-rw-r--r--jvmfwk/distributions/OpenOfficeorg/javavendors_macosx_aarch64.xml11
-rw-r--r--jvmfwk/source/fwkbase.cxx9
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;