From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 89176 invoked by alias); 22 Sep 2016 20:25:54 -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 89149 invoked by uid 89); 22 Sep 2016 20:25:54 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-qt0-f182.google.com Received: from mail-qt0-f182.google.com (HELO mail-qt0-f182.google.com) (209.85.216.182) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 22 Sep 2016 20:25:43 +0000 Received: by mail-qt0-f182.google.com with SMTP id l91so43431938qte.3 for ; Thu, 22 Sep 2016 13:25:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=HoYPsuqCPTSWLK95VCmk4z+U/tZ1NEpkbwAvg/fD5P0=; b=EAzg6fZf7uwssJZzv10/4iYfvef4FdlSBeAldoXBNIZgcKEDOMZJWbLZQg9wa38kaF Zktjtip7Gza7gkADVIcpAiV0QxjooiEVOL0+PBjl+j0ZrH/SrMM/SHrzRaqarsr29+lO NoWEbM4nRWmlntMa7UP2eJMtHQ1jrVSIYRz8OAeLfLLvqslxlQb6XS7K0AY8lAFoH572 g3Af5Hin4byMd/ffHGA2cBDyz5jlbBTgoX3PK0cWSZ2m8ZFeRzYTfgPMuz0sHg8t4kRM ozR9+5sICq20qoRRedRvH3fpKetESpiAJj5mJpdTfg7zTQiGfcoQug+dTjknundDeRQD JCAg== X-Gm-Message-State: AA6/9Rkr2V37ecjlTEk0HtwM1jsu9qVyNhtODpJRDrLxMuZhGp6yZ7sT6lL2YUnf6c2DrWgi8oFnsg2j9ioXtKUj X-Received: by 10.200.36.83 with SMTP id d19mr4211814qtd.94.1474575942093; Thu, 22 Sep 2016 13:25:42 -0700 (PDT) MIME-Version: 1.0 Received: by 10.140.21.80 with HTTP; Thu, 22 Sep 2016 13:25:41 -0700 (PDT) In-Reply-To: <20160922111506.GE17376@redhat.com> References: <20160921093115.GI17376@redhat.com> <20160922101602.GY17376@redhat.com> <20160922111506.GE17376@redhat.com> From: Christophe Lyon Date: Thu, 22 Sep 2016 20:32:00 -0000 Message-ID: Subject: Re: [v3 PATCH] PR libstdc++/77288 and the newest proposed resolution for LWG 2756 To: Jonathan Wakely Cc: Ville Voutilainen , "libstdc++" , "gcc-patches@gcc.gnu.org" Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2016-09/txt/msg01625.txt.bz2 On 22 September 2016 at 13:15, Jonathan Wakely wrote: > On 22/09/16 11:16 +0100, Jonathan Wakely wrote: >> >> (Somebody should fix PR58938 so exception_ptr is portable). > > > Christophe, would you be able to test this patch? > > It uses a single global mutex for exception_ptr objects, which doesn't > scale well but that probably isn't a problem for processors without > lock-free atomics for single words. > > This also solves the problem of mismatched -march options, where the > header is compiled for a CPU that supports the atomics but > libstdc++.so was built for an older CPU that doesn't support them, and > linking fails (as in https://gcc.gnu.org/PR58938#c13). > > Hi Jonathan, This is not quite right. In most cases, it moves 18_support/exception_ptr/requirements_neg.cc (test for errors, line 30) to line 27 (not sure why, since you removed 1 line only) but on older arm architectures, the tests you updated fail to compile: 18_support/exception_ptr/40296.cc (test for excess errors) 18_support/exception_ptr/60612-terminate.cc (test for excess errors) 18_support/exception_ptr/60612-unexpected.cc (test for excess errors) 18_support/exception_ptr/62258.cc (test for excess errors) 18_support/exception_ptr/64241.cc (test for excess errors) 18_support/exception_ptr/current_exception.cc (test for excess errors) 18_support/exception_ptr/lifespan.cc (test for excess errors) 18_support/exception_ptr/make_exception_ptr.cc (test for excess errors) 18_support/exception_ptr/move.cc (test for excess errors) 18_support/exception_ptr/requirements.cc (test for excess errors) 18_support/exception_ptr/requirements_neg.cc (test for errors, line 27) 18_support/exception_ptr/requirements_neg.cc (test for errors, line 28) 18_support/exception_ptr/requirements_neg.cc (test for errors, line 29) 18_support/exception_ptr/requirements_neg.cc (test for excess errors) 18_support/exception_ptr/rethrow_exception.cc (test for excess errors) For instance: /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc: In function 'bool test01()': /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc:25: error: 'exception_ptr' is not a member of 'std' /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc:25: note: suggested alternative: 'fexcept_t' /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc:27: error: 'p' was not declared in this scope /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc: In function 'void f()': /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc:34: error: 'rethrow_exception' is not a member of 'std' /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc:34: note: suggested alternative: '__exception' /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc:34: error: 'current_exception' is not a member of 'std' /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc:34: note: suggested alternative: '_ZTISt9exception' For more details: http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/240339-pr58938-v2/report-build-info.html Thanks, Christophe