summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRandall S. Becker <randall.becker@nexbridge.ca>2024-04-17 23:11:42 +0200
committerTomas Mraz <tomas@openssl.org>2024-09-10 19:16:04 +0200
commitad1d0cc99909b93b150ef197034ec05f428b74f9 (patch)
tree6ce39fb8886e91b3c7f1061a270fc62441c8744f
parentUse Jq to add openssl to interop test harness (diff)
downloadopenssl-ad1d0cc99909b93b150ef197034ec05f428b74f9.tar.xz
openssl-ad1d0cc99909b93b150ef197034ec05f428b74f9.zip
Add NonStop KLT Configuration for new platform kernel treading model.
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)
-rw-r--r--Configurations/50-nonstop.conf31
-rw-r--r--NOTES-NONSTOP.md7
2 files changed, 38 insertions, 0 deletions
diff --git a/Configurations/50-nonstop.conf b/Configurations/50-nonstop.conf
index 572c5a5de8..a68f200856 100644
--- a/Configurations/50-nonstop.conf
+++ b/Configurations/50-nonstop.conf
@@ -174,6 +174,15 @@
},
######################################################################
+ # 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' => {
inherit_from => [ 'nonstop-common',
@@ -211,6 +220,28 @@
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' ],
},
diff --git a/NOTES-NONSTOP.md b/NOTES-NONSTOP.md
index 0ef99513bc..3fc5bffb1c 100644
--- a/NOTES-NONSTOP.md
+++ b/NOTES-NONSTOP.md
@@ -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