From 7f695f05d5eafa94c1148247c2fa74c8874fa061 Mon Sep 17 00:00:00 2001 From: arvidn Date: Mon, 27 Jul 2015 14:49:22 -0700 Subject: [PATCH] use boost.asio as headers only library again (simplify builds and hopefully fix shared linking of python module on gcc linux) --- CMakeLists.txt | 7 ++----- Jamfile | 17 ----------------- Makefile.am | 2 -- configure.ac | 3 --- examples/Makefile.am | 5 ++--- include/libtorrent/alert_manager.hpp | 1 + src/Makefile.am | 8 +------- src/asio.cpp | 27 --------------------------- src/asio_ssl.cpp | 23 ----------------------- src/torrent.cpp | 1 + 10 files changed, 7 insertions(+), 87 deletions(-) delete mode 100644 src/asio.cpp delete mode 100644 src/asio_ssl.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index ec8b65be1..572aa376b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,6 @@ set(sources alert alert_manager allocator - asio assert bandwidth_limit bandwidth_manager @@ -188,7 +187,7 @@ include_directories(${includes}) add_definitions(-DTORRENT_BUILDING_LIBRARY) if (encryption) - list(APPEND sources mpi pe_crypto asio_ssl) + list(APPEND sources mpi pe_crypto) if(NOT DEFINED OPENSSL_INCLUDE_DIR OR NOT DEFINED OPENSSL_LIBRARIES) FIND_PACKAGE(OpenSSL REQUIRED) endif() @@ -256,9 +255,7 @@ target_link_libraries(torrent-rasterbar ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_I #add_definitions(-DBOOST_ASIO_HASH_MAP_BUCKETS=1021 -D__USE_W32_SOCKETS -DWIN32_LEAN_AND_MEAN ) if(NOT static_runtime) - add_definitions(-DBOOST_ASIO_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_CHRONO_DYN_LINK -DBOOST_RANDOM_DYN_LINK) -else() - add_definitions(-DBOOST_ASIO_SEPARATE_COMPILATION) + add_definitions(-DBOOST_SYSTEM_DYN_LINK -DBOOST_CHRONO_DYN_LINK -DBOOST_RANDOM_DYN_LINK) endif() if (WIN32) diff --git a/Jamfile b/Jamfile index 8bbf80f50..c7f86c033 100644 --- a/Jamfile +++ b/Jamfile @@ -324,11 +324,6 @@ rule building ( properties * ) result += src/assert.cpp ; } - if openssl in $(properties) - { - result += src/asio_ssl.cpp ; - } - if on in $(properties) { result += src/mpi.c ; @@ -353,8 +348,6 @@ rule building ( properties * ) && ! on in $(properties) { # hide non-external symbols - # use ms-compat because boost.asio (as of 1.47.0 - # appears to have some types not fully exported) result += -fvisibility=hidden ; result += -fvisibility-inlines-hidden ; @@ -586,7 +579,6 @@ SOURCES = alert alert_manager allocator - asio assert bandwidth_limit bandwidth_manager @@ -752,10 +744,6 @@ local usage-requirements = system:$(LDFLAGS) # this works around a bug in asio in boost-1.39 BOOST_ASIO_HASH_MAP_BUCKETS=1021 -# make sure asio symbols are properly exported -# and imported - shared:BOOST_ASIO_DYN_LINK - BOOST_ASIO_SEPARATE_COMPILATION @tag ; @@ -772,11 +760,6 @@ lib torrent TORRENT_BUILDING_LIBRARY shared:TORRENT_BUILDING_SHARED BOOST_NO_DEPRECATED - - # on windows, when linking statically against asio - # but producing a DLL, everything inside the DLL needs - # to declare the symbol as being exported - shared:BOOST_ASIO_SOURCE shared:BOOST_SYSTEM_SOURCE on:src/kademlia/$(KADEMLIA_SOURCES).cpp diff --git a/Makefile.am b/Makefile.am index f19a59b83..2fe277cdb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -99,11 +99,9 @@ DOCS_PAGES = \ docs/reference-Error_Codes.html \ docs/reference-Filter.html \ docs/reference-Plugins.html \ - docs/reference-RSS.html \ docs/reference-Session.html \ docs/reference-Settings.html \ docs/reference-Storage.html \ - docs/reference-String.html \ docs/reference-Time.html \ docs/reference-Utility.html \ docs/reference.html diff --git a/configure.ac b/configure.ac index 7a425f2cd..e85f14b0d 100644 --- a/configure.ac +++ b/configure.ac @@ -541,9 +541,6 @@ COMPILETIME_OPTIONS="$COMPILETIME_OPTIONS -DBOOST_EXCEPTION_DISABLE " AC_DEFINE([BOOST_ASIO_ENABLE_CANCELIO],[1],[Define to enable cancel support in asio on windows XP and older.]) COMPILETIME_OPTIONS="$COMPILETIME_OPTIONS -DBOOST_ASIO_ENABLE_CANCELIO " -AC_DEFINE([BOOST_ASIO_DYN_LINK],[1],[make asio export its symbols]) -COMPILETIME_OPTIONS="$COMPILETIME_OPTIONS -DBOOST_ASIO_DYN_LINK" - dnl Use possibly specific python install params AC_ARG_VAR([PYTHON_INSTALL_PARAMS], [Set specific install parameters for python bindings.]) AS_IF([test "x$PYTHON_INSTALL_PARAMS" = "x"], diff --git a/examples/Makefile.am b/examples/Makefile.am index 001d55736..ccedaa87b 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -39,6 +39,5 @@ LDADD = $(top_builddir)/src/libtorrent-rasterbar.la AM_CPPFLAGS = -ftemplate-depth-50 -I$(top_srcdir)/include @DEBUGFLAGS@ -AM_LDFLAGS = @BOOST_SYSTEM_LIB@ -#AM_LDFLAGS = $(LDFLAGS) @BOOST_SYSTEM_LIB@ @BOOST_FILESYSTEM_LIB@ @BOOST_THREAD_LIB@ @OPENSSL_LDFLAGS@ @OPENSSL_LIBS@ -#AM_LDFLAGS = @OPENSSL_LDFLAGS@ +AM_LDFLAGS = @BOOST_SYSTEM_LIB@ @BOOST_CHRONO_LIB@ @BOOST_RANDOM_LIB@ @OPENSSL_LDFLAGS@ @OPENSSL_LIBS@ + diff --git a/include/libtorrent/alert_manager.hpp b/include/libtorrent/alert_manager.hpp index 7b9246e7e..36238223d 100644 --- a/include/libtorrent/alert_manager.hpp +++ b/include/libtorrent/alert_manager.hpp @@ -54,6 +54,7 @@ POSSIBILITY OF SUCH DAMAGE. #ifdef __GNUC__ // this is to suppress the warnings for using std::auto_ptr +#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif diff --git a/src/Makefile.am b/src/Makefile.am index 457cbe220..8b2626c0f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -29,16 +29,11 @@ KADEMLIA_SOURCES = \ ../ed25519/src/verify.cpp endif -if WITH_OPENSSL -ASIO_OPENSSL_SOURCES = asio_ssl.cpp -endif - libtorrent_rasterbar_la_SOURCES = \ web_connection_base.cpp \ alert.cpp \ alert_manager.cpp \ allocator.cpp \ - asio.cpp \ assert.cpp \ bandwidth_limit.cpp \ bandwidth_manager.cpp \ @@ -146,8 +141,7 @@ libtorrent_rasterbar_la_SOURCES = \ xml_parse.cpp \ file_progress.cpp \ \ - $(KADEMLIA_SOURCES) \ - $(ASIO_OPENSSL_SOURCES) + $(KADEMLIA_SOURCES) libtorrent_rasterbar_la_LDFLAGS = -version-info $(INTERFACE_VERSION_INFO) libtorrent_rasterbar_la_LIBADD = @BOOST_SYSTEM_LIB@ @OPENSSL_LIBS@ diff --git a/src/asio.cpp b/src/asio.cpp deleted file mode 100644 index 67d3725ff..000000000 --- a/src/asio.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include "libtorrent/aux_/disable_warnings_push.hpp" - -// builds all boost.asio source as a separate compilation unit -#include -#include - -#include "libtorrent/config.hpp" - -// only define BOOST_ASIO_DECL if it hasn't already been defined -// or if it has been defined to an empty string - -#if !defined BOOST_ASIO_DECL || !BOOST_PP_IS_EMPTY(BOOST_ASIO_DECL) -#ifdef BOOST_ASIO_DECL -#undef BOOST_ASIO_DECL -#endif -#define BOOST_ASIO_DECL BOOST_SYMBOL_EXPORT -#endif - -#if BOOST_VERSION >= 104500 - -#include -#elif BOOST_VERSION >= 104400 -#include -#endif - -#include "libtorrent/aux_/disable_warnings_pop.hpp" - diff --git a/src/asio_ssl.cpp b/src/asio_ssl.cpp deleted file mode 100644 index cea812335..000000000 --- a/src/asio_ssl.cpp +++ /dev/null @@ -1,23 +0,0 @@ -// builds all boost.asio SSL source as a separate compilation unit -#include -#include - -#ifndef BOOST_ASIO_SOURCE -#define BOOST_ASIO_SOURCE -#endif - -#include "libtorrent/config.hpp" - -#define TORRENT_HAS_ASIO_DECL x ## BOOST_ASIO_DECL - -// only define BOOST_ASIO_DECL if it hasn't already been defined -// or if it has been defined to an empty string -#if TORRENT_HAS_ASIO_DECL == x -#undef BOOST_ASIO_DECL -#define BOOST_ASIO_DECL BOOST_SYMBOL_EXPORT -#endif - -#if BOOST_VERSION >= 104610 -#include -#endif - diff --git a/src/torrent.cpp b/src/torrent.cpp index 251f03c87..430544424 100644 --- a/src/torrent.cpp +++ b/src/torrent.cpp @@ -8077,6 +8077,7 @@ namespace libtorrent default: TORRENT_ASSERT_VAL(false, idx); } #undef TORRENT_LIST_NAME + return ""; } void torrent::update_list(int list, bool in)