#8731 closed Bugs (fixed)
__GLIBC_HAVE_LONG_LONG define has been dropped from glibc in 2.17
| Reported by: | Owned by: | John Maddock | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | config | 
| Version: | Boost 1.55.0 | Severity: | Problem | 
| Keywords: | Cc: | 
Description
Boost uses this define to decide whether it can import ::uint64_t into the boost namespace. In glibc 2.17, that define has been dropped, support for long long is always assumed, and uint64_t is always defined. It is possible to use the macro GLIBC_PREREQ (defined I think since 2.2) to test glibc version.
Change History (5)
comment:1 by , 9 years ago
comment:2 by , 9 years ago
| Component: | None → config | 
|---|---|
| Owner: | set to | 
comment:3 by , 9 years ago
| Resolution: | → fixed | 
|---|---|
| Status: | new → closed | 
comment:4 by , 9 years ago
Your patch didn't work for me - gcc-4.7 Mingw choked on the use of __GLIBC_PREREQ, changed to check for version numbers the old way.
comment:5 by , 8 years ago
The patch in https://svn.boost.org/trac/boost/changeset/84950 will break when (if) glibc issues version 3.0.
The following patch is preferred way to spell "glibc-2.17 or above":
-#if defined(BOOST_HAS_STDINT_H) && (!defined(__GLIBC__) || defined(__GLIBC_HAVE_LONG_LONG)) +#if defined(BOOST_HAS_STDINT_H) && (!defined(__GLIBC__) \ + || defined(__GLIBC_HAVE_LONG_LONG) \ + || __GLIBC_PREREQ(2, 17))


Since Trac won't let me attach the patch (it finds URLs in there and thinks it's spam; captcha shows, but it doesn't upload anyway for some reason), please get it there: http://pmachata.fedorapeople.org/boost-1.53.0-__GLIBC_HAVE_LONG_LONG.patch