]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fixes for NonStop builds on 3.5 to handle OS platform header file changes.
authorRandall S. Becker <randall.becker@nexbridge.ca>
Mon, 6 Oct 2025 23:02:42 +0000 (00:02 +0100)
committerTomas Mraz <tomas@openssl.org>
Fri, 17 Oct 2025 17:43:22 +0000 (19:43 +0200)
This changes handles the introduction of _POSIX_VERSION into the NonStop x86
header files that tricks OpenSSL into thinking that ucontext.h is available.

Fixes #28498

Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28769)

(cherry picked from commit fb2f239ca1bd05f609e9e1e06b4b84f7f628d21b)

Configurations/50-nonstop.conf
NOTES-NONSTOP.md
crypto/async/arch/async_posix.h

index a68f2008562335d03f8e9994ec4f69fde266ce65..24ab6009fcf28b619729332c95481e1d03b126b7 100644 (file)
     # Build models
     'nonstop-model-put' => {
         template         => 1,
+        disable          => ['secure-memory'],
         defines          => ['_PUT_MODEL_',
                              '_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'],
         ex_libs          => '-lput',
     # Build models
     'nonstop-model-klt' => {
         template         => 1,
+        disable          => ['secure-memory'],
         defines          => ['_KLT_MODEL_',
                              '_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'],
         ex_libs          => '-lklt',
index 30deed20b8ebf588e8860d0e4de6aebb8a3ac540..a2d485132da6840fd48d5592497436ca5216c8b5 100644 (file)
@@ -37,8 +37,7 @@ for each on the TNS/X (L-Series) platform:
 The KLT threading model is a newly released model on NonStop. It implements
 kernel-level threading. KLT provides much closer threading to what OpenSSL
 uses for Linux-like threading models. KLT continues to use the pthread library
-API. There is no supported 32-bit or Guardian builds for KLT. Note: KLT is
-not currently available but is planned for post-2024.
+API. There is no supported 32-bit or Guardian builds for KLT.
 
 The SPT threading model is no longer supported as of OpenSSL 3.2.
 
@@ -53,6 +52,9 @@ instead of `nsx` in the set above.
 You cannot build for TNS/E for FIPS, so you must specify the `no-fips`
 option to `./Configure`.
 
+TNS/E has moved to a limited support state, so fixes for this platform will not
+be guaranteed in future.
+
 Linking and Loading Considerations
 ----------------------------------
 
@@ -73,6 +75,12 @@ for NonStop builds. If you need to have `atexit()` functionality, set
 register `OPENSSL_cleanup()` automatically. Preferably, you can explicitly call
 `OPENSSL_cleanup()` from your application.
 
+Secure Memory
+-------------
+
+The mechanism used by OpenSSL for secure memory is not supported on NonStop.
+Use the `no-secure-memory` option when running `Configure`.
+
 About Prefix and OpenSSLDir
 ---------------------------
 
index ceb86e24bf354642ea032e79c31dc719ce0eebe7..b953d2e9f9c97731bc1c4ff7ebba72ffd0dff10e 100644 (file)
@@ -13,7 +13,8 @@
 
 #if defined(OPENSSL_SYS_UNIX) \
     && defined(OPENSSL_THREADS) && !defined(OPENSSL_NO_ASYNC) \
-    && !defined(__ANDROID__) && !defined(__OpenBSD__)
+    && !defined(__ANDROID__) && !defined(__OpenBSD__) \
+    && !defined(OPENSSL_SYS_TANDEM)
 
 # include <unistd.h>
 
  */
 #   define USE_SWAPCONTEXT
 #  endif
-#  include <ucontext.h>
-#  ifndef USE_SWAPCONTEXT
-#   include <setjmp.h>
-#  endif
+#   if defined(OPENSSL_SYS_TANDEM)
+#    include <tdmsig.h>
+#   else
+#    include <ucontext.h>
+#   endif
+#   ifndef USE_SWAPCONTEXT
+#    include <setjmp.h>
+#   endif
 
 typedef struct async_fibre_st {
     ucontext_t fibre;