Fix detection of availability of 128-bit integers in Boost.LexicalCast

This commit is contained in:
Petr Machata 2013-07-30 19:50:23 +02:00
parent 830a7f44cf
commit c3593a1e32
2 changed files with 70 additions and 1 deletions

View File

@ -0,0 +1,61 @@
diff -up boost/lexical_cast.hpp\~ boost/lexical_cast.hpp
--- boost/lexical_cast.hpp~ 2013-07-27 12:03:21.000000000 +0200
+++ boost/lexical_cast.hpp 2013-07-30 19:30:54.969548144 +0200
@@ -69,11 +69,6 @@
throw_exception(bad_lexical_cast(typeid(Source), typeid(Target)))
#endif
-#if (defined(BOOST_LCAST_HAS_INT128) && !defined(__GNUC__)) || GCC_VERSION > 40700
-#define BOOST_LCAST_HAS_INT128
-#endif
-
-
namespace boost
{
// exception used to indicate runtime lexical_cast failure
@@ -316,7 +311,7 @@ namespace boost {
> {};
#endif
-#ifdef BOOST_LCAST_HAS_INT128
+#ifdef BOOST_HAS_INT128
template <> struct stream_char_common< boost::int128_type >: public boost::mpl::identity< char > {};
template <> struct stream_char_common< boost::uint128_type >: public boost::mpl::identity< char > {};
#endif
@@ -613,7 +608,7 @@ namespace boost {
BOOST_LCAST_DEF(unsigned __int64)
BOOST_LCAST_DEF( __int64)
#endif
-#ifdef BOOST_LCAST_HAS_INT128
+#ifdef BOOST_HAS_INT128
BOOST_LCAST_DEF(boost::int128_type)
BOOST_LCAST_DEF(boost::uint128_type)
#endif
@@ -1827,7 +1822,7 @@ namespace boost {
bool operator<<( __int64 n) { return shl_signed(n); }
#endif
-#ifdef BOOST_LCAST_HAS_INT128
+#ifdef BOOST_HAS_INT128
bool operator<<(const boost::uint128_type& n) { start = lcast_put_unsigned<Traits>(n, finish); return true; }
bool operator<<(const boost::int128_type& n) { return shl_signed(n); }
#endif
@@ -2039,7 +2034,7 @@ namespace boost {
bool operator>>(__int64& output) { return shr_signed(output); }
#endif
-#ifdef BOOST_LCAST_HAS_INT128
+#ifdef BOOST_HAS_INT128
bool operator>>(boost::uint128_type& output) { return shr_unsigned(output); }
bool operator>>(boost::int128_type& output) { return shr_signed(output); }
#endif
@@ -2719,7 +2714,6 @@ namespace boost {
#undef BOOST_LCAST_THROW_BAD_CAST
#undef BOOST_LCAST_NO_WCHAR_T
-#undef BOOST_LCAST_HAS_INT128
#endif // BOOST_LEXICAL_CAST_INCLUDED
Diff finished. Tue Jul 30 19:30:58 2013

View File

@ -34,7 +34,7 @@ Name: boost
Summary: The free peer-reviewed portable C++ source libraries
Version: 1.54.0
%define version_enc 1_54_0
Release: 1%{?dist}
Release: 2%{?dist}
License: Boost and MIT and Python
%define toplev_dirname %{name}_%{version_enc}
@ -176,6 +176,9 @@ Patch48: boost-1.54.0-mpi-unused_typedef.patch
# https://svn.boost.org/trac/boost/ticket/8888
Patch49: boost-1.54.0-python-unused_typedef.patch
# https://svn.boost.org/trac/boost/ticket/8941
Patch50: boost-1.54.0-lexical_cast-int128.patch
%bcond_with tests
%bcond_with docs_generated
@ -660,6 +663,7 @@ a number of significant features and is now developed independently
%patch47 -p1
%patch48 -p1
%patch49 -p1
%patch50 -p0
# At least python2_version needs to be a macro so that it's visible in
# %%install as well.
@ -1240,6 +1244,10 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/bjam.1*
%changelog
* Tue Jul 30 2013 Petr Machata <pmachata@redhat.com> - 1.54.0-2
- Fix detection of availability of 128-bit integers in
Boost.LexicalCast (boost-1.54.0-lexical_cast-int128.patch)
* Fri Jul 26 2013 Petr Machata <pmachata@redhat.com> - 1.54.0-1
- Rebase to 1.54.0
- Add new sub-package boost-log