From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oa1-x31.google.com (mail-oa1-x31.google.com [IPv6:2001:4860:4864:20::31]) by sourceware.org (Postfix) with ESMTPS id 4D653385C41B for ; Tue, 30 Aug 2022 19:08:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4D653385C41B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-oa1-x31.google.com with SMTP id 586e51a60fabf-11c4d7d4683so19032282fac.8 for ; Tue, 30 Aug 2022 12:08:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:from:to:cc; bh=2eQTmgILm2oPAhHZpzL7zmf/9axnk6jxCXt+v+1V1Go=; b=oHdZ6ewZGWa/jK2H6KVD4xXPnNW2LbfJpjBYSR7p68JvpafLVV6yCDmyCWjS8U4is5 PV101zsGtdAjioUbdi3C+++w2havEpvhF3EAPmJed1BM6KpLY766P2gGNE8qIMSlQpX6 yx+KXF9ZLCW1iSoqCCUhH9CFpIJBDY4ONNdXWPCf7uHbUWA9c2+Bjlm8MJNxsf1QZVJ8 mFBb2QcthLjsTUetYZUWkwfvPnD77Fgis/mG8OenIu2FiX/RA1yyZ4+pnFlff2mvmoxv wAYfJSs2Cyerb7oOQn3C/hzoRo3DYFcOF5TzhBp8TW+6ctLTGMABU8t8HU/KMIG/tq+F 0Liw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc; bh=2eQTmgILm2oPAhHZpzL7zmf/9axnk6jxCXt+v+1V1Go=; b=oz++w4oUyOZTAY92z4QNNxHd9a5al3qB+zVhJqteWS1VR7/Zkjw4DySoWK6iM523FE xEweqvvCI1F3RNc/a/AD4G9Vx+3O81k7MRRyxw8GonYUpWqcJwqhdRvJbfdkljj+6Qh3 Nwuq65lPqpBBYbRXaGQHtnwdNfqJUI6Shqn+1qX9OG/vEuWHzi/Zq0RE7KHqON0jc7PM /YJDlfh+P1z6WfELACF8g9+n+q9x3db3FAYV8WbOSN6Hza8EDtNPmnBeQ8BqmBDm8+90 Pgnw24CpSu9FvVB/y5xMkK1eUaOK0I+q1c9e5Vvf+gGGjqRKXBG3Qdy8UedHYWTu93CZ dD/w== X-Gm-Message-State: ACgBeo0FHkfTXdZjsMcbYQ1PqPVaaaql+KDJdXjuFlfqpSmtCYT21jum wpQzFnFpViZaOAOLeYuHzZWrhW5339nIcg== X-Google-Smtp-Source: AA6agR7ggfj2LDa31cDDgL0eb9x+DrGgYUED1R/BYP8CLZW1BowLqWGfFF2Hd5Rhnc/DZDBU9V4X+w== X-Received: by 2002:aca:1901:0:b0:344:d4b5:9a1f with SMTP id l1-20020aca1901000000b00344d4b59a1fmr9682174oii.170.1661886514556; Tue, 30 Aug 2022 12:08:34 -0700 (PDT) Received: from ?IPV6:2804:1b3:a7c0:745e:449b:a205:b33e:4a53? ([2804:1b3:a7c0:745e:449b:a205:b33e:4a53]) by smtp.gmail.com with ESMTPSA id l2-20020a9d7a82000000b0063974238a5dsm7044517otn.63.2022.08.30.12.08.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 30 Aug 2022 12:08:34 -0700 (PDT) Message-ID: <253763f9-99ff-947c-e01e-eae8095c7163@linaro.org> Date: Tue, 30 Aug 2022 16:08:31 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.2.0 Subject: Re: [PATCH] nptl: x86_64: Use same code for CURRENT_STACK_FRAME and stackinfo_get_sp Content-Language: en-US To: Noah Goldstein Cc: GNU C Library References: <20220830120743.1072319-1-adhemerval.zanella@linaro.org> From: Adhemerval Zanella Netto Organization: Linaro In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 30/08/22 15:54, Noah Goldstein wrote: > On Tue, Aug 30, 2022 at 5:08 AM Adhemerval Zanella via Libc-alpha > wrote: >> >> It avoids the possible warning of uninitialized 'frame' variable when >> building with clang: >> >> ../sysdeps/nptl/jmp-unwind.c:27:42: error: variable 'frame' is >> uninitialized when used here [-Werror,-Wuninitialized] >> __pthread_cleanup_upto (env->__jmpbuf, CURRENT_STACK_FRAME); >> >> The resulting code is similar to CURRENT_STACK_FRAME. >> >> Checked on x86_64-linux-gnu. >> --- >> sysdeps/x86/nptl/pthreaddef.h | 4 +++- >> sysdeps/x86_64/stackinfo.h | 4 +++- >> 2 files changed, 6 insertions(+), 2 deletions(-) >> >> diff --git a/sysdeps/x86/nptl/pthreaddef.h b/sysdeps/x86/nptl/pthreaddef.h >> index 63fdbcb27c..7df65931a3 100644 >> --- a/sysdeps/x86/nptl/pthreaddef.h >> +++ b/sysdeps/x86/nptl/pthreaddef.h >> @@ -42,7 +42,9 @@ >> #ifdef __x86_64__ >> /* The frame pointer is not usable. */ >> # define CURRENT_STACK_FRAME \ >> - ({ register char *frame __asm__("rsp"); frame; }) >> + ({ register void * p__ __asm__(RSP_REG); \ >> + asm volatile("" : "=r" (p__)); \ >> + p__; }) >> #else >> # define CURRENT_STACK_FRAME __builtin_frame_address (0) >> #endif >> diff --git a/sysdeps/x86_64/stackinfo.h b/sysdeps/x86_64/stackinfo.h >> index 34c9d0b576..7354632132 100644 >> --- a/sysdeps/x86_64/stackinfo.h >> +++ b/sysdeps/x86_64/stackinfo.h >> @@ -40,7 +40,9 @@ >> for which they need to act as barriers as well, hence the additional >> (unnecessary) parameters. */ >> #define stackinfo_get_sp() \ >> - ({ void *p__; asm volatile ("mov %%" RSP_REG ", %0" : "=r" (p__)); p__; }) >> + ({ register void * p__ __asm__(RSP_REG); \ >> + asm volatile("" : "=r" (p__)); \ >> + p__; }) > > This change addresses a different issue. Maybe two separate commits? I am not sure this characterizes as an 'issue', since code does work as is, the idea is to have the same definition. > > Otherwise LGTM. >> #define stackinfo_sub_sp(ptr) \ >> ({ ptrdiff_t d__; \ >> asm volatile ("sub %%" RSP_REG " , %0" : "=r" (d__) : "0" (ptr)); \ >> -- >> 2.34.1 >>