GCC 4.9.2
Perl 5.20.3
OpenSSL 1.1.0.e
[root@Server_centos rabbitmq-c-master]# make
make all-am
make[1]: Entering directory /backup/rabbitmq-c-master'
CC librabbitmq/librabbitmq_librabbitmq_la-amqp_openssl_bio.lo
librabbitmq/amqp_openssl_bio.c: In function 'amqp_openssl_bio_init':
librabbitmq/amqp_openssl_bio.c:143:50: error: invalid application of 'sizeof' to incomplete type 'BIO_METHOD'
memcpy(&amqp_bio_method, BIO_s_socket(), sizeof(amqp_bio_method));
^
make[1]: *** [librabbitmq/librabbitmq_librabbitmq_la-amqp_openssl_bio.lo] Error 1
make[1]: Leaving directory/backup/rabbitmq-c-master'
make: * [all] Error 2
Which git commit are you compiling against?
(OpenSSL v1.1.0 is somewhat API-incompatible with OpenSSL v1.0.1; this is likely the cause of this, see also #361).
I use Latest commit 6726405 meet same issue
OS: Redhat Enterprise Linux Server 6.7
openssl: 1.1.0f
gcc: 4.4.7-18
This is almost certainly due to the differences in OpenSSL v1.1.0 and v1.0.1/2.
Once I'm able to reproduce this in a local environment, I'll look into fixing it.
Thanks @alanxz . When roll back OpenSSL to v1.0.1e, it works.
Just came across the same issue and wanted to bring this back up to the surface as it is starting to be an issue in distros needing to upgrade openssl. Is there any plans on this or assistance I can provide?
@mjerris rabbitmq-c will add support for v1.1.0 once #471 lands.
@alanxz Does that mean rabbitmq-c is going to release new version once #471 lands?
@andywolk yes
@alanxz I would welcome a release so I can test openssl v1.1.x on my systems
cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr/local .. && cmake --build . --target install
-- The C compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- CMAKE_BUILD_TYPE not specified. Creating Release build
-- Found C inline keyword: inline
-- Looking for getaddrinfo
-- Looking for getaddrinfo - found
-- Looking for socket
-- Looking for socket - found
-- Looking for poll
-- Looking for poll - found
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
-- Looking for posix_spawnp in rt
-- Looking for posix_spawnp in rt - found
-- Found OpenSSL: /usr/local/lib/libcrypto.so (found suitable version "1.1.0i", minimum required is "0.9.8")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE
-- Performing Test HAVE_GNU90
-- Performing Test HAVE_GNU90 - Success
-- Could NOT find POPT (missing: POPT_INCLUDE_DIR POPT_LIBRARY) (found version "")
-- Found XMLTO: /usr/local/bin/xmlto
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Building rabbitmq as a shared library - yes
-- Building rabbitmq as a static library - yes
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/rabbitmq-c-0.9.0/build
Scanning dependencies of target rabbitmq
[ 1%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_framing.c.o
[ 2%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_api.c.o
[ 3%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_connection.c.o
[ 4%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_mem.c.o
[ 5%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_socket.c.o
[ 6%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_table.c.o
[ 7%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_url.c.o
[ 8%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_tcp_socket.c.o
[ 10%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_time.c.o
[ 11%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_consumer.c.o
[ 12%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_openssl.c.o
[ 13%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_openssl_hostname_validation.c.o
[ 14%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_hostcheck.c.o
[ 15%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_openssl_bio.c.o
[ 16%] Linking C shared library librabbitmq.so
[ 16%] Built target rabbitmq
Scanning dependencies of target rabbitmq-static
[ 17%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_framing.c.o
[ 19%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_api.c.o
[ 20%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_connection.c.o
[ 21%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_mem.c.o
[ 22%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_socket.c.o
[ 23%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_table.c.o
[ 24%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_url.c.o
[ 25%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_tcp_socket.c.o
[ 26%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_time.c.o
[ 28%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_consumer.c.o
[ 29%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_openssl.c.o
[ 30%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_openssl_hostname_validation.c.o
[ 31%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_hostcheck.c.o
[ 32%] Building C object librabbitmq/CMakeFiles/rabbitmq-static.dir/amqp_openssl_bio.c.o
[ 33%] Linking C static library librabbitmq.a
[ 33%] Built target rabbitmq-static
Scanning dependencies of target amqp_ssl_connect
[ 34%] Building C object examples/CMakeFiles/amqp_ssl_connect.dir/amqp_ssl_connect.c.o
[ 35%] Building C object examples/CMakeFiles/amqp_ssl_connect.dir/utils.c.o
[ 37%] Building C object examples/CMakeFiles/amqp_ssl_connect.dir/unix/platform_utils.c.o
[ 38%] Linking C executable amqp_ssl_connect
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `TLS_client_method'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_get_write'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_get_destroy'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `SSL_CTX_set_options'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_set_read'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_set_puts'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_free'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_get_ctrl'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_get_read'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_set_destroy'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_new'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_set_write'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `OPENSSL_init_ssl'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_get_callback_ctrl'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_get_puts'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `OPENSSL_sk_pop_free'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `SSL_CTX_clear_options'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `OPENSSL_sk_num'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_get_create'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `ASN1_STRING_get0_data'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_get_gets'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_set_callback_ctrl'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_set_ctrl'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_set_gets'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `OPENSSL_sk_value'
../librabbitmq/librabbitmq.so.4.3.0: undefined reference to `BIO_meth_set_create'
collect2: error: ld returned 1 exit status
examples/CMakeFiles/amqp_ssl_connect.dir/build.make:116: recipe for target 'examples/amqp_ssl_connect' failed
make[2]: *** [examples/amqp_ssl_connect] Error 1
CMakeFiles/Makefile2:199: recipe for target 'examples/CMakeFiles/amqp_ssl_connect.dir/all' failed
make[1]: *** [examples/CMakeFiles/amqp_ssl_connect.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Support for OpenSSL v1.1.0 has landed, and was released in v0.9.0 of rabbitmq-c.
Most helpful comment
@mjerris rabbitmq-c will add support for v1.1.0 once #471 lands.