[jdk11u-dev] RFR: 8253795: Implementation of JEP 391: macOS/AArch64 Port [v5]

Vladimir Kempik vkempik at openjdk.java.net
Tue Dec 14 20:05:07 UTC 2021


On Tue, 14 Dec 2021 15:17:55 GMT, Andrew Haley <aph at openjdk.org> wrote:

>>> > Rosetta's JDK performance is subpar. Also one need to consider rosetta's bugs which might interfere with jdk. And last point - rosetta won't be there forever.
>>> 
>>> Sure, all true, although last time I looked Rosetta was only 40% worse. Rosetta won't be there forever, but it might outlive JDK 11. We'll have to take everything into account, and review this very carefully.
>>> 
>>> Just for my information: if I apply this, will it be essentially identical to aarch64-port/jdk11u ?
>> 
>> It's an outdated version there, basically what was in zulu11 by that time.
>> But the jep-391 (for jdk17) had evolved before reaching the final version, W^X is different at least
>> This PR is partly based on that old patch, for os_bsd_aarch64.cpp, rest is a backport of the newer JEP-391 from upstream.
>
>> > Just for my information: if I apply this, will it be essentially identical to aarch64-port/jdk11u ?
>> 
>> It's an outdated version there, basically what was in zulu11 by that time. But the jep-391 (for jdk17) had evolved before reaching the final version, W^X is different at least This PR is partly based on that old patch, for os_bsd_aarch64.cpp, rest is a backport of the newer JEP-391 from upstream.
> 
> Ouch! That's terrible, I had no idea. So everybody who is building AArch64 from non-Azul trees has a broken release.

@theRealAph 
FYI, about possible consequences for other platforms in jdk11u-dev
JDK-8253816: Support macOS W^X
it's all under MACOS_AARCH64_ONLY, so isolated to just one platform

JDK-8253817: Support macOS Aarch64 ABI in Interpreter 
JDK-8253818: Support macOS Aarch64 ABI for compiled wrappers
Applied mostly clean from upstream ( where it was tested already), thanks to prerequests I have integrated.
In worst case could impact only other aarch64 platforms

JDK-8253819: Implement os/cpu for macOS/AArch64
this is purely about bsd_aarch64, not dangerous for any other platform

JDK-8253839: Update tests and JDK code for macOS/Aarch64
isolated to macos_aarch64

JDK-8254941: Implement Serviceability Agent for macOS/AArch64
this is mostly about adding the missing case for bsd_aarch64

JDK-8255776: Change build system for macOS/AArch64
needs to review that carefully, but it's mostly clean backport from jdk17, mostly about different filenames.

JDK-8262903: [macos_aarch64] Thread::current() called on detached thread
Sadly I don't remember what it was about, probably one macos_aarch64_only addtition to generis os_bsd code.

JDK-8262896: [macos_aarch64] Crash in jni_fast_GetLongField
this might affect other aarch64 platforms. it was tested in jdk17 already and applied mostly clean

So if you look at the patch and ignore everything about w^x and bsd_aarch64 then there is not very much left

-------------

PR: https://git.openjdk.java.net/jdk11u-dev/pull/715


More information about the jdk-updates-dev mailing list