[boost] Fix detection of availability of {, u}int64_t in glibc headers

Petr Machata pmachata at fedoraproject.org
Wed Jun 26 14:24:05 UTC 2013


commit 43e7bf161024c7e965716935305cc875f3d1e477
Author: Petr Machata <pmachata at redhat.com>
Date:   Wed Jun 26 16:23:18 2013 +0200

    Fix detection of availability of {,u}int64_t in glibc headers

 boost-1.53.0-__GLIBC_HAVE_LONG_LONG.patch |   22 ++++++++++++++++++++++
 boost.spec                                |   12 +++++++++++-
 2 files changed, 33 insertions(+), 1 deletions(-)
---
diff --git a/boost-1.53.0-__GLIBC_HAVE_LONG_LONG.patch b/boost-1.53.0-__GLIBC_HAVE_LONG_LONG.patch
new file mode 100644
index 0000000..3c425f3
--- /dev/null
+++ b/boost-1.53.0-__GLIBC_HAVE_LONG_LONG.patch
@@ -0,0 +1,22 @@
+diff -up boost/cstdint.hpp\~ boost/cstdint.hpp
+--- boost/cstdint.hpp~	2013-03-07 01:46:19.000000000 +0100
++++ boost/cstdint.hpp	2013-06-25 21:56:25.930276225 +0200
+@@ -41,7 +41,15 @@
+ // so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG.
+ // See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990
+ //
+-#if defined(BOOST_HAS_STDINT_H) && (!defined(__GLIBC__) || defined(__GLIBC_HAVE_LONG_LONG))
++// This define has been dropped altogether in GLIBC 2.17.  As of then,
++// support for long long is part of baseline requirements, and
++// [u]int64_t is always defined.  See here:
++// http://sourceware.org/ml/libc-alpha/2013-01/msg00440.html
++//
++#if defined(BOOST_HAS_STDINT_H)					\
++  && (!defined(__GLIBC__)					\
++      || defined(__GLIBC_HAVE_LONG_LONG)			\
++      || (defined __GLIBC_PREREQ && __GLIBC_PREREQ(2,17)))
+ 
+ // The following #include is an implementation artifact; not part of interface.
+ # ifdef __hpux
+
+Diff finished.  Tue Jun 25 21:56:32 2013
diff --git a/boost.spec b/boost.spec
index 0e72a17..9d026b9 100644
--- a/boost.spec
+++ b/boost.spec
@@ -34,7 +34,7 @@ Name: boost
 Summary: The free peer-reviewed portable C++ source libraries
 Version: 1.53.0
 %define version_enc 1_53_0
-Release: 6%{?dist}
+Release: 7%{?dist}
 License: Boost and MIT and Python
 
 %define toplev_dirname %{name}_%{version_enc}
@@ -115,6 +115,10 @@ Patch15: boost-1.50.0-pool.patch
 # https://bugzilla.redhat.com/show_bug.cgi?id=909888
 Patch16: boost-1.53.0-context.patch
 
+# https://bugzilla.redhat.com/show_bug.cgi?id=977098
+# https://svn.boost.org/trac/boost/ticket/8731
+Patch17: boost-1.53.0-__GLIBC_HAVE_LONG_LONG.patch
+
 %bcond_with tests
 %bcond_with docs_generated
 
@@ -349,6 +353,7 @@ Summary: The Boost C++ headers and shared development libraries
 Group: Development/Libraries
 Requires: boost = %{version}-%{release}
 Provides: boost-python-devel = %{version}-%{release}
+Requires: libicu-devel%{?_isa}
 
 %description devel
 Headers and shared object symbolic links for the Boost C++ libraries.
@@ -523,6 +528,7 @@ a number of significant features and is now developed independently
 %patch10 -p1
 %patch15 -p0
 %patch16 -p1
+%patch17 -p0
 
 # At least python2_version needs to be a macro so that it's visible in
 # %%install as well.
@@ -1081,6 +1087,10 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/bjam.1*
 
 %changelog
+* Wed Jun 26 2013 Petr Machata <pmachata at redhat.com> - 1.53.0-7
+- Fix detection of availability of {,u}int64_t in glibc headers.
+  (boost-1.53.0-__GLIBC_HAVE_LONG_LONG.patch)
+
 * Wed Mar  6 2013 Petr Machata <pmachata at redhat.com> - 1.53.0-6
 - libboost_context.so must be guarded by conditional in the expanded
   filelist at boost-devel.


More information about the scm-commits mailing list