Closed freedog8 closed 5 years ago
Good Morning Freedog8:
This is a puzzle, for sure. If I understand you correctly, you have built locally installed ssl libraries and are not using the system installed libraries. Correct ?
There are a number of ways to get around this situation. Do you know if the pre-built binaries will function on your system available at: http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/ or from http://hgdownload.cse.ucsc.edu/admin/exe/macOSX.x86_64/
This would save you the time building these on your system.
If your OS will not operate the binaries, you could use the gBiB virtual machine if you happen to have VirtualBox available on your system: http://genome.ucsc.edu/goldenpath/help/gbib.html
The problem you describe can be due to a number of different reasons. The kent code uses both the SSL library functions and the CRYPTO library functions. There could be confusion of where the include files for these functions were picked up by the kent source build. If the build used something other than you custom built libraries, they might be mixed up. The error indicates the desired functions are not found in the libraries specified: -L/home/O_O/local/lib -lpthread -lssl -lcrypto
There are many ways to run the compile link command, here is one example:
cc -O -g -o /cluster/home/hiram/bin/x86_64/fixCr fixCr.o ../../lib/x86_64/jkweb.a /usr/lib64/libmysqlclient.a /usr/lib64/libssl.a /usr/lib64/libcrypto.a -lkrb5 -ldl -lz /usr/lib/gcc/x86_64-redhat-linux/4.8.5/libstdc++.a /usr/lib64/librt.a -lpthread /usr/lib64/libssl.a /usr/lib64/libcrypto.a -lkrb5 -lk5crypto -ldl ../../htslib/libhts.a /usr/lib64/libpng.a -lm /usr/lib64/libz.a
Note the use of the static libraries. If you have static libraries available, try to link with them in this order of this example.
Have you tried the 'userApps' procedure which is a bit more lightweight compared to building the entire source tree: https://genome-source.gi.ucsc.edu/gitlist/kent.git/tree/master/src/userApps/
This is at least partially a real issue, as CRYPTO_set_locking_callback() was removed in OpenSSL 1.1.0 (https://github.com/openssl/openssl/issues/1260). It's probably worth supporting both OpenSSL variants in kent/src/lib/https.c via #ifdef
blocks.
hi, I am compiling some userAPPs with local installed openssl. every thing goes ok until the make application step.
export MACHTYPE=x86_64 cd kent/src/lib
make CFLAGS="-I/home/O_O/local/include/uuid"
cd kent/src/jkOwnLib make CFLAGS="-I/home/O_O/local/include/uuid" cd kent/src/htslib make CFLAGS="-I/home/O_O/local/include/uuid" cd kent/src/utils/fixCr make CFLAGS="-I/home/O_O/local/include/uuid" gcc -O -g -o /home/O_O/bin/x86_64/fixCr fixCr.o ../../lib/x86_64/jkweb.a -L/home/O_O/local/lib -lmysqlclient -lstdc++ -lrt -L/home/O_O/local/lib -lpthread -lssl -lcrypto ../../htslib/libhts.a -L/home/O_O/local/lib -lpng16 -lm -lz ../../lib/x86_64/jkweb.a(https.o): In function
openssl_pthread_setup': /home/O_O/kent/src/lib/https.c:38: undefined reference to
CRYPTO_num_locks' /home/O_O/kent/src/lib/https.c:42: undefined reference toCRYPTO_set_id_callback' /home/O_O/kent/src/lib/https.c:43: undefined reference to
CRYPTO_set_locking_callback' ../../lib/x86_64/jkweb.a(https.o): In functionopenSslInit': /home/O_O/kent/src/lib/https.c:75: undefined reference to
SSL_library_init' /home/O_O/kent/src/lib/https.c:76: undefined reference toERR_load_crypto_strings' /home/O_O/kent/src/lib/https.c:78: undefined reference to
OPENSSL_add_all_algorithms_noconf' ../../lib/x86_64/jkweb.a(https.o): In functionnetConnectHttpsThread': /home/O_O/kent/src/lib/https.c:109: undefined reference to
SSLv23_client_method' /home/O_O/kent/src/lib/https.c:109: undefined reference to `SSLv23_client_method' collect2: error: ld returned 1 exit status make: *** [/home/O_O/bin/x86_64/fixCr] Error 1how can I fix it ?