Subject: | Compilation fails on debian/stretch (openssl 1.1.0) |
On debian/stretch systems the compilation fails:
...
cc -c -I. -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"0.06\" -DXS_VERSION=\"0.06\" -fPIC "-I/opt/perl-5.22.2/lib/5.22.2/x86_64-linux/CORE" SMimeEngine.c
SMimeEngine.xs:111:26: error: macro "SSL_library_init" passed 1 arguments, but takes just 0
int SSL_library_init(void);
^
SMimeEngine.xs: In function ‘verify_callback’:
SMimeEngine.xs:129:74: error: dereferencing pointer to incomplete type ‘X509_STORE_CTX {aka struct x509_store_ctx_st}’
sprintf(errstring, "Error: %s",X509_verify_cert_error_string(stor->error));
^~
SMimeEngine.xs: In function ‘getCertInfo’:
SMimeEngine.xs:570:34: error: dereferencing pointer to incomplete type ‘X509 {aka struct x509_st}’
i2a_ASN1_INTEGER(outmem, cert->cert_info->serialNumber);
^~
SMimeEngine.xs:599:15: warning: passing argument 1 of ‘OPENSSL_sk_num’ from incompatible pointer type [-Wincompatible-pointer-types]
if(sk_num((STACK_OF(OPENSSL_STRING) *)emlst)>0){
^
In file included from /usr/include/openssl/crypto.h:28:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from SMimeEngine.xs:71:
/usr/include/openssl/stack.h:23:5: note: expected ‘const OPENSSL_STACK * {aka const struct stack_st *}’ but argument is of type ‘struct stack_st_OPENSSL_STRING *’
int OPENSSL_sk_num(const OPENSSL_STACK *);
^~~~~~~~~~~~~~
SMimeEngine.xs:601:27: warning: passing argument 1 of ‘OPENSSL_sk_value’ from incompatible pointer type [-Wincompatible-pointer-types]
n = strlen(sk_value((STACK_OF(OPENSSL_STRING) *)emlst, 0) );
^
In file included from /usr/include/openssl/crypto.h:28:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from SMimeEngine.xs:71:
/usr/include/openssl/stack.h:24:7: note: expected ‘const OPENSSL_STACK * {aka const struct stack_st *}’ but argument is of type ‘struct stack_st_OPENSSL_STRING *’
void *OPENSSL_sk_value(const OPENSSL_STACK *, int);
^~~~~~~~~~~~~~~~
SMimeEngine.xs:604:42: warning: passing argument 1 of ‘OPENSSL_sk_value’ from incompatible pointer type [-Wincompatible-pointer-types]
memcpy(x509_out->v3_email,sk_value((STACK_OF(OPENSSL_STRING) *)emlst, 0),n);
^
In file included from /usr/include/openssl/crypto.h:28:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from SMimeEngine.xs:71:
/usr/include/openssl/stack.h:24:7: note: expected ‘const OPENSSL_STACK * {aka const struct stack_st *}’ but argument is of type ‘struct stack_st_OPENSSL_STRING *’
void *OPENSSL_sk_value(const OPENSSL_STACK *, int);
^~~~~~~~~~~~~~~~
Makefile:339: recipe for target 'SMimeEngine.o' failed
make: *** [SMimeEngine.o] Error 1
(/usr/bin/make exited with 512)
...