On Tue, Jul 2, 2024 at 9:52 AM <[email protected]> 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 <[email protected]>
> 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: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]