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
File tcltls-1.7.22/tlsBIO.c
-- needs

Without including these files, the build fails with error messages, e.g.

In file included from
./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