Try to use the old code for MacOS
diff --git a/java/org/apache/tomcat/util/openssl/openssl_h.java b/java/org/apache/tomcat/util/openssl/openssl_h.java
index 25ba1ae..4067d03 100644
--- a/java/org/apache/tomcat/util/openssl/openssl_h.java
+++ b/java/org/apache/tomcat/util/openssl/openssl_h.java
@@ -22,6 +22,7 @@
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.util.Arrays;
+import java.util.Locale;
import java.util.stream.Collectors;
import java.lang.foreign.*;
import static java.lang.foreign.ValueLayout.*;
@@ -47,9 +48,18 @@
static final Arena LIBRARY_ARENA = Arena.ofAuto();
static final boolean TRACE_DOWNCALLS = Boolean.getBoolean("jextract.trace.downcalls");
- static final SymbolLookup SYMBOL_LOOKUP = SymbolLookup.libraryLookup(System.mapLibraryName("ssl"), LIBRARY_ARENA)
- .or(SymbolLookup.loaderLookup())
- .or(Linker.nativeLinker().defaultLookup());
+ static final SymbolLookup SYMBOL_LOOKUP;
+ static {
+ String os = System.getProperty("os.name").toLowerCase(Locale.ENGLISH);
+ if (os.indexOf("mac") >= 0) {
+ System.loadLibrary("ssl");
+ SYMBOL_LOOKUP = SymbolLookup.loaderLookup().or(Linker.nativeLinker().defaultLookup());
+ } else {
+ SYMBOL_LOOKUP = SymbolLookup.libraryLookup(System.mapLibraryName("ssl"), LIBRARY_ARENA)
+ .or(SymbolLookup.loaderLookup())
+ .or(Linker.nativeLinker().defaultLookup());
+ }
+ }
static void traceDowncall(String name, Object... args) {
String traceArgs = Arrays.stream(args)