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

Reply via email to