]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Add NonStop KLT Configuration for new platform kernel treading model.
authorRandall S. Becker <randall.becker@nexbridge.ca>
Wed, 17 Apr 2024 21:11:42 +0000 (05:11 +0800)
committerTomas Mraz <tomas@openssl.org>
Tue, 10 Sep 2024 17:16:04 +0000 (19:16 +0200)
This fix supports the new NonStop KLT threading model, including
configurations and documentation for using this model.

Fixes: fix-24175
Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25016)

Configurations/50-nonstop.conf
NOTES-NONSTOP.md

index 572c5a5de8b5b8b14a6c1767a319910a2a5768e0..a68f2008562335d03f8e9994ec4f69fde266ce65 100644 (file)
         ex_libs          => '-lput',
     },
 
+    ######################################################################
+    # Build models
+    'nonstop-model-klt' => {
+        template         => 1,
+        defines          => ['_KLT_MODEL_',
+                             '_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'],
+        ex_libs          => '-lklt',
+    },
+
     ######################################################################
     # Now for the entries themselves, let's combine things!
     'nonstop-nsx' => {
         multibin         => '64-put',
         disable          => ['atexit'],
     },
+    'nonstop-nsx_64_klt' => {
+        inherit_from     => [ 'nonstop-common',
+                              'nonstop-archenv-x86_64-oss',
+                              'nonstop-lp64-x86_64',
+                              'nonstop-efloat-x86_64',
+                              'nonstop-model-klt' ],
+        multilib         => '64-klt',
+        multibin         => '64-klt',
+        disable          => ['atexit'],
+    },
+    'nonstop-nsx_g' => {
+        inherit_from     => [ 'nonstop-common',
+                              'nonstop-archenv-x86_64-guardian',
+                              'nonstop-ilp32', 'nonstop-nfloat-x86_64' ],
+        disable          => ['threads','atexit'],
+    },
+    'nonstop-nsx_g_tandem' => {
+        inherit_from     => [ 'nonstop-common',
+                              'nonstop-archenv-x86_64-guardian',
+                              'nonstop-ilp32', 'nonstop-tfloat-x86_64' ],
+        disable          => ['threads','atexit'],
+    },
     'nonstop-nsv' => {
         inherit_from     => [ 'nonstop-nsx' ],
     },
index 0ef99513bc9ac56a03aafe7594de2598e3f8f355..3fc5bffb1ca86bf46a3af627682decbfe38618e8 100644 (file)
@@ -30,9 +30,16 @@ for each on the TNS/X (L-Series) platform:
 
  * `nonstop-nsx` or default will select an unthreaded 32-bit build.
  * `nonstop-nsx_64` selects an unthreaded 64-bit memory and file length build.
+ * `nonstop-nsx_64_klt` selects the 64-bit memory and file length KLT build.
  * `nonstop-nsx_put` selects the PUT build.
  * `nonstop-nsx_64_put` selects the 64-bit memory and file length PUT build.
 
+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.
+
 The SPT threading model is no longer supported as of OpenSSL 3.2.
 
 The PUT model is incompatible with the QUIC capability. This capability should