Hi all We are having problems building proton-c on our dev boxes (Red Hat Enterprise Linux Server release 5.3 (Tikanga)). I've done a git bisect and discovered that it was Andrew's commit last Wednesday (rev 1417553) that has introduced/exposed the issue. Before that point, we could build without this issue.
It appears to be a link issue with openssl. The following version of openssl is installed: $rpm -q openssl openssl-0.9.8e-7.el5.x86_64 openssl-0.9.8e-7.el5.i686 Make is failing with the following (complete cmake/make output attached below) Linking C shared library libqpid-proton.so CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `_log_ssl_error': openssl.c:(.text+0x2de): undefined reference to `ERR_get_error' openssl.c:(.text+0x2ff): undefined reference to `ERR_error_string_n' openssl.c:(.text+0x31c): undefined reference to `ERR_get_error' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `ssl_failed': openssl.c:(.text+0x43f): undefined reference to `ERR_get_error' openssl.c:(.text+0x45f): undefined reference to `ERR_error_string_n' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `get_dh2048': openssl.c:(.text+0x4ac): undefined reference to `DH_new' openssl.c:(.text+0x4d7): undefined reference to `BN_bin2bn' openssl.c:(.text+0x4f8): undefined reference to `BN_bin2bn' openssl.c:(.text+0x526): undefined reference to `DH_free' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `pn_ssl_domain': openssl.c:(.text+0x71e): undefined reference to `OPENSSL_add_all_algorithms_noconf' openssl.c:(.text+0x8fd): undefined reference to `DH_free' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `pn_ssl': openssl.c:(.text+0x1979): undefined reference to `OPENSSL_add_all_algorithms_noconf' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `process_input_ssl': openssl.c:(.text+0x1cd2): undefined reference to `BIO_write' openssl.c:(.text+0x1d62): undefined reference to `BIO_ctrl' openssl.c:(.text+0x1dcf): undefined reference to `BIO_read' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `process_output_ssl': openssl.c:(.text+0x2268): undefined reference to `BIO_write' openssl.c:(.text+0x240e): undefined reference to `BIO_read' openssl.c:(.text+0x24b7): undefined reference to `BIO_ctrl' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `init_ssl_socket': openssl.c:(.text+0x26a3): undefined reference to `BIO_new' openssl.c:(.text+0x26fa): undefined reference to `BIO_ctrl' openssl.c:(.text+0x2719): undefined reference to `BIO_new_bio_pair' openssl.c:(.text+0x278f): undefined reference to `BIO_ctrl' openssl.c:(.text+0x27cf): undefined reference to `BIO_ctrl' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `release_ssl_socket': openssl.c:(.text+0x2816): undefined reference to `BIO_free' openssl.c:(.text+0x284c): undefined reference to `BIO_free' openssl.c:(.text+0x2866): undefined reference to `BIO_free' I am not able to determine the underlying cause (my C skills are ten years rusty), would someone be able to take a look and advise? Kind regards Keith Wall. For reference, the complete make output: The error we see is $ (cd proton-c/build/; rm -rf *; cmake -DCMAKE_INSTALL_PREFIX=/usr ..; make clean; make all) -- The C compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Found OpenSSL: /usr/lib64/libssl.so -- Looking for clock_gettime -- Looking for clock_gettime - not found. -- Looking for clock_gettime in rt -- Looking for clock_gettime in rt - found -- Looking for uuid_generate -- Looking for uuid_generate - not found. -- Looking for uuid_generate in uuid -- Looking for uuid_generate in uuid - found -- Found PythonLibs: /usr/lib64/python2.4/config/libpython2.4.a -- Found Perl: /usr/bin/perl -- Could NOT find PerlLibs (missing: PERL_LIBRARY PERL_INCLUDE_PATH) -- Found PythonInterp: /usr/bin/python2.4 -- Found Doxygen: /usr/bin/doxygen -- Configuring done -- Generating done -- Build files have been written to: /home/wallk/src/proton/proton-c/build Scanning dependencies of target docs-c Warning: ignoring unsupported tag `DOXYFILE_ENCODING =' at line 42, file user.doxygen Warning: ignoring unsupported tag `PROJECT_BRIEF =' at line 60, file user.doxygen Warning: ignoring unsupported tag `PROJECT_LOGO =' at line 67, file user.doxygen Warning: ignoring unsupported tag `QT_AUTOBRIEF =' at line 181, file user.doxygen Warning: ignoring unsupported tag `OPTIMIZE_FOR_FORTRAN =' at line 235, file user.doxygen Warning: ignoring unsupported tag `OPTIMIZE_OUTPUT_VHDL =' at line 241, file user.doxygen Warning: ignoring unsupported tag `EXTENSION_MAPPING =' at line 253, file user.doxygen Warning: ignoring unsupported tag `CPP_CLI_SUPPORT =' at line 267, file user.doxygen Warning: ignoring unsupported tag `SIP_SUPPORT =' at line 273, file user.doxygen Warning: ignoring unsupported tag `IDL_PROPERTY_SUPPORT =' at line 282, file user.doxygen Warning: ignoring unsupported tag `INLINE_GROUPED_CLASSES =' at line 304, file user.doxygen Warning: ignoring unsupported tag `INLINE_SIMPLE_STRUCTS =' at line 313, file user.doxygen Warning: ignoring unsupported tag `TYPEDEF_HIDES_STRUCT =' at line 323, file user.doxygen Warning: ignoring unsupported tag `SYMBOL_CACHE_SIZE =' at line 339, file user.doxygen Warning: ignoring unsupported tag `EXTRACT_ANON_NSPACES =' at line 381, file user.doxygen Warning: ignoring unsupported tag `FORCE_LOCAL_INCLUDES =' at line 443, file user.doxygen Warning: ignoring unsupported tag `SORT_MEMBERS_CTORS_1ST =' at line 472, file user.doxygen Warning: ignoring unsupported tag `SORT_GROUP_NAMES =' at line 478, file user.doxygen Warning: ignoring unsupported tag `STRICT_PROTO_MATCHING =' at line 497, file user.doxygen Warning: ignoring unsupported tag `SHOW_FILES =' at line 554, file user.doxygen Warning: ignoring unsupported tag `SHOW_NAMESPACES =' at line 561, file user.doxygen Warning: ignoring unsupported tag `LAYOUT_FILE =' at line 580, file user.doxygen Warning: ignoring unsupported tag `CITE_BIB_FILES =' at line 589, file user.doxygen Warning: ignoring unsupported tag `INPUT_ENCODING =' at line 659, file user.doxygen Warning: ignoring unsupported tag `EXCLUDE_SYMBOLS =' at line 704, file user.doxygen Warning: ignoring unsupported tag `FILTER_SOURCE_PATTERNS =' at line 766, file user.doxygen Warning: ignoring unsupported tag `HTML_TIMESTAMP =' at line 889, file user.doxygen Warning: ignoring unsupported tag `HTML_EXTRA_FILES =' at line 907, file user.doxygen Warning: ignoring unsupported tag `HTML_COLORSTYLE_HUE =' at line 917, file user.doxygen Warning: ignoring unsupported tag `HTML_COLORSTYLE_SAT =' at line 923, file user.doxygen Warning: ignoring unsupported tag `HTML_COLORSTYLE_GAMMA =' at line 932, file user.doxygen Warning: ignoring unsupported tag `HTML_TIMESTAMP =' at line 938, file user.doxygen Warning: ignoring unsupported tag `HTML_DYNAMIC_SECTIONS =' at line 952, file user.doxygen Warning: ignoring unsupported tag `GENERATE_DOCSET =' at line 965, file user.doxygen Warning: ignoring unsupported tag `DOCSET_FEEDNAME =' at line 972, file user.doxygen Warning: ignoring unsupported tag `DOCSET_BUNDLE_ID =' at line 979, file user.doxygen Warning: ignoring unsupported tag `DOCSET_PUBLISHER_ID =' at line 985, file user.doxygen Warning: ignoring unsupported tag `DOCSET_PUBLISHER_NAME =' at line 989, file user.doxygen Warning: ignoring unsupported tag `CHM_INDEX_ENCODING =' at line 1022, file user.doxygen Warning: ignoring unsupported tag `GENERATE_QHP =' at line 1040, file user.doxygen Warning: ignoring unsupported tag `QCH_FILE =' at line 1046, file user.doxygen Warning: ignoring unsupported tag `QHP_NAMESPACE =' at line 1052, file user.doxygen Warning: ignoring unsupported tag `QHP_VIRTUAL_FOLDER =' at line 1058, file user.doxygen Warning: ignoring unsupported tag `QHP_CUST_FILTER_NAME =' at line 1064, file user.doxygen Warning: ignoring unsupported tag `QHP_CUST_FILTER_ATTRS =' at line 1071, file user.doxygen Warning: ignoring unsupported tag `QHP_SECT_FILTER_ATTRS =' at line 1079, file user.doxygen Warning: ignoring unsupported tag `QHG_LOCATION =' at line 1086, file user.doxygen Warning: ignoring unsupported tag `GENERATE_ECLIPSEHELP =' at line 1097, file user.doxygen Warning: ignoring unsupported tag `ECLIPSE_DOC_ID =' at line 1103, file user.doxygen Warning: ignoring unsupported tag `USE_INLINE_TREES =' at line 1131, file user.doxygen Warning: ignoring unsupported tag `EXT_LINKS_IN_WINDOW =' at line 1142, file user.doxygen Warning: ignoring unsupported tag `FORMULA_FONTSIZE =' at line 1150, file user.doxygen Warning: ignoring unsupported tag `FORMULA_TRANSPARENT =' at line 1158, file user.doxygen Warning: ignoring unsupported tag `USE_MATHJAX =' at line 1167, file user.doxygen Warning: ignoring unsupported tag `MATHJAX_RELPATH =' at line 1178, file user.doxygen Warning: ignoring unsupported tag `MATHJAX_EXTENSIONS =' at line 1183, file user.doxygen Warning: ignoring unsupported tag `SERVER_BASED_SEARCH =' at line 1203, file user.doxygen Warning: ignoring unsupported tag `LATEX_FOOTER =' at line 1263, file user.doxygen Warning: ignoring unsupported tag `LATEX_SOURCE_CODE =' at line 1296, file user.doxygen Warning: ignoring unsupported tag `LATEX_BIB_STYLE =' at line 1302, file user.doxygen Warning: ignoring unsupported tag `MSCGEN_PATH =' at line 1586, file user.doxygen Warning: ignoring unsupported tag `DOT_NUM_THREADS =' at line 1607, file user.doxygen Warning: ignoring unsupported tag `DOT_FONTNAME =' at line 1616, file user.doxygen Warning: ignoring unsupported tag `DOT_FONTSIZE =' at line 1621, file user.doxygen Warning: ignoring unsupported tag `DOT_FONTPATH =' at line 1627, file user.doxygen Warning: ignoring unsupported tag `INTERACTIVE_SVG =' at line 1716, file user.doxygen Warning: ignoring unsupported tag `MSCFILE_DIRS =' at line 1733, file user.doxygen Warning: ignoring unsupported tag `DOT_GRAPH_MAX_NODES =' at line 1743, file user.doxygen Searching for include files... Searching for example files... Searching for images... Searching for dot files... Searching for files to exclude Searching for files to process... Reading and parsing tag files Preprocessing /home/wallk/src/proton/proton-c/include/proton/buffer.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/buffer.h... Preprocessing /home/wallk/src/proton/proton-c/include/proton/codec.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/codec.h... Preprocessing /home/wallk/src/proton/proton-c/include/proton/driver.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/driver.h... Preprocessing /home/wallk/src/proton/proton-c/include/proton/engine.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/engine.h... Preprocessing /home/wallk/src/proton/proton-c/include/proton/error.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/error.h... Preprocessing /home/wallk/src/proton/proton-c/include/proton/framing.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/framing.h... Preprocessing /home/wallk/src/proton/proton-c/include/proton/message.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/message.h... Preprocessing /home/wallk/src/proton/proton-c/include/proton/messenger.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/messenger.h... Preprocessing /home/wallk/src/proton/proton-c/include/proton/parser.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/parser.h... Preprocessing /home/wallk/src/proton/proton-c/include/proton/sasl.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/sasl.h... Preprocessing /home/wallk/src/proton/proton-c/include/proton/scanner.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/scanner.h... Preprocessing /home/wallk/src/proton/proton-c/include/proton/ssl.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/ssl.h... Preprocessing /home/wallk/src/proton/proton-c/include/proton/types.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/types.h... Preprocessing /home/wallk/src/proton/proton-c/include/proton/util.h... Parsing file /home/wallk/src/proton/proton-c/include/proton/util.h... Building group list... Building directory list... Building namespace list... Building file list... Searching for included using directives... Building class list... Associating documentation with classes... Computing nesting relations for classes... Searching for members imported via using declarations... Building example list... Searching for documented variables... Building member list... Searching for friends... Searching for documented defines... Computing template instances... Flushing cached template relations that have become invalid... Creating members for template instances... Computing class relations... Searching for enumerations... Searching for member function documentation... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding todo/test/bug list items... Generating style sheet... Counting data structures... Resolving user defined references... Combining using relations... Finding anchors and sections in the documentation... Generating index page... Generating example documentation... Generating file sources... Generating code for file /home/wallk/src/proton/proton-c/include/proton/buffer.h... Generating code for file /home/wallk/src/proton/proton-c/include/proton/codec.h... Generating code for file /home/wallk/src/proton/proton-c/include/proton/driver.h... Generating code for file /home/wallk/src/proton/proton-c/include/proton/engine.h... Generating code for file /home/wallk/src/proton/proton-c/include/proton/error.h... Generating code for file /home/wallk/src/proton/proton-c/include/proton/framing.h... Generating code for file /home/wallk/src/proton/proton-c/include/proton/message.h... Generating code for file /home/wallk/src/proton/proton-c/include/proton/messenger.h... Generating code for file /home/wallk/src/proton/proton-c/include/proton/parser.h... Generating code for file /home/wallk/src/proton/proton-c/include/proton/sasl.h... Generating code for file /home/wallk/src/proton/proton-c/include/proton/scanner.h... Generating code for file /home/wallk/src/proton/proton-c/include/proton/ssl.h... Generating code for file /home/wallk/src/proton/proton-c/include/proton/types.h... Generating code for file /home/wallk/src/proton/proton-c/include/proton/util.h... Generating file documentation... Generating docs for file /home/wallk/src/proton/proton-c/include/proton/buffer.h... Generating docs for file /home/wallk/src/proton/proton-c/include/proton/codec.h... Generating docs for file /home/wallk/src/proton/proton-c/include/proton/driver.h... Generating docs for file /home/wallk/src/proton/proton-c/include/proton/engine.h... /home/wallk/src/proton/proton-c/include/proton/engine.h:283: Warning: The following parameters of pn_transport_tick(pn_transport_t *transport, pn_timestamp_t now) are not documented: parameter now Generating docs for file /home/wallk/src/proton/proton-c/include/proton/error.h... Generating docs for file /home/wallk/src/proton/proton-c/include/proton/framing.h... Generating docs for file /home/wallk/src/proton/proton-c/include/proton/message.h... Generating docs for file /home/wallk/src/proton/proton-c/include/proton/messenger.h... Generating docs for file /home/wallk/src/proton/proton-c/include/proton/parser.h... Generating docs for file /home/wallk/src/proton/proton-c/include/proton/sasl.h... Generating docs for file /home/wallk/src/proton/proton-c/include/proton/scanner.h... Generating docs for file /home/wallk/src/proton/proton-c/include/proton/ssl.h... Generating docs for file /home/wallk/src/proton/proton-c/include/proton/types.h... Generating docs for file /home/wallk/src/proton/proton-c/include/proton/util.h... Generating page documentation... Generating docs for page todo... Generating docs for page deprecated... Generating group documentation... Generating group index... Generating class documentation... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating member index... Generating docs for compound pn_atom_t... Generating docs for compound pn_bytes_t... Generating docs for compound pn_decimal128_t... Generating docs for compound pn_delivery_tag_t... Generating docs for compound pn_frame_t... Generating docs for compound pn_token_t... Generating docs for compound pn_uuid_t... Generating namespace index... Generating namespace member index... Generating graph info page... Generating file index... Generating example index... Generating file member index... Generating page index... Generating search index [ 0%] Built target docs-c Scanning dependencies of target docs [ 0%] Built target docs [ 3%] Generating protocol.h [ 7%] Generating encodings.h Scanning dependencies of target qpid-proton [ 11%] Building C object CMakeFiles/qpid-proton.dir/src/util.c.o [ 15%] Building C object CMakeFiles/qpid-proton.dir/src/error.c.o [ 19%] Building C object CMakeFiles/qpid-proton.dir/src/buffer.c.o [ 23%] Building C object CMakeFiles/qpid-proton.dir/src/parser.c.o [ 26%] Building C object CMakeFiles/qpid-proton.dir/src/scanner.c.o [ 30%] Building C object CMakeFiles/qpid-proton.dir/src/types.c.o [ 34%] Building C object CMakeFiles/qpid-proton.dir/src/framing/framing.c.o [ 38%] Building C object CMakeFiles/qpid-proton.dir/src/codec/codec.c.o [ 42%] Building C object CMakeFiles/qpid-proton.dir/src/dispatcher/dispatcher.c.o [ 46%] Building C object CMakeFiles/qpid-proton.dir/src/engine/engine.c.o [ 50%] Building C object CMakeFiles/qpid-proton.dir/src/message/message.c.o [ 53%] Building C object CMakeFiles/qpid-proton.dir/src/sasl/sasl.c.o [ 57%] Building C object CMakeFiles/qpid-proton.dir/src/messenger.c.o [ 61%] Building C object CMakeFiles/qpid-proton.dir/src/driver.c.o [ 65%] Building C object CMakeFiles/qpid-proton.dir/src/platform.c.o [ 69%] Building C object CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o Linking C shared library libqpid-proton.so CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `_log_ssl_error': openssl.c:(.text+0x2de): undefined reference to `ERR_get_error' openssl.c:(.text+0x2ff): undefined reference to `ERR_error_string_n' openssl.c:(.text+0x31c): undefined reference to `ERR_get_error' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `ssl_failed': openssl.c:(.text+0x43f): undefined reference to `ERR_get_error' openssl.c:(.text+0x45f): undefined reference to `ERR_error_string_n' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `get_dh2048': openssl.c:(.text+0x4ac): undefined reference to `DH_new' openssl.c:(.text+0x4d7): undefined reference to `BN_bin2bn' openssl.c:(.text+0x4f8): undefined reference to `BN_bin2bn' openssl.c:(.text+0x526): undefined reference to `DH_free' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `pn_ssl_domain': openssl.c:(.text+0x71e): undefined reference to `OPENSSL_add_all_algorithms_noconf' openssl.c:(.text+0x8fd): undefined reference to `DH_free' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `pn_ssl': openssl.c:(.text+0x1979): undefined reference to `OPENSSL_add_all_algorithms_noconf' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `process_input_ssl': openssl.c:(.text+0x1cd2): undefined reference to `BIO_write' openssl.c:(.text+0x1d62): undefined reference to `BIO_ctrl' openssl.c:(.text+0x1dcf): undefined reference to `BIO_read' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `process_output_ssl': openssl.c:(.text+0x2268): undefined reference to `BIO_write' openssl.c:(.text+0x240e): undefined reference to `BIO_read' openssl.c:(.text+0x24b7): undefined reference to `BIO_ctrl' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `init_ssl_socket': openssl.c:(.text+0x26a3): undefined reference to `BIO_new' openssl.c:(.text+0x26fa): undefined reference to `BIO_ctrl' openssl.c:(.text+0x2719): undefined reference to `BIO_new_bio_pair' openssl.c:(.text+0x278f): undefined reference to `BIO_ctrl' openssl.c:(.text+0x27cf): undefined reference to `BIO_ctrl' CMakeFiles/qpid-proton.dir/src/ssl/openssl.c.o: In function `release_ssl_socket': openssl.c:(.text+0x2816): undefined reference to `BIO_free' openssl.c:(.text+0x284c): undefined reference to `BIO_free' openssl.c:(.text+0x2866): undefined reference to `BIO_free' collect2: ld returned 1 exit status make[2]: *** [libqpid-proton.so.1.0.0] Error 1 make[1]: *** [CMakeFiles/qpid-proton.dir/all] Error 2 make: *** [all] Error 2
