When building against LibreSSL 3.5.3, TclTLS needs to include private header files from LibreSSL. Specifically,
File tcltls-1.7.22/tls.c
-- needs libressl-3.5.3/crypto/dh/dh_local.h
File tcltls-1.7.22/tlsBIO.c
-- needs libressl-3.5.3/crypto/bio/bio_local.h
Without including these files, the build fails with error messages, e.g.
In file included from ../../src/tcltls-1.7.22/tls.c:84:
./dh_params.h: In function ‘get_dhParams’:
./dh_params.h:33: error: dereferencing pointer to incomplete type
./dh_params.h:34: error: dereferencing pointer to incomplete type
./dh_params.h:35: error: dereferencing pointer to incomplete type
./dh_params.h:35: error: dereferencing pointer to incomplete type
make: *** [tls.o] Error 1
The reason is that some definitions in LibreSSL are no longer present in the installed headers. From the LibreSSL Changelog file:
3.5.0 - Development release
* Compatibility Changes
- Most structs that were previously defined in the following headers
are now opaque as they are in OpenSSL 1.1:
bio.h, bn.h, comp.h, dh.h, dsa.h, evp.h, hmac.h, ocsp.h, rsa.h,
x509.h, x509v3.h, x509_vfy.h
|