diff options
author | Richard Levitte <levitte@openssl.org> | 2019-12-11 14:36:36 +0100 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2019-12-13 10:09:49 +0100 |
commit | 46994f71631922565924e3ca6303950c36337b33 (patch) | |
tree | f8c702f9f06e6263dd5bb46b82135bb264e11e74 /.gitignore | |
parent | 97ba39547d4c79b60131475a1512cc7d7e8952b2 (diff) |
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)
Diffstat (limited to '.gitignore')
-rw-r--r-- | .gitignore | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore index 0d02ecdf8f..659be22843 100644 --- a/.gitignore +++ b/.gitignore @@ -22,7 +22,7 @@ # Auto generated headers /crypto/buildinf.h /include/crypto/*_conf.h -/include/openssl/opensslconf.h +/include/openssl/configuration.h /include/openssl/opensslv.h # Auto generated doc files |