From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9732 invoked by alias); 17 Jan 2015 06:06:53 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 9706 invoked by uid 89); 17 Jan 2015 06:06:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-oi0-f51.google.com Received: from mail-oi0-f51.google.com (HELO mail-oi0-f51.google.com) (209.85.218.51) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sat, 17 Jan 2015 06:06:50 +0000 Received: by mail-oi0-f51.google.com with SMTP id h136so20461905oig.10; Fri, 16 Jan 2015 22:06:49 -0800 (PST) X-Received: by 10.60.133.229 with SMTP id pf5mr11765284oeb.25.1421474808972; Fri, 16 Jan 2015 22:06:48 -0800 (PST) Received: from ?IPv6:2602:304:cfd0:15a0:c55c:f307:b945:b6a4? ([2602:304:cfd0:15a0:c55c:f307:b945:b6a4]) by mx.google.com with ESMTPSA id nt5sm2766023obb.26.2015.01.16.22.06.47 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 16 Jan 2015 22:06:47 -0800 (PST) References: Mime-Version: 1.0 (1.0) In-Reply-To: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Message-Id: <9CAB68C4-08D2-43A1-9A8B-EDE135DDFC8F@gmail.com> Cc: Torvald Riegel , GCC Patches , "libstdc++@gcc.gnu.org" , Jonathan Wakely From: pinskia@gmail.com Subject: Re: [patch libstdc++] Optimize synchronization in std::future if futexes are available. Date: Sat, 17 Jan 2015 07:24:00 -0000 To: David Edelsohn X-IsSubscribed: yes X-SW-Source: 2015-01/txt/msg01519.txt.bz2 > On Jan 16, 2015, at 9:57 PM, David Edelsohn wrote: >=20 > This patch has broken bootstrap on AIX >=20 > May I mention that this really should have been tested on systems > other than x86 Linux. It also broke all newlib targets too. So you could have tested one listed i= n the sim-test web page.=20 Thanks, Andrew >=20 > In file included from /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/i= nclude/ > future:44:0, > from > /nasfarm/edelsohn/src/src/libstdc++-v3/src/c++11/compatibility-thread-c++= 0x.cc:30: > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:223:5: > error: 'mutex' does not name a type > mutex _M_mutex; > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:224:5: > error: 'condition_variable' does not name a type > condition_variable _M_condvar; > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h: > In member function 'unsigned int > std::__atomic_futex_unsigned<_Waiter_bit>::_M_load(std::memory_order)': > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:232:19: > error: 'mutex' was not declared in this scope > unique_lock __lock(_M_mutex); > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:232:24: > error: template argument 1 is invalid > unique_lock __lock(_M_mutex); > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:232:33: > error: '_M_mutex' was not declared in this scope > unique_lock __lock(_M_mutex); >=20 > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h: > In member function 'unsigned int > std::__atomic_futex_unsigned<_Waiter_bit>::_M_load_when_not_equal(unsigned > int, std::memory_order)': > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:239:19: > error: 'mutex' was not declared in this scope > unique_lock __lock(_M_mutex); > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:239:24: > error: template argument 1 is invalid > unique_lock __lock(_M_mutex); > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:239:33: > error: '_M_mutex' was not declared in this scope > unique_lock __lock(_M_mutex); > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:241:2: > error: '_M_condvar' was not declared in this scope > _M_condvar.wait(__lock); > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h: > In member function 'void > std::__atomic_futex_unsigned<_Waiter_bit>::_M_load_when_equal(unsigned > int, std::memory_order)': >=20 > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:248:19: > error: 'mutex' was not declared in this scope > unique_lock __lock(_M_mutex); > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:248:24: > error: template argument 1 is invalid > unique_lock __lock(_M_mutex); >=20 > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:248:33: > error: '_M_mutex' was not declared in this scope > unique_lock __lock(_M_mutex); > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:250:2: > error: '_M_condvar' was not declared in this scope > _M_condvar.wait(__lock); > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h: > In member function 'bool > std::__atomic_futex_unsigned<_Waiter_bit>::_M_load_when_equal_for(unsigned > int, std::memory_order, const std::chrono::duration<_Rep, _Period>&)': >=20 > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:258:19: > error: 'mutex' was not declared in this scope > unique_lock __lock(_M_mutex); > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:258:24: > error: template argument 1 is invalid > unique_lock __lock(_M_mutex); > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:258:33: > error: '_M_mutex' was not declared in this scope > unique_lock __lock(_M_mutex); > ^ > /tmp/20150117/powerpc-ibm-aix7.1.0.0/libstdc++-v3/include/bits/atomic_fut= ex.h:259:14: > error: '_M_condvar' was not declared in this scope > return _M_condvar.wait_for(__lock, __rtime, > ^ >=20 > etc. >=20 > - David