mirror of
https://github.com/openssl/openssl.git
synced 2024-12-14 04:24:23 +08:00
VMS: mitigate for the C++ compiler that doesn't understand certain pragmas
This only affects __DECC_INCLUDE_EPILOGUE.H and __DECC_INCLUDE_PROLOGUE.H,
which are used automatically by HP and VSI C/C++ compilers.
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/11159)
(cherry picked from commit 605a0c709f
)
This commit is contained in:
parent
c50604eb4a
commit
f33ca114c1
13
CHANGES.md
13
CHANGES.md
@ -935,6 +935,19 @@ OpenSSL 1.1.1
|
||||
|
||||
### Changes between 1.1.1d and 1.1.1e [xx XXX xxxx] ###
|
||||
|
||||
* *[VMS only]* The header files that the VMS compilers include automatically,
|
||||
`__DECC_INCLUDE_PROLOGUE.H` and `__DECC_INCLUDE_EPILOGUE.H`, use pragmas
|
||||
that the C++ compiler doesn't understand. This is a shortcoming in the
|
||||
compiler, but can be worked around with `__cplusplus` guards.
|
||||
|
||||
C++ applications that use OpenSSL libraries must be compiled using the
|
||||
qualifier `/NAMES=(AS_IS,SHORTENED)` to be able to use all the OpenSSL
|
||||
functions. Otherwise, only functions with symbols of less than 31
|
||||
characters can be used, as the linker will not be able to successfully
|
||||
resolve symbols with longer names.
|
||||
|
||||
*Richard Levitte*
|
||||
|
||||
* Added a new method to gather entropy on VMS, based on SYS$GET_ENTROPY.
|
||||
The presence of this system service is determined at run-time.
|
||||
|
||||
|
@ -8,9 +8,15 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file is only used by HP C on VMS, and is included automatically
|
||||
* This file is only used by HP C/C++ on VMS, and is included automatically
|
||||
* after each header file from this directory
|
||||
*/
|
||||
|
||||
/*
|
||||
* The C++ compiler doesn't understand these pragmas, even though it
|
||||
* understands the corresponding command line qualifier.
|
||||
*/
|
||||
#ifndef __cplusplus
|
||||
/* restore state. Must correspond to the save in __decc_include_prologue.h */
|
||||
#pragma names restore
|
||||
# pragma names restore
|
||||
#endif
|
||||
|
@ -8,13 +8,19 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file is only used by HP C on VMS, and is included automatically
|
||||
* This file is only used by HP C/C++ on VMS, and is included automatically
|
||||
* after each header file from this directory
|
||||
*/
|
||||
|
||||
/*
|
||||
* The C++ compiler doesn't understand these pragmas, even though it
|
||||
* understands the corresponding command line qualifier.
|
||||
*/
|
||||
#ifndef __cplusplus
|
||||
/* save state */
|
||||
#pragma names save
|
||||
# pragma names save
|
||||
/* have the compiler shorten symbols larger than 31 chars to 23 chars
|
||||
* followed by a 8 hex char CRC
|
||||
*/
|
||||
#pragma names as_is,shortened
|
||||
# pragma names as_is,shortened
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user