Skip to content

Commit

Permalink
Add NonStop KLT Configuration for new platform kernel treading model.
Browse files Browse the repository at this point in the history
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 <[email protected]>

Reviewed-by: Neil Horman <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from openssl#25016)
  • Loading branch information
rsbeckerca authored and t8m committed Sep 10, 2024
1 parent d677482 commit ad1d0cc
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
31 changes: 31 additions & 0 deletions Configurations/50-nonstop.conf
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,15 @@
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' => {
Expand Down Expand Up @@ -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' ],
},
Expand Down
7 changes: 7 additions & 0 deletions NOTES-NONSTOP.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit ad1d0cc

Please sign in to comment.