]> git.ipfire.org Git - thirdparty/openssl.git/commit - .gitignore
Add better support for using deprecated symbols internally
authorRichard Levitte <levitte@openssl.org>
Wed, 11 Dec 2019 13:36:36 +0000 (14:36 +0100)
committerRichard Levitte <levitte@openssl.org>
Fri, 13 Dec 2019 09:09:49 +0000 (10:09 +0100)
commit46994f71631922565924e3ca6303950c36337b33
treef8c702f9f06e6263dd5bb46b82135bb264e11e74
parent97ba39547d4c79b60131475a1512cc7d7e8952b2
Add better support for using deprecated symbols internally

OPENSSL_SUPPRESS_DEPRECATED only does half the job, in telling the
deprecation macros not to add the warning attribute.  However, with
'no-deprecated', the symbols are still removed entirely, while we
might still want to use them internally.

The solution is to permit <openssl/opensslconf.h> macros to be
modified internally, such as undefining OPENSSL_NO_DEPRECATED in this
case.

However, with the way <openssl/opensslconf.h> includes
<openssl/macros.h>, that's easier said than done.  That's solved by
generating <openssl/configuration.h> instead, and add a new
<openssl/opensslconf.h> that includes <openssl/configuration.h> as
well as <openssl/macros.h>, thus allowing to replace an inclusion of
<openssl/opensslconf.h> with this:

    #include <openssl/configuration.h>

    #undef OPENSSL_NO_DEPRECATED
    #define OPENSSL_SUPPRESS_DEPRECATED

    #include <openssl/macros.h>

Or simply add the following prior to any other openssl inclusion:

    #include <openssl/configuration.h>

    #undef OPENSSL_NO_DEPRECATED
    #define OPENSSL_SUPPRESS_DEPRECATED

Note that undefining OPENSSL_NO_DEPRECATED must never be done by
applications, since the symbols must still be exported by the
library.  Internal test programs are excempt of this rule, though.

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/10608)
.gitignore
CHANGES
INSTALL
build.info
include/openssl/configuration.h.in [moved from include/openssl/opensslconf.h.in with 91% similarity]
include/openssl/opensslconf.h [new file with mode: 0644]