View Ticket
2022-09-19
14:23 New ticket [cfba27dc07] Build against LibreSSL 3.5.3 has missing definitions. artifact: 0fb4157e56 user: anonymous

Ticket Hash: cfba27dc078fdc30b866d896df921346897c2d1a
Title: Build against LibreSSL 3.5.3 has missing definitions
Status: Open Type: Build Problem
Severity: Critical Priority:
Subsystem: Resolution:
Last Modified: 2022-09-19 14:23:33
Version Found In: 3.5.3
User Comments:
anonymous added on 2022-09-19 14:23:33:
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