Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.11.0
-
None
-
docker:ubuntu1604
Description
It appears that when using the deimos openssl library with xenial (which has OpenSSL 1.0.2g) there are some issues when running make check, specifically:
dmd -gc -ofunittest/debug/thrift/transport/memory -unittest -w -wi -I../../lib/d/src -L-levent -L-lssl -L-lcrypto src/thrift/transport/memory.d libthriftd-event.a libthriftd-ssl.a libthriftd.a unittest/emptymain.d Deprecation: use -g instead of -gc libthriftd-ssl.a(ssl_349_3af.o): In function `_D6thrift9transport3ssl10TSSLSocket6isOpenMFNdZb': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket6isOpenMFNdZb[_D6thrift9transport3ssl10TSSLSocket6isOpenMFNdZb]+0x73): undefined reference to `SSL_get_shutdown' libthriftd-ssl.a(ssl_349_3af.o): In function `_D6thrift9transport3ssl10TSSLSocket4peekMFZb': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket4peekMFZb[_D6thrift9transport3ssl10TSSLSocket4peekMFZb]+0x77): undefined reference to `SSL_peek' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket4peekMFZb[_D6thrift9transport3ssl10TSSLSocket4peekMFZb]+0xa9): undefined reference to `ERR_clear_error' libthriftd-ssl.a(ssl_349_3af.o): In function `_D6thrift9transport3ssl10TSSLSocket5closeMFZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket5closeMFZv[_D6thrift9transport3ssl10TSSLSocket5closeMFZv]+0x6e): undefined reference to `SSL_shutdown' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket5closeMFZv[_D6thrift9transport3ssl10TSSLSocket5closeMFZv]+0x82): undefined reference to `SSL_shutdown' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket5closeMFZv[_D6thrift9transport3ssl10TSSLSocket5closeMFZv]+0xe1): undefined reference to `SSL_free' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket5closeMFZv[_D6thrift9transport3ssl10TSSLSocket5closeMFZv]+0xf3): undefined reference to `ERR_remove_state' libthriftd-ssl.a(ssl_349_3af.o): In function `_D6thrift9transport3ssl10TSSLSocket4readMFAhZm': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket4readMFAhZm[_D6thrift9transport3ssl10TSSLSocket4readMFAhZm]+0x95): undefined reference to `SSL_read' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket4readMFAhZm[_D6thrift9transport3ssl10TSSLSocket4readMFAhZm]+0xb3): undefined reference to `SSL_get_error' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket4readMFAhZm[_D6thrift9transport3ssl10TSSLSocket4readMFAhZm]+0xbd): undefined reference to `ERR_get_error' libthriftd-ssl.a(ssl_349_3af.o): In function `_D6thrift9transport3ssl10TSSLSocket5writeMFxAhZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket5writeMFxAhZv[_D6thrift9transport3ssl10TSSLSocket5writeMFxAhZv]+0x8a): undefined reference to `SSL_write' libthriftd-ssl.a(ssl_349_3af.o): In function `_D6thrift9transport3ssl10TSSLSocket5flushMFZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket5flushMFZv[_D6thrift9transport3ssl10TSSLSocket5flushMFZv]+0x59): undefined reference to `SSL_get_wbio' libthriftd-ssl.a(ssl_349_3af.o): In function `_D6thrift9transport3ssl10TSSLSocket14checkHandshakeMFZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket14checkHandshakeMFZv[_D6thrift9transport3ssl10TSSLSocket14checkHandshakeMFZv]+0x84): undefined reference to `SSL_set_fd' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket14checkHandshakeMFZv[_D6thrift9transport3ssl10TSSLSocket14checkHandshakeMFZv]+0xa2): undefined reference to `SSL_accept' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket14checkHandshakeMFZv[_D6thrift9transport3ssl10TSSLSocket14checkHandshakeMFZv]+0xb4): undefined reference to `SSL_connect' libthriftd-ssl.a(ssl_34a_1b8.o): In function `_D6thrift9transport3ssl11TSSLContext6__ctorMFZC6thrift9transport3ssl11TSSLContext': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext6__ctorMFZC6thrift9transport3ssl11TSSLContext[_D6thrift9transport3ssl11TSSLContext6__ctorMFZC6thrift9transport3ssl11TSSLContext]+0x47): undefined reference to `SSLv23_method' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext6__ctorMFZC6thrift9transport3ssl11TSSLContext[_D6thrift9transport3ssl11TSSLContext6__ctorMFZC6thrift9transport3ssl11TSSLContext]+0x4f): undefined reference to `SSL_CTX_new' libthriftd-ssl.a(ssl_34b_236.o): In function `_D6thrift9transport3ssl11TSSLContext6__dtorMFZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext6__dtorMFZv[_D6thrift9transport3ssl11TSSLContext6__dtorMFZv]+0x38): undefined reference to `SSL_CTX_free' libthriftd-ssl.a(ssl_34c_2ee.o): In function `_D6thrift9transport3ssl11TSSLContext7ciphersMFNdAyaZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext7ciphersMFNdAyaZv[_D6thrift9transport3ssl11TSSLContext7ciphersMFNdAyaZv]+0x77): undefined reference to `SSL_CTX_set_cipher_list' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext7ciphersMFNdAyaZv[_D6thrift9transport3ssl11TSSLContext7ciphersMFNdAyaZv]+0x7f): undefined reference to `ERR_peek_error' libthriftd-ssl.a(ssl_34d_4ff.o): In function `_D6thrift9transport3ssl11TSSLContext12authenticateMFNdbZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext12authenticateMFNdbZv[_D6thrift9transport3ssl11TSSLContext12authenticateMFNdbZv]+0x76): undefined reference to `SSL_CTX_set_verify' libthriftd-ssl.a(ssl_34e_603.o): In function `_D6thrift9transport3ssl11TSSLContext15loadCertificateMFAyaAyaZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext15loadCertificateMFAyaAyaZv[_D6thrift9transport3ssl11TSSLContext15loadCertificateMFAyaAyaZv]+0xe5): undefined reference to `SSL_CTX_use_certificate_chain_file' libthriftd-ssl.a(ssl_34f_5a4.o): In function `_D6thrift9transport3ssl11TSSLContext14loadPrivateKeyMFAyaAyaZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext14loadPrivateKeyMFAyaAyaZv[_D6thrift9transport3ssl11TSSLContext14loadPrivateKeyMFAyaAyaZv]+0xea): undefined reference to `SSL_CTX_use_PrivateKey_file' libthriftd-ssl.a(ssl_350_961.o): In function `_D6thrift9transport3ssl11TSSLContext23loadTrustedCertificatesMFAyaZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext23loadTrustedCertificatesMFAyaZv[_D6thrift9transport3ssl11TSSLContext23loadTrustedCertificatesMFAyaZv]+0x9f): undefined reference to `SSL_CTX_load_verify_locations' libthriftd-ssl.a(ssl_351_3c9.o): In function `_D6thrift9transport3ssl11TSSLContext9randomizeMFZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext9randomizeMFZv[_D6thrift9transport3ssl11TSSLContext9randomizeMFZv]+0x44): undefined reference to `RAND_poll' libthriftd-ssl.a(ssl_356_366.o): In function `_D6thrift9transport3ssl11TSSLContext9createSSLMFZPS6deimos7openssl3ssl6ssl_st': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext9createSSLMFZPS6deimos7openssl3ssl6ssl_st[_D6thrift9transport3ssl11TSSLContext9createSSLMFZPS6deimos7openssl3ssl6ssl_st]+0x54): undefined reference to `SSL_new' libthriftd-ssl.a(ssl_358_c85.o): In function `_D6thrift9transport3ssl11TSSLContext31overrideDefaultPasswordCallbackMFZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext31overrideDefaultPasswordCallbackMFZv[_D6thrift9transport3ssl11TSSLContext31overrideDefaultPasswordCallbackMFZv]+0x5e): undefined reference to `SSL_CTX_set_default_passwd_cb' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext31overrideDefaultPasswordCallbackMFZv[_D6thrift9transport3ssl11TSSLContext31overrideDefaultPasswordCallbackMFZv]+0x6e): undefined reference to `SSL_CTX_set_default_passwd_cb_userdata' libthriftd-ssl.a(ssl_359_6b6.o): In function `_D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv]+0x29): undefined reference to `SSL_library_init' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv]+0x2e): undefined reference to `SSL_load_error_strings' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv]+0x33): undefined reference to `CRYPTO_num_locks' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv]+0xbb): undefined reference to `CRYPTO_set_id_callback' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv]+0xcf): undefined reference to `CRYPTO_set_locking_callback' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv]+0xe3): undefined reference to `CRYPTO_set_dynlock_create_callback' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv]+0xf7): undefined reference to `CRYPTO_set_dynlock_lock_callback' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext17initializeOpenSSLFZv]+0x10b): undefined reference to `CRYPTO_set_dynlock_destroy_callback' libthriftd-ssl.a(ssl_35a_56c.o): In function `_D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv': src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv]+0x21): undefined reference to `CRYPTO_set_locking_callback' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv]+0x28): undefined reference to `CRYPTO_set_dynlock_create_callback' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv]+0x2f): undefined reference to `CRYPTO_set_dynlock_lock_callback' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv]+0x36): undefined reference to `CRYPTO_set_dynlock_destroy_callback' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv]+0x3b): undefined reference to `CRYPTO_cleanup_all_ex_data' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv]+0x40): undefined reference to `ERR_free_strings' src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv[_D6thrift9transport3ssl11TSSLContext14cleanupOpenSSLFZv]+0x47): undefined reference to `ERR_remove_state' libthriftd-ssl.a(bio_275_3cd.o): In function `_D6deimos7openssl3bio14__T9BIO_flushZ9BIO_flushUNbPS6deimos7openssl3bio6bio_stZi': /usr/include/dmd/druntime/import/deimos/openssl/bio.d:(.text._D6deimos7openssl3bio14__T9BIO_flushZ9BIO_flushUNbPS6deimos7openssl3bio6bio_stZi[_D6deimos7openssl3bio14__T9BIO_flushZ9BIO_flushUNbPS6deimos7openssl3bio6bio_stZi]+0xe): undefined reference to `BIO_ctrl' libthriftd-ssl.a(ssl_2d5_7c8.o): In function `_D6deimos7openssl3ssl25__T19SSL_CTX_set_optionsZ19SSL_CTX_set_optionsUNbPS6deimos7openssl3ssl10ssl_ctx_stlZl': /usr/include/dmd/druntime/import/deimos/openssl/ssl.d:(.text._D6deimos7openssl3ssl25__T19SSL_CTX_set_optionsZ19SSL_CTX_set_optionsUNbPS6deimos7openssl3ssl10ssl_ctx_stlZl[_D6deimos7openssl3ssl25__T19SSL_CTX_set_optionsZ19SSL_CTX_set_optionsUNbPS6deimos7openssl3ssl10ssl_ctx_stlZl]+0xf): undefined reference to `SSL_CTX_ctrl' libthriftd-ssl.a(ssl_2d7_661.o): In function `_D6deimos7openssl3ssl22__T16SSL_CTX_set_modeZ16SSL_CTX_set_modeUNbPS6deimos7openssl3ssl10ssl_ctx_stlZl': /usr/include/dmd/druntime/import/deimos/openssl/ssl.d:(.text._D6deimos7openssl3ssl22__T16SSL_CTX_set_modeZ16SSL_CTX_set_modeUNbPS6deimos7openssl3ssl10ssl_ctx_stlZl[_D6deimos7openssl3ssl22__T16SSL_CTX_set_modeZ16SSL_CTX_set_modeUNbPS6deimos7openssl3ssl10ssl_ctx_stlZl]+0xf): undefined reference to `SSL_CTX_ctrl' libthriftd-ssl.a(ssl_33e_3db.o): In function `_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv': src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x2a): undefined reference to `SSL_get_verify_result' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x55): undefined reference to `X509_verify_cert_error_string' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0xb7): undefined reference to `SSL_get_peer_certificate' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0xd0): undefined reference to `SSL_get_verify_mode' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x19e): undefined reference to `X509_free' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x1cc): undefined reference to `X509_free' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x240): undefined reference to `X509_get_ext_d2i' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x2a5): undefined reference to `ASN1_STRING_data' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x2b8): undefined reference to `ASN1_STRING_length' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x32d): undefined reference to `GENERAL_NAME_free' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x347): undefined reference to `X509_free' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x3b1): undefined reference to `X509_get_subject_name' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x3e9): undefined reference to `X509_NAME_get_index_by_NID' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x3fd): undefined reference to `X509_NAME_get_entry' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x40a): undefined reference to `X509_NAME_ENTRY_get_data' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x416): undefined reference to `ASN1_STRING_to_UTF8' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x450): undefined reference to `CRYPTO_free' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv[_D6thrift8internal3ssl9authorizeFPS6deimos7openssl3ssl6ssl_stC6thrift9transport3ssl14TAccessManagerC3std6socket7AddressLAyaZv]+0x461): undefined reference to `X509_free' libthriftd-ssl.a(ssl_33f_5e1.o): In function `_D6thrift8internal3ssl15getSSLExceptionFAyaAyamZC9Exception': src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl15getSSLExceptionFAyaAyamZC9Exception[_D6thrift8internal3ssl15getSSLExceptionFAyaAyamZC9Exception]+0x6e): undefined reference to `ERR_get_error_line_data' src/thrift/internal/ssl.d:(.text._D6thrift8internal3ssl15getSSLExceptionFAyaAyamZC9Exception[_D6thrift8internal3ssl15getSSLExceptionFAyaAyamZC9Exception]+0xe9): undefined reference to `ERR_reason_error_string' libthriftd-ssl.a(safestack_295_449.o): In function `_D6deimos7openssl9safestack57__T10SKM_sk_numTS6deimos7openssl6x509v315GENERAL_NAME_stZ16__T10SKM_sk_numZ10SKM_sk_numFNbPS6deimos7openssl9safestack54__T8STACK_OFTS6deimos7openssl6x509v315GENERAL_NAME_stZ8STACK_OFZi': /usr/include/dmd/druntime/import/deimos/openssl/safestack.d:(.text._D6deimos7openssl9safestack57__T10SKM_sk_numTS6deimos7openssl6x509v315GENERAL_NAME_stZ16__T10SKM_sk_numZ10SKM_sk_numFNbPS6deimos7openssl9safestack54__T8STACK_OFTS6deimos7openssl6x509v315GENERAL_NAME_stZ8STACK_OFZi[_D6deimos7openssl9safestack57__T10SKM_sk_numTS6deimos7openssl6x509v315GENERAL_NAME_stZ16__T10SKM_sk_numZ10SKM_sk_numFNbPS6deimos7openssl9safestack54__T8STACK_OFTS6deimos7openssl6x509v315GENERAL_NAME_stZ8STACK_OFZi]+0xd): undefined reference to `sk_num' libthriftd-ssl.a(safestack_297_516.o): In function `_D6deimos7openssl9safestack59__T12SKM_sk_valueTS6deimos7openssl6x509v315GENERAL_NAME_stZ18__T12SKM_sk_valueZ12SKM_sk_valueFNbPS6deimos7openssl9safestack54__T8STACK_OFTS6deimos7openssl6x509v315GENERAL_NAME_stZ8STACK_OFiZPS6deimos7openssl6x509v315GENERAL_NAME_st': /usr/include/dmd/druntime/import/deimos/openssl/safestack.d:(.text._D6deimos7openssl9safestack59__T12SKM_sk_valueTS6deimos7openssl6x509v315GENERAL_NAME_stZ18__T12SKM_sk_valueZ12SKM_sk_valueFNbPS6deimos7openssl9safestack54__T8STACK_OFTS6deimos7openssl6x509v315GENERAL_NAME_stZ8STACK_OFiZPS6deimos7openssl6x509v315GENERAL_NAME_st[_D6deimos7openssl9safestack59__T12SKM_sk_valueTS6deimos7openssl6x509v315GENERAL_NAME_stZ18__T12SKM_sk_valueZ12SKM_sk_valueFNbPS6deimos7openssl9safestack54__T8STACK_OFTS6deimos7openssl6x509v315GENERAL_NAME_stZ8STACK_OFiZPS6deimos7openssl6x509v315GENERAL_NAME_st]+0x1d): undefined reference to `sk_value' libthriftd-ssl.a(safestack_298_8dc.o): In function `_D6deimos7openssl9safestack62__T15SKM_sk_pop_freeTS6deimos7openssl6x509v315GENERAL_NAME_stZ21__T15SKM_sk_pop_freeZ15SKM_sk_pop_freeFNbPS6deimos7openssl9safestack54__T8STACK_OFTS6deimos7openssl6x509v315GENERAL_NAME_stZ8STACK_OFPUPS6deimos7openssl6x509v315GENERAL_NAME_stZvZv': /usr/include/dmd/druntime/import/deimos/openssl/safestack.d:(.text._D6deimos7openssl9safestack62__T15SKM_sk_pop_freeTS6deimos7openssl6x509v315GENERAL_NAME_stZ21__T15SKM_sk_pop_freeZ15SKM_sk_pop_freeFNbPS6deimos7openssl9safestack54__T8STACK_OFTS6deimos7openssl6x509v315GENERAL_NAME_stZ8STACK_OFPUPS6deimos7openssl6x509v315GENERAL_NAME_stZvZv[_D6deimos7openssl9safestack62__T15SKM_sk_pop_freeTS6deimos7openssl6x509v315GENERAL_NAME_stZ21__T15SKM_sk_pop_freeZ15SKM_sk_pop_freeFNbPS6deimos7openssl9safestack54__T8STACK_OFTS6deimos7openssl6x509v315GENERAL_NAME_stZ8STACK_OFPUPS6deimos7openssl6x509v315GENERAL_NAME_stZvZv]+0x29): undefined reference to `sk_pop_free' collect2: error: ld returned 1 exit status Error: linker exited with status 1 Makefile:1326: recipe for target 'unittest/debug/thrift/server/transport/ssl' failed
It may be necessary to switch to the dcrypto library, or find a way to make this work. Not sure what's wrong; maybe just missing libssl in the link options who knows.