Compilation against libressl 2.7+ fails on HMAC_CTX_new
I've tried building cmake 3.12.2 with gcc 7 as follows, but get the error as described in the title:
gcc --version
gcc (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812]
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
./bootstrap
make
...
[ 37%] Building C object Utilities/cmlibarchive/libarchive/CMakeFiles/cmlibarchive.dir/archive_hmac.c.o
In file included from /dev/shm/cmake-3.12.2/Utilities/cmlibarchive/libarchive/archive_hmac_private.h:73:0,
from /dev/shm/cmake-3.12.2/Utilities/cmlibarchive/libarchive/archive_hmac.c:32:
/dev/shm/cmake-3.12.2/Utilities/cmlibarchive/libarchive/archive_openssl_hmac_private.h:34:25: error: static declaration of ‘HMAC_CTX_new’ follows non-static declaration
static inline HMAC_CTX *HMAC_CTX_new(void)
^~~~~~~~~~~~
In file included from /dev/shm/cmake-3.12.2/Utilities/cmlibarchive/libarchive/archive_openssl_hmac_private.h:28:0,
from /dev/shm/cmake-3.12.2/Utilities/cmlibarchive/libarchive/archive_hmac_private.h:73,
from /dev/shm/cmake-3.12.2/Utilities/cmlibarchive/libarchive/archive_hmac.c:32:
/usr/include/openssl/hmac.h:86:11: note: previous declaration of ‘HMAC_CTX_new’ was here
HMAC_CTX *HMAC_CTX_new(void);
^~~~~~~~~~~~
In file included from /dev/shm/cmake-3.12.2/Utilities/cmlibarchive/libarchive/archive_hmac_private.h:73:0,
from /dev/shm/cmake-3.12.2/Utilities/cmlibarchive/libarchive/archive_hmac.c:32:
/dev/shm/cmake-3.12.2/Utilities/cmlibarchive/libarchive/archive_openssl_hmac_private.h:40:20: error: static declaration of ‘HMAC_CTX_free’ follows non-static declaration
static inline void HMAC_CTX_free(HMAC_CTX *ctx)
^~~~~~~~~~~~~
In file included from /dev/shm/cmake-3.12.2/Utilities/cmlibarchive/libarchive/archive_openssl_hmac_private.h:28:0,
from /dev/shm/cmake-3.12.2/Utilities/cmlibarchive/libarchive/archive_hmac_private.h:73,
from /dev/shm/cmake-3.12.2/Utilities/cmlibarchive/libarchive/archive_hmac.c:32:
/usr/include/openssl/hmac.h:87:6: note: previous declaration of ‘HMAC_CTX_free’ was here
void HMAC_CTX_free(HMAC_CTX *ctx);
^~~~~~~~~~~~~
make[2]: *** [Utilities/cmlibarchive/libarchive/CMakeFiles/cmlibarchive.dir/build.make:232: Utilities/cmlibarchive/libarchive/CMakeFiles/cmlibarchive.dir/archive_hmac.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1883: Utilities/cmlibarchive/libarchive/CMakeFiles/cmlibarchive.dir/all] Error 2
make: *** [Makefile:163: all] Error 2