12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- From a332112317450457c715675686386ec81214b863 Mon Sep 17 00:00:00 2001
- From: Axel Huebl <axel.huebl@plasma.ninja>
- Date: Fri, 18 Dec 2015 10:27:04 +0100
- Subject: [PATCH] Fix Trac 11852: GCC & CUDA __float128
- Fix trac issue
- https://svn.boost.org/trac/boost/ticket/11852
- Similar to
- https://svn.boost.org/trac/boost/ticket/8048
- `__float128` is still unsupported when compiling with nvcc
- (tested with `CUDA 7.5.18`). First noticed with the latest
- release (`1.60.0`) and `GCC 4.8.5` but should affect all
- previous releases depending on used modules.
- In my case, I triggered it with the components
- `program_options regex filesystem system thread math_tr1`
- enabled .
- ---
- include/boost/config/compiler/gcc.hpp | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
- diff --git a/include/boost/config/compiler/gcc.hpp b/include/boost/config/compiler/gcc.hpp
- index d9dd59d..8683dbd 100644
- --- a/include/boost/config/compiler/gcc.hpp
- +++ b/include/boost/config/compiler/gcc.hpp
- @@ -134,7 +134,7 @@
- // Recent GCC versions have __int128 when in 64-bit mode.
- //
- // We disable this if the compiler is really nvcc as it
- -// doesn't actually support __int128 as of CUDA_VERSION=5000
- +// doesn't actually support __int128 as of CUDA_VERSION=7500
- // even though it defines __SIZEOF_INT128__.
- // See https://svn.boost.org/trac/boost/ticket/8048
- // Only re-enable this for nvcc if you're absolutely sure
- @@ -148,12 +148,16 @@
- // include a std lib header to detect this - not ideal, but we'll
- // be including <cstddef> later anyway when we select the std lib.
- //
- +// Nevertheless, as of CUDA 7.5, using __float128 with the host
- +// compiler is still not supported.
- +// See https://svn.boost.org/trac/boost/ticket/11852
- +//
- #ifdef __cplusplus
- #include <cstddef>
- #else
- #include <stddef.h>
- #endif
- -#if defined(_GLIBCXX_USE_FLOAT128) && !defined(__STRICT_ANSI__)
- +#if defined(_GLIBCXX_USE_FLOAT128) && !defined(__STRICT_ANSI__) && !defined(__CUDACC__)
- # define BOOST_HAS_FLOAT128
- #endif
-
|