freefunc - name clash with Python.h

Hal Murray hmurray at megapathdsl.net
Sat Jun 13 22:47:06 UTC 2020


I get a blizzard of shadow warnings if Pyhton.h is included along with evp.h.
No problems on 1.1.1g from Fedora.

They go away if I include evp.h first.

/usr/local/ssl/include/openssl/safestack.h:124:72: warning: declaration of 
‘freefunc’ shadows a global declaration [-Wshadow]
  124 |                                          sk_##t1##_freefunc freefunc) \
      |                                          ~~~~~~~~~~~~~~~~~~~^~~~~~~~

I don't know anything about that area.  Is Python's freefunc the same as 
OpenSSL's?  Is this really a warning or a disaster waiting to happen?

Trivial test program attached.
-------------- next part --------------
/* hack to demonstrate freefunc name clash */

/* Build with:
 * cc -Wall -Wshadow -I/usr/include/python3.8 \
 *     -I/usr/local/ssl/include -o freefunc-shadow freefunc-shadow.c
 */

#define PY_SSIZE_T_CLEAN
#include <Python.h>
#include <openssl/evp.h>

int main(int argc, char *argv[])
{
        return 0;
}

-------------- next part --------------
-- 
These are my opinions.  I hate spam.



More information about the openssl-users mailing list