Corrected missing definitions from NonStop SPT build.

This change includes swapping the PUT and SPT configuration,
includes of sys/stat.h and sys/types.h in the correct scope
to be picked up by SPT definitions.

Fixes: #14698
Fixes: #14734

CLA: The author has the permission to grant the OpenSSL Team the right to use this change.

Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14736)
This commit is contained in:
Randall S. Becker 2021-03-26 06:34:49 -06:00 committed by Tomas Mraz
parent 1f99b53fe5
commit 650c668737
10 changed files with 48 additions and 6 deletions

View File

@ -168,13 +168,13 @@
'nonstop-model-put' => {
template => 1,
defines => ['_PUT_MODEL_',
'_REENTRANT', '_ENABLE_FLOSS_THREADS'],
'_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'],
ex_libs => '-lput',
},
'nonstop-model-spt' => {
template => 1,
defines => ['_SPT_MODEL_',
'_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'],
'_REENTRANT', '_ENABLE_FLOSS_THREADS'],
ex_libs => '-lspt',
},

View File

@ -13,6 +13,8 @@
#include <string.h>
#ifdef __TANDEM
# include <strings.h> /* strcasecmp */
# include <sys/types.h> /* needed for stat.h */
# include <sys/stat.h> /* struct stat */
#endif
#include "internal/cryptlib.h"
#include "internal/o_dir.h"

View File

@ -7,6 +7,15 @@
* https://www.openssl.org/source/license.html
*/
#if defined (__TANDEM) && defined (_SPT_MODEL_)
/*
* These definitions have to come first in SPT due to scoping of the
* declarations in c99 associated with SPT use of stat.
*/
# include <sys/types.h>
# include <sys/stat.h>
#endif
#include "internal/cryptlib.h"
#include <errno.h>

View File

@ -127,7 +127,7 @@
# define TTY_set(tty,data) ioctl(tty,TIOCSETP,data)
# endif
# if !defined(_LIBC) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VMS)
# if !defined(_LIBC) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VMS) && ! (defined(OPENSSL_SYS_TANDEM) && defined(_SPT_MODEL_))
# include <sys/ioctl.h>
# endif

View File

@ -7,6 +7,15 @@
* https://www.openssl.org/source/license.html
*/
#if defined (__TANDEM) && defined (_SPT_MODEL_)
/*
* These definitions have to come first in SPT due to scoping of the
* declarations in c99 associated with SPT use of stat.
*/
# include <sys/types.h>
# include <sys/stat.h>
#endif
#include "e_os.h"
#include "internal/cryptlib.h"
#include <stdio.h>

2
e_os.h
View File

@ -297,7 +297,7 @@ struct servent *getservbyname(const char *name, const char *proto);
/* ----------------------------- HP NonStop -------------------------------- */
/* Required to support platform variant without getpid() and pid_t. */
# ifdef __TANDEM
# if defined(__TANDEM) && defined(_GUARDIAN_TARGET)
# include <strings.h>
# include <netdb.h>
# define getservbyname(name,proto) getservbyname((char*)name,proto)

View File

@ -217,10 +217,18 @@ static ossl_inline void ossl_sleep(unsigned long millis)
ts.tv_sec = (long int) (millis / 1000);
ts.tv_nsec = (long int) (millis % 1000) * 1000000ul;
nanosleep(&ts, NULL);
# elif defined(__TANDEM) && !defined(_REENTRANT)
# include <cextdecs.h(PROCESS_DELAY_)>
# elif defined(__TANDEM)
# if !defined(_REENTRANT)
# include <cextdecs.h(PROCESS_DELAY_)>
/* HPNS does not support usleep for non threaded apps */
PROCESS_DELAY_(millis * 1000);
# elif defined(_SPT_MODEL_)
# include <spthread.h>
# include <spt_extensions.h>
usleep(millis * 1000);
# else
usleep(millis * 1000);
# endif
# else
usleep(millis * 1000);
# endif

View File

@ -8,6 +8,10 @@
* https://www.openssl.org/source/license.html
*/
#if defined(__TANDEM) && defined(_SPT_MODEL_)
# include <spthread.h>
# include <spt_extensions.h> /* timeval */
#endif
#include <stdio.h>
#include <openssl/rand.h>
#include <openssl/engine.h>

View File

@ -7,6 +7,11 @@
* https://www.openssl.org/source/license.html
*/
#if defined(__TANDEM) && defined(_SPT_MODEL_)
# include <spthread.h>
# include <spt_extensions.h> /* timeval */
#endif
#include <string.h>
#include "internal/nelem.h"
#include "internal/cryptlib.h"

View File

@ -7,6 +7,11 @@
* https://www.openssl.org/source/license.html
*/
#if defined(__TANDEM) && defined(_SPT_MODEL_)
# include <spthread.h>
# include <spt_extensions.h> /* timeval */
#endif
#include "internal/cryptlib.h"
#include <openssl/rand.h>
#include "../ssl_local.h"