I don't know if this change was intentional or not.
With 3.0 alpha, compiling this simple program on Linux fails but
succeeds on 1.1:
-----------------
#include <openssl/ssl.h>
----------------
gcc -c -I \
/home/normg/local/gs360_opensslv3/slow50/openssl/install50/include test.c
In file included from
/home/normg/local/gs360_opensslv3/slow50/openssl/install50/include/openssl/types.h:20:0,
from
/home/normg/local/gs360_opensslv3/slow50/openssl/install50/include/openssl/err.h:26,
from test.c:1:
/home/normg/local/gs360_opensslv3/slow50/openssl/install50/include/openssl/ssl.h:235:28:
error: 'SRTP_PROTECTION_PROFILE' does not name a type
DEFINE_OR_DECLARE_STACK_OF(SRTP_PROTECTION_PROFILE)
^
/home/normg/local/gs360_opensslv3/slow50/openssl/install50/include/openssl/safestack.h:30:45:
note: in definition of macro 'SKM_DEFINE_STACK_OF'
typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3
*const *b); \
...<pages and pages of warnings/errors>
To fix it, all we need is to include err.h first, as follows:
-----------------
#include <openssl/err.h>
#include <openssl/ssl.h>
----------------
I scanned the wiki and readme and did not see a requirement to include
err.h before ssl.h. Is this intentional or a bug?
It's easy enough for me to fix this in my source code, but other
packages that rely upon openssl break with "ssl.h is unusable" errors
due of this change (OpenLDAP is one such example).
Norm Green