jvmfwk/Package_rcfiles.mk                                         |    4 +++
 jvmfwk/distributions/OpenOfficeorg/javavendors_macosx_aarch64.xml |   11 
++++++++++
 jvmfwk/source/fwkbase.cxx                                         |    9 
+++++++-
 3 files changed, 23 insertions(+), 1 deletion(-)

New commits:
commit 81debfba86b1d67d1c2e0ecd9c10ca35c3e7de5e
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Thu Oct 21 13:06:25 2021 +0200
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Thu Oct 21 15:13:42 2021 +0200

    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 <sberg...@redhat.com>

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;

Reply via email to