Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Jan 2010 14:18:59 -0800
From:      Doug Barton <dougb@FreeBSD.org>
To:        Chuck Swiger <cswiger@mac.com>
Cc:        churanov.port.maintainer@gmail.com, freebsd-ports@FreeBSD.org
Subject:   Re: Need help from someone with boost fu + RELENG_6
Message-ID:  <4B5B75D3.6060005@FreeBSD.org>
In-Reply-To: <C94450B8-E96D-46D0-94F5-5C89DF537DB3@mac.com>
References:  <4B54CFEF.3050006@FreeBSD.org> <C94450B8-E96D-46D0-94F5-5C89DF537DB3@mac.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 01/18/10 17:11, Chuck Swiger wrote:
> Hi, Doug--
> 
> On Jan 18, 2010, at 1:17 PM, Doug Barton wrote:
>> However I apparently inherited some build problems on 6-stable that I
>> don't understand, and since I don't have a 6-stable system available I
>> cannot test fixes for. The problems appear to be boost-related, both
>> more or less look like this:
>>
>> In file included from /usr/local/include/boost/thread/future.hpp:12,
>>                 from /usr/local/include/boost/thread.hpp:24,
>>                 from ../include/libtorrent/storage.hpp:45,
>>                 from ../include/libtorrent/peer_connection.hpp:63,
>>                 from peer_connection.cpp:41:
>> /usr/local/include/boost/exception_ptr.hpp:43: error: looser throw
>> specifier for `virtual boost::exception_ptr::~exception_ptr()'
>> /usr/local/include/boost/exception/detail/exception_ptr_base.hpp:27:
>> error:   overriding `virtual
>> boost::exception_detail::exception_ptr_base::~exception_ptr_base() throw ()'
> [ ... ]
> 
> Whether this constitutes a legitimate problem or something that the compiler should figure out seems to be arguable-- evidently this sort of error is highly dependent upon the compiler version.  The following changes seems to allow net-p2p/rblibtorrent to build successfully under 6-STABLE:
> 
> --- /usr/local/include/boost/exception/detail/exception_ptr_base.hpp~	2010-01-18 18:20:52.000000000 -0500
> +++ /usr/local/include/boost/exception/detail/exception_ptr_base.hpp	2010-01-18 19:03:46.000000000 -0500
> @@ -23,7 +23,7 @@
>                          protected:
>  
>                          virtual
> -                        ~exception_ptr_base() throw()
> +                        ~exception_ptr_base()
>                              {
>                              }
>                          };
> 
> --- libtorrent-0.13/src/storage.cpp~	2010-01-18 17:11:00.000000000 -0500
> +++ libtorrent-0.13/src/storage.cpp	2010-01-18 19:19:05.000000000 -0500
> @@ -378,7 +378,7 @@
>  
>  		size_type read_impl(char* buf, int slot, int offset, int size, bool fill_zero);
>  
> -		~storage()
> +		~storage() throw ()
>  		{ m_files.release(this); }
>  
>  		boost::intrusive_ptr<torrent_info const> m_info;
> 
> Eww.  It's entirely possible that adding a USE_GCC=4.2+ line to Boost or these ports might provide a cleaner solution.  Or consult someone who knows C++ better than I...
> 
> Regards,

I appreciate the response. Is it possible for me to make just the change
you suggested to the libtorrent sources and have it work, or does this
require that boost libs be changed too?


Doug

-- 

	Improve the effectiveness of your Internet presence with
	a domain name makeover!    http://SupersetSolutions.com/

	Computers are useless. They can only give you answers.
			-- Pablo Picasso




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B5B75D3.6060005>