On Tue, Jul 2, 2024 at 9:52 AM <ma...@apache.org> wrote: > > This is an automated email from the ASF dual-hosted git repository. > > markt pushed a commit to branch main > in repository https://gitbox.apache.org/repos/asf/tomcat.git > > > The following commit(s) were added to refs/heads/main by this push: > new cd5051cc43 Attempt to fix unit tests on MacOS > cd5051cc43 is described below > > commit cd5051cc43e4980e0b5e644cefd56ce090d5c5f1 > Author: Mark Thomas <ma...@apache.org> > AuthorDate: Tue Jul 2 08:51:44 2024 +0100 > > Attempt to fix unit tests on MacOS
Adding support for LibreSSL might not be impossible. I'll have a look. Their philosophy is bad for FFM however since they basically replace API calls with macros, because they (think they) can. Rémy > --- > java/org/apache/tomcat/util/openssl/openssl_h.java | 18 +++++++++++++++--- > webapps/docs/changelog.xml | 4 ++++ > 2 files changed, 19 insertions(+), 3 deletions(-) > > diff --git a/java/org/apache/tomcat/util/openssl/openssl_h.java > b/java/org/apache/tomcat/util/openssl/openssl_h.java > index a8f5777bdb..d3290392a9 100644 > --- a/java/org/apache/tomcat/util/openssl/openssl_h.java > +++ b/java/org/apache/tomcat/util/openssl/openssl_h.java > @@ -23,6 +23,9 @@ import java.lang.invoke.MethodHandle; > import java.lang.invoke.MethodHandles; > import java.util.Arrays; > import java.util.stream.Collectors; > + > +import org.apache.tomcat.util.compat.JrePlatform; > + > import java.lang.foreign.*; > import static java.lang.foreign.ValueLayout.*; > > @@ -49,9 +52,18 @@ public class openssl_h { > static final boolean TRACE_DOWNCALLS = > Boolean.getBoolean("jextract.trace.downcalls"); > static final SymbolLookup SYMBOL_LOOKUP; > static { > - SYMBOL_LOOKUP = > SymbolLookup.libraryLookup(System.mapLibraryName("ssl"), LIBRARY_ARENA) > - .or(SymbolLookup.loaderLookup()) > - .or(Linker.nativeLinker().defaultLookup()); > + if (JrePlatform.IS_MAC_OS) { > + /* > + * On Mac OS SymbolLookup.libraryLookup() appears to ignore > java.library.path which means the LibreSSL > + * library will be found which will then fail. Therefore, skip > that lookup on Mac OS. > + */ > + 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) { > diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml > index bc414180ed..be4f9bf183 100644 > --- a/webapps/docs/changelog.xml > +++ b/webapps/docs/changelog.xml > @@ -161,6 +161,10 @@ > <code>tomcat-coyote-ffm.jar</code> that advertises Java 22 in its > manifest. (remm) > </update> > + <fix> > + Fix search for OpenSSL library for FFM on Mac OS so that > + <code>java.library.path</code> is searched. (markt) > + </fix> > </changelog> > </subsection> > <subsection name="Jasper"> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org