The branch master has been updated via 7a2ad00f3ecffa6be350e9e72992d4ec003f54ae (commit) via d977a26ed8ca5066d4d72a6d73f1669c8619f4a1 (commit) from 2e3b82926a8cdae5a1bfbf3ac47a6012c270391b (commit)
- Log ----------------------------------------------------------------- commit 7a2ad00f3ecffa6be350e9e72992d4ec003f54ae Author: Richard Levitte <levi...@openssl.org> Date: Mon Dec 6 21:06:06 2021 +0100 Teach OpenSSL::ParseC about OPENSSL_EXPORT and OPENSSL_EXTERN Reviewed-by: Dmitry Belyavskiy <beld...@gmail.com> Reviewed-by: Tomas Mraz <to...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/17215) commit d977a26ed8ca5066d4d72a6d73f1669c8619f4a1 Author: Richard Levitte <levi...@openssl.org> Date: Mon Dec 6 20:54:17 2021 +0100 Make OSSL_provider_init() OPENSSL_EXPORT, not just extern On non-Windows systems, there's no difference at all. On Windows systems, __declspec(dllexport) is added, which ensures it gets exported no matter what. Fixes #17203 Reviewed-by: Dmitry Belyavskiy <beld...@gmail.com> Reviewed-by: Tomas Mraz <to...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/17215) ----------------------------------------------------------------------- Summary of changes: include/openssl/core.h | 2 +- util/perl/OpenSSL/ParseC.pm | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/openssl/core.h b/include/openssl/core.h index 3356ef2088..9683ac70a5 100644 --- a/include/openssl/core.h +++ b/include/openssl/core.h @@ -195,7 +195,7 @@ typedef int (OSSL_provider_init_fn)(const OSSL_CORE_HANDLE *handle, # pragma names save # pragma names uppercase,truncated # endif -extern OSSL_provider_init_fn OSSL_provider_init; +OPENSSL_EXPORT OSSL_provider_init_fn OSSL_provider_init; # ifdef __VMS # pragma names restore # endif diff --git a/util/perl/OpenSSL/ParseC.pm b/util/perl/OpenSSL/ParseC.pm index ee127e88c8..e3cfe07827 100644 --- a/util/perl/OpenSSL/ParseC.pm +++ b/util/perl/OpenSSL/ParseC.pm @@ -610,6 +610,12 @@ EOF }, }, + # OpenSSL's declaration of externs with possible export linkage + # (really only relevant on Windows) + { regexp => qr/OPENSSL_(?:EXPORT|EXTERN)/, + massager => sub { return ("extern"); } + }, + # Spurious stuff found in the OpenSSL headers # Usually, these are just macros that expand to, well, something { regexp => qr/__NDK_FPABI__/,