From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2277341C56; Fri, 10 Feb 2023 01:36:19 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AE89240EE3; Fri, 10 Feb 2023 01:36:18 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 2DF2840EDB for ; Fri, 10 Feb 2023 01:36:17 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 6B78C20C8AF4; Thu, 9 Feb 2023 16:36:16 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 6B78C20C8AF4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1675989376; bh=StRlSXZluE9CtjMNDkAptucRPjhOCud4QsfaclRSavA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=oYmReLPyD8fDrsIK4GGqJBHk5RdvICFPkMVzUjkJoxqwn2ys5YXm/3E9tS7gRmMFj e+a9xXN76DtYs9Ru9wb4wqyw3b19DEh2mK+oK9NIppqSGcfmj3a2SeiZ5miGlI8t23 8LR7vXrbzl3aw25zLFk5ApliqZpRx/yvUFI2i9IQ= Date: Thu, 9 Feb 2023 16:36:16 -0800 From: Tyler Retzlaff To: Ferruh Yigit Cc: Bruce Richardson , dev@dpdk.org, david.marchand@redhat.com, thomas@monjalon.net, mb@smartsharesystems.com, Honnappa.Nagarahalli@arm.com Subject: Re: [PATCH v2] eal: introduce atomics abstraction Message-ID: <20230210003616.GA26239@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> References: <1673558785-24992-1-git-send-email-roretzla@linux.microsoft.com> <1675892618-31755-1-git-send-email-roretzla@linux.microsoft.com> <1675892618-31755-2-git-send-email-roretzla@linux.microsoft.com> <20230209174009.GC21854@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <0b711951-b982-d984-60f2-2a7be272dd69@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <0b711951-b982-d984-60f2-2a7be272dd69@amd.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On Thu, Feb 09, 2023 at 10:13:41PM +0000, Ferruh Yigit wrote: > On 2/9/2023 5:40 PM, Tyler Retzlaff wrote: > > On Thu, Feb 09, 2023 at 12:53:41PM +0000, Ferruh Yigit wrote: > >> On 2/9/2023 9:04 AM, Bruce Richardson wrote: > >>> On Wed, Feb 08, 2023 at 01:43:38PM -0800, Tyler Retzlaff wrote: > >>>> Introduce atomics abstraction that permits optional use of standard C11 > >>>> atomics when meson is provided the new enable_stdatomics=true option. > >>>> > >>>> Signed-off-by: Tyler Retzlaff > >>>> --- > >>>> config/meson.build | 11 ++++ > >>>> lib/eal/arm/include/rte_atomic_32.h | 6 ++- > >>>> lib/eal/arm/include/rte_atomic_64.h | 6 ++- > >>>> lib/eal/include/generic/rte_atomic.h | 96 +++++++++++++++++++++++++++++++++- > >>>> lib/eal/loongarch/include/rte_atomic.h | 6 ++- > >>>> lib/eal/ppc/include/rte_atomic.h | 6 ++- > >>>> lib/eal/riscv/include/rte_atomic.h | 6 ++- > >>>> lib/eal/x86/include/rte_atomic.h | 8 ++- > >>>> meson_options.txt | 2 + > >>>> 9 files changed, 139 insertions(+), 8 deletions(-) > >>>> > >>>> diff --git a/config/meson.build b/config/meson.build > >>>> index 26f3168..25dd628 100644 > >>>> --- a/config/meson.build > >>>> +++ b/config/meson.build > >>>> @@ -255,6 +255,17 @@ endif > >>>> # add -include rte_config to cflags > >>>> add_project_arguments('-include', 'rte_config.h', language: 'c') > >>>> > >>>> +stdc_atomics_enabled = get_option('enable_stdatomics') > >>>> +dpdk_conf.set('RTE_STDC_ATOMICS', stdc_atomics_enabled) > >>>> + > >>>> +if stdc_atomics_enabled > >>>> +if cc.get_id() == 'gcc' or cc.get_id() == 'clang' > >>>> + add_project_arguments('-std=gnu11', language: 'c') > >>> > >>> Is there a reason for using gnu11 on gcc and clang, rather than limiting > >>> ourselves to proper c11 support? > >>> > >> > >> +1 to stick to c11 standard instead of relying compiler extensions > > > > the extensions are already in use. enabling -std=c11 causes warnings > > about the extensions to start being emitted. > > > > There is '__extension__' keyword (RTE_STD_C11) which is already used in > many places, can it help to remove the warnings? If it helps we can use > it, which helps to document where compiler extensions used in the code. yeah, that macro name kind of makes no sense when you realize it expands to __extension__ because a lot of places is it use isn't about an extension for something from a standard header. sometimes it's used to just annotate regular old gcc extensions/syntax. i vaguely recall that the actual warning is for a missing declaration of an extern function or something (presumably because it comes from glibc) but not using -std=gnu11 or the macro dance didn't make the prototype visible in the stdxxx.h header. so i don't think __extension__ would actually be a good way to suppress that warning and even if it did i'm trying to reduce code that carries __extension__ to improve portability anyway. i'll submit a new version of the patch series fixing it but without the -std=gnu11 it's really the right thing to do. ty > > > but since i feel encouraged here, i think i will interpret your request > > as let's limit the scope of enablement of extensions to where they are > > already used instead of enabling them over the whole build. > > > > i will submit a new revision patch to get rid of -std=gnu11 here. > > > > thanks!