On Mon, 15 Aug 2022 12:23:41 GMT, Ao Qi <[email protected]> wrote:
> For example, java/lang/Thread/jni/AttachCurrentThread/AttachTest.java#id1
> failed on LoongArch64 (probably other platforms unsupported in
> src/java.base/share/classes/jdk/internal/foreign/CABI.java might have the
> same issue):
>
>
> Exception in thread "main" java.lang.UnsupportedOperationException:
> Unsupported os, arch, or address size: Linux, loongarch64, 64
> at java.base/jdk.internal.foreign.CABI.current(CABI.java:69)
> at
> java.base/jdk.internal.foreign.abi.SharedUtils.getSystemLinker(SharedUtils.java:237)
> at java.base/java.lang.foreign.Linker.nativeLinker(Linker.java:198)
> at ImplicitAttach.main(ImplicitAttach.java:48)
Linker.nativeLinker is currently specified to throw UOE so you might find the
following will avoid ports needing to change the test:
--- a/test/jdk/java/lang/Thread/jni/AttachCurrentThread/ImplicitAttach.java
+++ b/test/jdk/java/lang/Thread/jni/AttachCurrentThread/ImplicitAttach.java
@@ -45,7 +45,13 @@ public class ImplicitAttach {
}
latch = new CountDownLatch(threadCount);
- Linker abi = Linker.nativeLinker();
+ Linker abi;
+ try {
+ abi = Linker.nativeLinker();
+ } catch (UnsupportedOperationException e) {
+ System.out.println("Test skipped, no native linker on this
platform");
+ return;
+ }
// stub to invoke callback
MethodHandle callback = MethodHandles.lookup()
-------------
PR: https://git.openjdk.org/jdk/pull/9877