OpenSSL v3 alpha 1: include file problem

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

OpenSSL v3 alpha 1: include file problem

Norm Green
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

Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL v3 alpha 1: include file problem

Richard Levitte - VMS Whacker-2
I hope this is fixed by https://github.com/openssl/openssl/pull/11655

On Mon, 27 Apr 2020 23:14:12 +0200,
Norm Green wrote:

>
> 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
>
--
Richard Levitte         [hidden email]
OpenSSL Project         http://www.openssl.org/~levitte/