trouble compiling Dovecot 2.2.31 on Solaris 10 SPARC - libssl_iostream_openssl.so is not portable!
attempting to compile dovecot 2.2.31 on Sun/Oracle Solaris 10 SPARC.
configure goes fine. First sign of problems during compile is with this warning:
............................................... *** libssl_iostream_openssl.so is not portable! ...............................................
actual ERRORS - Soon, compile errors out with undefined symbols. Output at bottom of note. ...............................................
additional system information.
OpenSSL - just prior to dovecot compile attempt, I downloaded and successfully compiled OpenSSL version 1.0.2l (to include a successful "make test" ) in directory /Applications/openssl-1.0.2l.32 , want to link against current code and not mess with system provided SSL stuff in /usr/sfw/*
ENV setting and configure command line prior to compile -
# setenv CPPFLAGS "-I/Applications/openssl-1.0.2l.32/include -I/Applications/openssl-1.0.2l.32/include/openssl" # setenv LDFLAGS "-L/Applications/openssl-1.0.2l.32/lib" # setenv SSL_CFLAGS "-I/Applications/openssl-1.0.2l.32/include -I/Applications/openssl-1.0.2l.32/include/openssl" # setenv SSL_LIBS "-R/Applications/openssl-1.0.2l.32/lib -L/Applications/openssl-1.0.2l.32/lib"
# ./configure
--prefix=/Applications/dovecot-2.2.31.32
--with-ssl=openssl
--with-ssldir=/Applications/dovecot-2.2.31.32/certs
--with-storages=mbox,maildir,imapc,pop3c
.................................................
What is the .32 stuff I see appended to directories?
I did a 32 bit compile of the latest OpenSSL, then , the data shown here is also for a 32 bit dovecot build to link against the 32 bit OpenSSL build.
I have been fighting this for a few days, and had also done an identical 64 bit OpenSSL, then dovecot build. The 64 bit dovecot build failed in the same way and place.
Additionally, when I did the 64 bit compile, I ended up pulling down a current copy of ZLIB, and doing a 64 bit compile of that library also, and installing it under /Applications then linking against that. the system ZLIB library is/was 32 bit, and if there is a 64 bit version provided by Sun/Oracle, neither myself or the "configure" script could locate it. Not a big detail, ZLIB is an easy compile, just trying to share all relevant data.
.................................................
Try again with the latest code.
I have been working/fighting 2.2.31 for a couple of days. I see earlier today, dovecot 2.2.32 was released earlier today, so before anyone runs to put on their "*L*" cap and advise me to pull down the latest code, I already did that, and the compile errors out in the same place.
.................................................
If your still reading, thank you, just want to provide as many relevant details as possible. Again, symbol errors from compile are at bottom.
TIA for any helpful comments or suggestions,
Jerry
............................................................... Undefined first referenced symbol in file ERR_clear_error ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_load_error_strings ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so BIO_ctrl_get_write_guarantee ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so EVP_PKEY_free ../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 DH_generate_parameters ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so sk_value ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so PEM_X509_INFO_read_bio ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_NAME_oneline ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ERR_get_error_line_data ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_write ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_NAME_get_text_by_NID ../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 ENGINE_init ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ENGINE_free ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so BIO_ctrl_pending ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_INFO_free ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_get_ext_d2i ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_free ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ERR_get_error ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so PEM_read_bio_PrivateKey ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so OPENSSL_add_all_algorithms_noconf ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so BIO_write ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ENGINE_set_default ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_accept ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ASN1_STRING_data ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ASN1_STRING_type ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSLv23_server_method ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_STORE_set_flags ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so sk_pop_free ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_CTX_use_PrivateKey ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ERR_error_string_n ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so CRYPTO_set_mem_functions ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so BIO_new_mem_buf ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_CTX_get_cert_store ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so CRYPTO_cleanup_all_ex_data ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so GENERAL_NAME_free ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so sk_num ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_NAME_get_entry ../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 PEM_read_bio_X509 ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_CTX_new ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ERR_peek_error ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so DH_free ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_NAME_ENTRY_get_data ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so d2i_DHparams ../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 i2d_DHparams ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_NAME_get_index_by_NID ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_set_info_callback ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so sk_push ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_connect ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so BIO_new_bio_pair ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_shutdown ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so RAND_bytes ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so EVP_cleanup ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so OBJ_cleanup ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_verify_cert_error_string ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ASN1_STRING_length ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_STORE_add_crl ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ENGINE_load_builtin_engines ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_CTX_set_client_CA_list ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so OBJ_txt2nid ../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 ENGINE_cleanup ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so sk_new_null ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ERR_peek_last_error ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_get_current_cipher ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_STORE_CTX_get_current_cert ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_get_ex_data_X509_STORE_CTX_idx ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so RSA_generate_key ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_STORE_CTX_get_error ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_state_string_long ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ERR_remove_state ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so BIO_free ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so BIO_read ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_STORE_add_cert ../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 X509_STORE_CTX_get_ex_data ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ERR_free_strings ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_NAME_dup ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_CTX_set_tmp_rsa_callback ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so X509_get_subject_name ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_library_init ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ENGINE_finish ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so ENGINE_by_id ../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
*** Error code 1
make: Fatal error: Command failed for target `test-http-client'
On 25/08/2017 04:52, Jerry Kemp wrote:
Hello Jerry,
attempting to compile dovecot 2.2.31 on Sun/Oracle Solaris 10 SPARC.
It worked for me so you should make it to your goal.
configure goes fine. First sign of problems during compile is with this warning:
............................................... *** libssl_iostream_openssl.so is not portable!
That's just libtool whinging. I see the same.
system ZLIB library is/was 32 bit, and if there is a 64 bit version provided by Sun/Oracle, neither myself or the "configure" script could locate it. Not a big detail, ZLIB is an easy compile, just trying to share all relevant data.
$ file /usr/lib/64/libz.so /usr/lib/64/libz.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped, no debugging information available
The compiler should find by itself
$ cc -m64 junk.c -lz $ ldd a.out libz.so.1 => /usr/lib/64/libz.so.1 libc.so.1 => /lib/64/libc.so.1 libm.so.2 => /lib/64/libm.so.2 /platform/SUNW,Sun-Blade-1000/lib/sparcv9/libc_psr.so.1
...but I build my own zlib and use a 32-bit dovecot anyway.
Undefined first referenced symbol in file ERR_clear_error ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_load_error_strings ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so BIO_ctrl_get_write_guarantee ... ld: fatal: symbol referencing errors. No output written to .libs/test-http-client
collect2: ld returned 1 exit status
*** Error code 1
make: Fatal error: Command failed for target `test-http-client'
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.
a bit further along, but not quite there yet!
Hello James, thanks for kicking me off in the right direction. Couple of additional details, using GCC for a compiler. And, at least for now I am going to focus on the 32 bit compile. I do not ever see dovecot handling Gb sized files on this box.
Also, you were dead on regarding the libcrypto.so stuff.
Had a big problem jumping back to my newly compiled OpenSSL stuff. In short, regardless of the successful "make test", I was only producing a libcrypto.a, and not the libcrypto.so* file(s).
It appears that OpenSSL does *NOT* like GNU make, and apparently, GNU make will not produce OpenSSL shared libraries on Solaris.
A recompile using the system "/usr/ccs/bin/make" successfully produced the shared files I needed. .............................................................. /Applications/openssl-1.0.2l.32/lib 578 # ls -l total 7094 drwxr-xr-x 2 root root 14 Aug 25 16:17 engines -rw-r--r-- 1 root root 2933668 Aug 25 16:17 libcrypto.a lrwxrwxrwx 1 root root 18 Aug 25 16:17 libcrypto.so -> libcrypto.so.1.0.0 -r-xr-xr-x 1 root root 1895472 Aug 25 16:17 libcrypto.so.1.0.0 -rw-r--r-- 1 root root 551312 Aug 25 16:17 libssl.a lrwxrwxrwx 1 root root 15 Aug 25 16:17 libssl.so -> libssl.so.1.0.0 -r-xr-xr-x 1 root root 424708 Aug 25 16:17 libssl.so.1.0.0 drwxr-xr-x 2 root root 5 Aug 24 02:41 pkgconfig /Applications/openssl-1.0.2l.32/lib 579 # ..............................................................
reference Marc Girod-2's 19 Oct 2006 1101 post here
<http://openssl.6102.n7.nabble.com/Solaris-installation-Text-relocation-remains-td8346.html>
'/usr/ccs/bin/make test' against the new compile was successful
Please reference follow on email "back to Dovecot"
Thank you.
On 08/25/17 08:36 AM, James wrote:
On 25/08/2017 04:52, Jerry Kemp wrote:
Hello Jerry,
attempting to compile dovecot 2.2.31 on Sun/Oracle Solaris 10 SPARC.
It worked for me so you should make it to your goal.
configure goes fine. First sign of problems during compile is with this warning:
............................................... *** libssl_iostream_openssl.so is not portable!
That's just libtool whinging. I see the same.
system ZLIB library is/was 32 bit, and if there is a 64 bit version provided by Sun/Oracle, neither myself or the "configure" script could locate it. Not a big detail, ZLIB is an easy compile, just trying to share all relevant data.
$ file /usr/lib/64/libz.so /usr/lib/64/libz.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped, no debugging information available
The compiler should find by itself
$ cc -m64 junk.c -lz $ ldd a.out libz.so.1 => /usr/lib/64/libz.so.1 libc.so.1 => /lib/64/libc.so.1 libm.so.2 => /lib/64/libm.so.2 /platform/SUNW,Sun-Blade-1000/lib/sparcv9/libc_psr.so.1
...but I build my own zlib and use a 32-bit dovecot anyway.
Undefined first referenced symbol in file ERR_clear_error ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so SSL_load_error_strings ../lib-ssl-iostream/.libs/libssl_iostream_openssl.so BIO_ctrl_get_write_guarantee ... ld: fatal: symbol referencing errors. No output written to .libs/test-http-client
collect2: ld returned 1 exit status
*** Error code 1
make: Fatal error: Command failed for target `test-http-client'
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.
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.
participants (2)
-
James
-
Jerry Kemp