Modify

Ticket #5453 (closed Bugs: fixed)

Opened 3 years ago

Last modified 3 years ago

Compile error in Boost.Asio with OPENSSL_NO_SSL2

Reported by: kikairoya@… Owned by: chris_kohlhoff
Milestone: To Be Determined Component: asio
Version: Boost 1.46.1 Severity: Problem
Keywords: Cc:

Description

A compile error occurs in asio/ssl/detail/openssl_context_service.hpp if OPENSSL_NO_SSL2 is defined (this is the default of Debian's OpenSSL package). openssl_context_service.hpp should check OPENSSL_NO_* macros. Show error messages below.

$ g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.5.2/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 4.5.2-8' --with-bugurl= file:///usr/share/doc/gcc-4.5/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.5 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default --with-plugin-ld=ld.gold --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.5.2 (Debian 4.5.2-8)

$ g++ /usr/include/boost/asio/ssl.hpp In file included from /usr/include/boost/asio/ssl/context_service.hpp:25:0,

from /usr/include/boost/asio/ssl/context.hpp:21, from /usr/include/boost/asio/ssl.hpp:19:

/usr/include/boost/asio/ssl/detail/openssl_context_service.hpp: In member function ‘void boost::asio::ssl::detail::openssl_context_service::create(SSL_CTX*&, boost::asio::ssl::context_base::method)’: /usr/include/boost/asio/ssl/detail/openssl_context_service.hpp:70:28: error: ‘::SSLv2_method’ has not been declared /usr/include/boost/asio/ssl/detail/openssl_context_service.hpp:73:28: error: ‘::SSLv2_client_method’ has not been declared /usr/include/boost/asio/ssl/detail/openssl_context_service.hpp:76:28: error: ‘::SSLv2_server_method’ has not been declared

$ grep -n2 OPENSSL_NO_SSL2 /usr/include/openssl/*.h /usr/include/openssl/opensslconf.h-30-# define OPENSSL_NO_RFC3779 /usr/include/openssl/opensslconf.h-31-#endif /usr/include/openssl/opensslconf.h:32:#ifndef OPENSSL_NO_SSL2 /usr/include/openssl/opensslconf.h:33:# define OPENSSL_NO_SSL2 /usr/include/openssl/opensslconf.h-34-#endif /usr/include/openssl/opensslconf.h-35-#ifndef OPENSSL_NO_STORE -- /usr/include/openssl/opensslconf.h-75-# define NO_RFC3779 /usr/include/openssl/opensslconf.h-76-# endif /usr/include/openssl/opensslconf.h:77:# if defined(OPENSSL_NO_SSL2) && !defined(NO_SSL2) /usr/include/openssl/opensslconf.h-78-# define NO_SSL2 /usr/include/openssl/opensslconf.h-79-# endif -- /usr/include/openssl/ssl.h-345-#endif /usr/include/openssl/ssl.h-346-

/usr/include/openssl/ssl.h:347:#if (defined(OPENSSL_NO_RSA)
defined(OPENSSL_NO_MD5)) && !defined(OPENSSL_NO_SSL2)

/usr/include/openssl/ssl.h:348:#define OPENSSL_NO_SSL2 /usr/include/openssl/ssl.h-349-#endif /usr/include/openssl/ssl.h-350- -- /usr/include/openssl/ssl.h-1630-int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); /usr/include/openssl/ssl.h-1631- /usr/include/openssl/ssl.h:1632:#ifndef OPENSSL_NO_SSL2 /usr/include/openssl/ssl.h-1633-const SSL_METHOD *SSLv2_method(void); /* SSLv2 */ /usr/include/openssl/ssl.h-1634-const SSL_METHOD *SSLv2_server_method(void); /* SSLv2 */

Attachments

Change History

comment:1 Changed 3 years ago by chris_kohlhoff

  • Status changed from new to closed
  • Resolution set to fixed

Should be fixed in release branch as of [72428].

View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.