James E. King, III created THRIFT-4299:
------------------------------------------

             Summary: Fix Ubuntu Xenial build environment for the D language
                 Key: THRIFT-4299
                 URL: https://issues.apache.org/jira/browse/THRIFT-4299
             Project: Thrift
          Issue Type: Sub-task
          Components: Build Process, D - Library
    Affects Versions: 0.11.0
         Environment: docker:ubuntu1604
            Reporter: James E. King, III


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:

{noformat}
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
{noformat}

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.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to