Commit 5ea5f42e06 for openssl.org

commit 5ea5f42e0636e068c70208b9029d609606e9526c
Author: David McFarland <corngood@gmail.com>
Date:   Fri Dec 5 13:21:38 2025 -0400

    Disable DLL detach handlers on cygwin

    This patch is from cygwin, and was originally added in:

    https://cygwin.com/cgit/cygwin-packages/openssl/commit/?id=da80cc438622f6b1801fb3fbb06818c3ee070495

    In cygwin, it's not safe to call into libc from
    DLL_THREAD/PROCESS_DETACH, and it results in crashes.

    CLA: trivial

    Co-authored-By: Achim Gratz <Achim.Gratz@Stromeko.DE>

    Reviewed-by: Paul Dale <paul.dale@oracle.com>
    Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
    MergeDate: Thu Mar 19 10:02:05 2026
    (Merged from https://github.com/openssl/openssl/pull/29321)

diff --git a/crypto/dllmain.c b/crypto/dllmain.c
index d8060c7534..a0effb9619 100644
--- a/crypto/dllmain.c
+++ b/crypto/dllmain.c
@@ -34,7 +34,9 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
     case DLL_THREAD_ATTACH:
         break;
     case DLL_THREAD_DETACH:
+# ifndef __CYGWIN__
         OPENSSL_thread_stop();
+# endif
         break;
     case DLL_PROCESS_DETACH:
 #if defined(OSSL_DLLMAIN_DESTRUCTOR)
diff --git a/providers/fips/self_test.c b/providers/fips/self_test.c
index 2082bf0e03..490c9dcf83 100644
--- a/providers/fips/self_test.c
+++ b/providers/fips/self_test.c
@@ -123,7 +123,9 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
         init();
         break;
     case DLL_PROCESS_DETACH:
+# ifndef __CYGWIN__
         cleanup();
+# endif
         break;
     default:
         break;