From patchwork Wed Sep 9 03:32:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vineet Gupta X-Patchwork-Id: 1360314 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=libc-alpha-bounces@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=sourceware.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=L9FdEiRt; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BmSJH5V33z9sTS for ; Wed, 9 Sep 2020 13:32:31 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E233C3857C64; Wed, 9 Sep 2020 03:32:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E233C3857C64 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1599622347; bh=idJRh49CbJihdBva8RhN8SvKfxebWMf7Pq8UoI2E94c=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=L9FdEiRtEZIEi1Ks95s89H+ktwrHW0ibC8knT7fcpK6nsi3exNhmlXKjpcPYNRcd/ wTgsFdQgHe8XvSgrsFXGxlyl1gQwvjoOU/4kTWcFBuQNv9Hjq4duOE9LOqMmjfHuu9 pNWA3r19UBCrYFdMaA2GZ4vdwE4pMakERvrwTvbw= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from smtprelay-out1.synopsys.com (smtprelay-out1.synopsys.com [149.117.73.133]) by sourceware.org (Postfix) with ESMTPS id C8DEB3857C43 for ; Wed, 9 Sep 2020 03:32:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C8DEB3857C43 Received: from mailhost.synopsys.com (sv2-mailhost2.synopsys.com [10.205.2.134]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id EE7B940194; Wed, 9 Sep 2020 03:32:22 +0000 (UTC) Received: from vineetg-Latitude-7400.internal.synopsys.com (unknown [10.13.183.89]) by mailhost.synopsys.com (Postfix) with ESMTP id ACBB9A0096; Wed, 9 Sep 2020 03:32:22 +0000 (UTC) X-SNPS-Relay: synopsys.com To: libc-alpha@sourceware.org Subject: [PATCH] support: user more portable atomic wrappers Date: Tue, 8 Sep 2020 20:32:21 -0700 Message-Id: <20200909033221.3549140-1-vgupta@synopsys.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Spam-Status: No, score=-13.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Vineet Gupta via Libc-alpha From: Vineet Gupta Reply-To: Vineet Gupta Cc: Vineet Gupta , linux-snps-arc@lists.infradead.org Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" This came up in a nascent arc64 port, lacking gcc atomics for now --- support/support_record_failure.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/support/support_record_failure.c b/support/support_record_failure.c index f766c0623683..65e576c6e901 100644 --- a/support/support_record_failure.c +++ b/support/support_record_failure.c @@ -25,6 +25,7 @@ #include #include #include +#include /* This structure keeps track of test failures. The counter is incremented on each failure. The failed member is set to true if a @@ -66,8 +67,8 @@ support_record_failure (void) } /* Relaxed MO is sufficient because we are only interested in the values themselves, in isolation. */ - __atomic_store_n (&state->failed, 1, __ATOMIC_RELEASE); - __atomic_add_fetch (&state->counter, 1, __ATOMIC_RELEASE); + atomic_store_release (&state->failed, 1); + atomic_fetch_add_release (&state->counter, 1); } int @@ -84,10 +85,10 @@ support_report_failure (int status) assumes that exiting from the main thread happens before the error reporting via support_record_failure, which requires some form of external synchronization. */ - bool failed = __atomic_load_n (&state->failed, __ATOMIC_RELAXED); + bool failed = atomic_load_relaxed (&state->failed); if (failed) printf ("error: %u test failures\n", - __atomic_load_n (&state->counter, __ATOMIC_RELAXED)); + atomic_load_relaxed (&state->counter)); if ((status == 0 || status == EXIT_UNSUPPORTED) && failed) /* If we have a recorded failure, it overrides a non-failure @@ -101,8 +102,8 @@ support_record_failure_reset (void) { /* Only used for testing the test framework, with external synchronization, but use release MO for consistency. */ - __atomic_store_n (&state->failed, 0, __ATOMIC_RELAXED); - __atomic_add_fetch (&state->counter, 0, __ATOMIC_RELAXED); + atomic_store_relaxed (&state->failed, 0); + atomic_fetch_add_release (&state->counter, 0); } int @@ -110,5 +111,5 @@ support_record_failure_is_failed (void) { /* Relaxed MO is sufficient because we need (blocking) external synchronization for reliable test error reporting anyway. */ - return __atomic_load_n (&state->failed, __ATOMIC_RELAXED); + return atomic_load_relaxed (&state->failed); }