From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x32f.google.com (mail-ot1-x32f.google.com [IPv6:2607:f8b0:4864:20::32f]) by sourceware.org (Postfix) with ESMTPS id BC034385AC32 for ; Mon, 29 Aug 2022 20:20:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BC034385AC32 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-ot1-x32f.google.com with SMTP id t11-20020a05683014cb00b0063734a2a786so6672320otq.11 for ; Mon, 29 Aug 2022 13:20:30 -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=Aae3b5XuK1s6Fyc8FtuE8us32wzkHhJa0EnPPyPTb78=; b=flhAI9bihknpzomCtIC00KO69V8TCJN0wZDP2/f/dvkwk0DjQiQnoQQFP6XDDnbdUa s53EnaZoZLaaG6QytV+YyBdDpteKpTYE6n5R5wrsw23BIuZzuGo/ELYHdWpEYXG3Pyr0 MKnJ6WaGuNjFavM2RwmEmI/oaLLTtrBcMG2ZNCjLFKdkbu7FK3i189Z4HcqcYUvbqtn3 JrMxXRrTr4LkKuwCysqVacmJOs4d/C9XxobQxkY8vZrZPiAK8s2kaP2KN9/B7jy1qdAG yibdOZOStP4lHGT19RxklGWw41YuEkcCVqdT2mY809iDSp1weUkblCqtr+Aojb3zvAPB 9BoA== 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=Aae3b5XuK1s6Fyc8FtuE8us32wzkHhJa0EnPPyPTb78=; b=b2sfQfR7gT6sMSjVJktMAZo2SGjzhHTuHGoul+lfkvNqb+zp7W5SpiocbZoY/zuHr1 B27Q0VKArgeJUE6g6yftfAc9rQmFTsIDtK9O2/XU8NInmCJej7ialznXtDhXruwGBuUz xkOlq0Zwb9ESxnuihCjUrOQ3WvZe3oFBPIk8HQ/kpU2CAMF8BlpdPYyYcdEvC7lhLXpN TBekwacj+Gk4Le3AnOU7lbcIpI2aLsLJoxAlIr+aIQysHQz0dJfPpFrBKTvcE4GEm2wB I1eobhvBo7+6Gna2RaE9hk/+OCp1heX2n3opyV6euUrJyss2yM5Ek47cAEiKvVn2RLwF o4UA== X-Gm-Message-State: ACgBeo0DXFzDb4DDS7We4RYlU0kYeod0kKPkiIBMa88S+kcTzEr9I6Vm FIZdQFOkCboUA5w2uajKZM0e6w== X-Google-Smtp-Source: AA6agR6kU/cSiCBfqRQsC9OpojDtfV/nVOyCEWEOJ4CKjQiHVhiS5Z2IwbctCIXcxqsav+gAfKkATw== X-Received: by 2002:a9d:5a88:0:b0:638:911a:d7fd with SMTP id w8-20020a9d5a88000000b00638911ad7fdmr7188559oth.6.1661804427940; Mon, 29 Aug 2022 13:20:27 -0700 (PDT) Received: from ?IPV6:2804:1b3:a7c0:745e:189c:ed50:a343:6adf? ([2804:1b3:a7c0:745e:189c:ed50:a343:6adf]) by smtp.gmail.com with ESMTPSA id g5-20020a9d6205000000b00636d4e8d480sm6183513otj.19.2022.08.29.13.20.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 29 Aug 2022 13:20:27 -0700 (PDT) Message-ID: Date: Mon, 29 Aug 2022 17:20:25 -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 stackinfo.h definition for CURRENT_STACK_FRAME Content-Language: en-US To: Noah Goldstein Cc: GNU C Library References: <20220829190012.946402-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.5 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 29/08/22 16:24, Noah Goldstein wrote: > On Mon, Aug 29, 2022 at 12:00 PM 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); >> >> It increases the generated code by one instruction: >> >> --- master >> +++ patch >> @@ -25068,11 +25068,11 @@ Disassembly of section .text: >> 3db1b: 00 00 >> 3db1d: 48 89 44 24 08 mov %rax,0x8(%rsp) >> 3db22: 31 c0 xor %eax,%eax >> - 3db24: 48 8b 44 24 08 mov 0x8(%rsp),%rax >> - 3db29: 64 48 2b 04 25 28 00 sub %fs:0x28,%rax >> - 3db30: 00 00 >> - 3db32: 75 0c jne 3db40 >> <_longjmp_unwind+0x30> >> - 3db34: 48 89 e6 mov %rsp,%rsi >> + 3db24: 48 89 e6 mov %rsp,%rsi >> + 3db27: 48 8b 44 24 08 mov 0x8(%rsp),%rax >> + 3db2c: 64 48 2b 04 25 28 00 sub %fs:0x28,%rax >> + 3db33: 00 00 >> + 3db35: 75 09 jne 3db40 >> <_longjmp_unwind+0x30> >> 3db37: 48 83 c4 18 add $0x18,%rsp >> 3db3b: e9 60 31 05 00 jmp 90ca0 >> <__GI___pthread_cleanup_upto> >> 3db40: e8 4b ec 0e 00 call 12c790 <__stack_chk_fail> >> >> Checked on x86_64-linux-gnu. >> --- >> sysdeps/x86/nptl/pthreaddef.h | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/sysdeps/x86/nptl/pthreaddef.h b/sysdeps/x86/nptl/pthreaddef.h >> index 63fdbcb27c..3ff95efee6 100644 >> --- a/sysdeps/x86/nptl/pthreaddef.h >> +++ b/sysdeps/x86/nptl/pthreaddef.h >> @@ -42,7 +42,7 @@ >> #ifdef __x86_64__ >> /* The frame pointer is not usable. */ >> # define CURRENT_STACK_FRAME \ >> - ({ register char *frame __asm__("rsp"); frame; }) >> + ({ void *p__; asm volatile ("mov %%" RSP_REG ", %0" : "=r" (p__)); p__; }) > > Is the mov instruction needed at all? > > Would: > ``` > ({ register void * p__ __asm__("rsp"); asm volatile("" : "=r"(p__)); p__; }); > ``` > work? This works, thanks. I will send an update version.