a bit further along - back to Dovecot compile - Re: trouble compiling Dovecot 2.2.31 on Solaris 10 SPARC - libssl_iostream_openssl.so is not portable!
Jerry Kemp
dovecot at oryx.us
Sat Aug 26 01:59:00 EEST 2017
After I confirmed I had everything correct with OpenSSL (including successful
'make test'), went back to try a recompile of Dovecot.
same ENV variable setup and configure statement as originally used, but again, :(
ended up failing here:
..........................................................................
libtool: link: gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes
-Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2
-Wbad-function-cast -fno-builtin-strftime
-I/Applications/openssl-1.0.2l.32/include
-I/Applications/openssl-1.0.2l.32/include/openssl -o .libs/test-http-client
test-http-client.o -L/Applications/openssl-1.0.2l.32/lib ./.libs/libhttp.a
../lib-dns/.libs/libdns.a ../lib-ssl-iostream/.libs/libssl_iostream.a
../lib-master/.libs/libmaster.a ../lib-settings/.libs/libsettings.a
../lib-test/.libs/libtest.a ../lib/.libs/liblib.a
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so -lcrypto -lrt -lnsl
-lsocket -lsendfile -lcrypt -R/Applications/dovecot-2.2.31.32/lib/dovecot
Undefined first referenced
symbol in file
SSL_load_error_strings
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_use_PrivateKey
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_get_peer_certificate
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CIPHER_get_bits
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CIPHER_get_name
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_write
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_get_ex_new_index
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_get_error
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CTX_callback_ctrl
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_COMP_get_name
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_accept
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSLv23_server_method
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_get_servername
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_COMP_free_compression_methods
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CTX_use_PrivateKey
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CTX_get_cert_store
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_get_servername_type
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_ctrl
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_free
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_read
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSLv23_client_method
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_alert_type_string_long
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_new
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CTX_new
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CTX_load_verify_locations
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_set_bio
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CTX_set_tmp_dh_callback
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_get_current_compression
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_set_info_callback
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_connect
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_shutdown
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CTX_set_client_CA_list
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_use_certificate
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CTX_use_certificate
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CTX_ctrl
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CTX_free
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_get_current_cipher
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_get_ex_data_X509_STORE_CTX_idx
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_state_string_long
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_alert_desc_string_long
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_get_version
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_get_ex_data
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_set_cipher_list
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_set_ex_data
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CTX_set_cipher_list
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_set_verify
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_CTX_set_tmp_rsa_callback
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
SSL_library_init
../lib-ssl-iostream/.libs/libssl_iostream_openssl.so
ld: fatal: symbol referencing errors. No output written to .libs/test-http-client
collect2: ld returned 1 exit status
make[3]: *** [test-http-client] Error 1
make[3]: Leaving directory `/usr/local/src/d/dovecot-2.2.32/src/lib-http'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/local/src/d/dovecot-2.2.32/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/d/dovecot-2.2.32'
make: *** [all] Error 2
..........................................................................
NOTE: file (data2) list a list of all the failed symbols (reference above)
1 #!/bin/ksh
2
3 cd /usr/local/src/d/dovecot-2.2.32/src/lib-ssl-iostream/.libs
4
5 for foo in `cat data2`; do
6 echo $foo
7 /usr/ccs/bin/nm -D ./libssl_iostream_openssl.so | grep $foo
8 echo "........................................................"
9 done
..........................................................................
James,
I ran this based on the 'nm' example you placed at the bottom of your reply.
this is the output from the script.
/usr/local/src/d/dovecot-2.2.32/src/lib-ssl-iostream/.libs 558 # ./z01.ksh
SSL_load_error_strings
[162] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_load_error_strings
........................................................
SSL_use_PrivateKey
[219] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_use_PrivateKey
........................................................
SSL_get_peer_certificate
[191] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_get_peer_certificate
........................................................
SSL_CIPHER_get_bits
[133] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_CIPHER_get_bits
........................................................
SSL_CIPHER_get_name
[169] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_CIPHER_get_name
........................................................
SSL_write
[187] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_write
........................................................
SSL_get_ex_new_index
[209] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_get_ex_new_index
........................................................
SSL_get_error
[159] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_get_error
........................................................
SSL_CTX_callback_ctrl
[185] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_CTX_callback_ctrl
........................................................
SSL_COMP_get_name
[29] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_COMP_get_name
........................................................
SSL_accept
[129] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_accept
........................................................
SSLv23_server_method
[198] | 0| 0|NOTY |GLOB |0 |UNDEF |SSLv23_server_method
........................................................
SSL_get_servername
[176] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_get_servername
[151] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_get_servername_type
........................................................
SSL_COMP_free_compression_methods
[135] | 0| 0|NOTY |GLOB |0 |UNDEF
|SSL_COMP_free_compression_methods
........................................................
SSL_CTX_use_PrivateKey
[105] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_CTX_use_PrivateKey
........................................................
SSL_CTX_get_cert_store
[46] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_CTX_get_cert_store
........................................................
SSL_get_servername_type
[151] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_get_servername_type
........................................................
SSL_ctrl
[153] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_ctrl
........................................................
SSL_free
[32] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_free
........................................................
SSL_read
[131] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_read
........................................................
SSLv23_client_method
[94] | 0| 0|NOTY |GLOB |0 |UNDEF |SSLv23_client_method
........................................................
SSL_alert_type_string_long
[4] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_alert_type_string_long
........................................................
SSL_new
[101] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_new
........................................................
SSL_CTX_new
[65] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_CTX_new
........................................................
SSL_CTX_load_verify_locations
[112] | 0| 0|NOTY |GLOB |0 |UNDEF
|SSL_CTX_load_verify_locations
........................................................
SSL_set_bio
[174] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_set_bio
........................................................
SSL_CTX_set_tmp_dh_callback
[3] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_CTX_set_tmp_dh_callback
........................................................
SSL_get_current_compression
[224] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_get_current_compression
........................................................
SSL_set_info_callback
[128] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_set_info_callback
........................................................
SSL_connect
[228] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_connect
........................................................
SSL_shutdown
[227] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_shutdown
........................................................
SSL_CTX_set_client_CA_list
[24] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_CTX_set_client_CA_list
........................................................
SSL_use_certificate
[5] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_use_certificate
........................................................
SSL_CTX_use_certificate
[165] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_CTX_use_certificate
........................................................
SSL_CTX_ctrl
[48] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_CTX_ctrl
........................................................
SSL_CTX_free
[141] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_CTX_free
........................................................
SSL_get_current_cipher
[186] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_get_current_cipher
........................................................
SSL_get_ex_data_X509_STORE_CTX_idx
[84] | 0| 0|NOTY |GLOB |0 |UNDEF
|SSL_get_ex_data_X509_STORE_CTX_idx
........................................................
SSL_state_string_long
[160] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_state_string_long
........................................................
SSL_alert_desc_string_long
[52] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_alert_desc_string_long
........................................................
SSL_get_version
[136] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_get_version
........................................................
SSL_get_ex_data
[40] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_get_ex_data
[84] | 0| 0|NOTY |GLOB |0 |UNDEF
|SSL_get_ex_data_X509_STORE_CTX_idx
........................................................
SSL_set_cipher_list
[85] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_set_cipher_list
........................................................
SSL_set_ex_data
[15] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_set_ex_data
........................................................
SSL_CTX_set_cipher_list
[97] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_CTX_set_cipher_list
........................................................
SSL_set_verify
[88] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_set_verify
........................................................
SSL_CTX_set_tmp_rsa_callback
[47] | 0| 0|NOTY |GLOB |0 |UNDEF
|SSL_CTX_set_tmp_rsa_callback
........................................................
SSL_library_init
[27] | 0| 0|NOTY |GLOB |0 |UNDEF |SSL_library_init
........................................................
is this the correct and expected output from /usr/ccs/bin/nm ????
On 08/25/17 08:36 AM, James wrote:
> On 25/08/2017 04:52, Jerry Kemp wrote:
>
>
> ERR_clear_error is in libcrypto:
>
> $ nm -D path/to/libcrypto.so.1.0.0 | grep ERR_clear_error
> [3834] | 920944| 140|FUNC |GLOB |3 |11 |ERR_clear_error
>
>
> Check that your link flags have a -L to libcrypto (ultimately a run path too).
> Check libtool is not changing your flags because it thinks it knows better.
> Extract the link commands from your log/output and run manually, add/remove
> compiler flags, change link paths, hopefully you will find the fault.
>
>
>
> James.
More information about the dovecot
mailing list