As of openssl 1.1.1s SSL_load_error_strings(); exists only in this form in include/openssl/ssl.h: ```c # if OPENSSL_API_COMPAT < 0x10100000L # define SSL_load_error_strings() \ OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) # endif ``` It does not exist, when OPENSSL_API_COMPAT == 0x10100000L. When openssl is ./Configure’d with `no-deprecated`then OPENSSL_API_COMPAT is set in include/openssl/opensslconf.h to OPENSSL_MIN_API=0x10100000L. That is: when OpenSSL 1.1.1s is `./Configure no-deprecated`, the macro SSL_load_error_strings() does not exist, but tls_h_mod_pre_init_f() calls it. This might or might not help: ```diff diff --git a/src/modules/tls/tls_init.c b/src/modules/tls/tls_init.c index 4c858bbbd8..784168c6f7 100644 --- a/src/modules/tls/tls_init.c +++ b/src/modules/tls/tls_init.c @@ -647,8 +647,8 @@ int tls_h_mod_pre_init_f(void) #else LM_DBG("preparing tls env for modules initialization (libssl <=1.0)\n"); SSL_library_init(); -#endif SSL_load_error_strings(); +#endif tls_mod_preinitialized=1; return 0; } ```