On 01/18/2015 05:19 AM, Jonathan Wakely wrote: > On 17/01/15 19:51 -0700, Sandra Loosemore wrote: >> On 01/17/2015 03:58 PM, Jonathan Wakely wrote: >>> >>> My fault, this additional chunk is needed alongside the patch I sent >>> earlier: >>> >>> --- a/libstdc++-v3/include/bits/atomic_futex.h >>> +++ b/libstdc++-v3/include/bits/atomic_futex.h >>> @@ -35,7 +35,7 @@ >>> #include <bits/c++config.h> >>> #include <atomic> >>> #include <chrono> >>> -#if !defined(_GLIBCXX_HAVE_LINUX_FUTEX) >>> +#if ! (defined(_GLIBCXX_HAVE_LINUX_FUTEX) && ATOMIC_INT_LOCK_FREE > 1) >>> #include <mutex> >>> #include <condition_variable> >>> #endif >>> >>> What I sent earlier causes your target to use std::mutex and >>> std::condition_variable, but without the bit above the headers aren't >>> included. >> >> Still no joy: >> /scratch/sandra/arm-fsf2/src/gcc-mainline/libstdc++-v3/src/c++11/futex.cc:45:3: >> error: '__atomic_futex_unsigned_base' has not been declared >> __atomic_futex_unsigned_base::_M_futex_wait_until(unsigned *__addr, >> ^ >> /scratch/sandra/arm-fsf2/src/gcc-mainline/libstdc++-v3/src/c++11/futex.cc:88:3: >> error: '__atomic_futex_unsigned_base' has not been declared >> __atomic_futex_unsigned_base::_M_futex_notify_all(unsigned* __addr) >> ^ > > futex.cc needs the same change ... I am still noticing a problem building a native X86_64 ToT compiler on Ubuntu 12.04.5 LTS.
Attached is a patch where the CPP guards in atomic_futex.h are reflected in futex.cc, which fixes my build problem. OK to commit? Thanks, Doug
>From 1debe13da342ac30d905e12a9ca243e30cb61870 Mon Sep 17 00:00:00 2001 From: Doug Gilmore <doug.gilm...@imgtec.com> Date: Wed, 28 Jan 2015 14:29:14 -0800 Subject: [PATCH] CPP guards in futex.cc should match guards in futex.ii. --- libstdc++-v3/src/c++11/futex.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/src/c++11/futex.cc b/libstdc++-v3/src/c++11/futex.cc index 1336779..5087483 100644 --- a/libstdc++-v3/src/c++11/futex.cc +++ b/libstdc++-v3/src/c++11/futex.cc @@ -23,6 +23,7 @@ // <http://www.gnu.org/licenses/>. #include <bits/atomic_futex.h> +#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) #if defined(_GLIBCXX_HAVE_LINUX_FUTEX) && ATOMIC_INT_LOCK_FREE > 1 #include <chrono> #include <climits> @@ -93,4 +94,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } } -#endif +#endif // _GLIBCXX_HAVE_LINUX_FUTEX && ATOMIC_INT_LOCK_FREE > 1 +#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1 -- 1.7.9.5