From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from rock.gnat.com (rock.gnat.com [IPv6:2620:20:4000:0:a9e:1ff:fe9b:1d1]) by sourceware.org (Postfix) with ESMTPS id DFE5D3858D28; Fri, 3 Mar 2023 20:36:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DFE5D3858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 0AC64116597; Fri, 3 Mar 2023 15:36:41 -0500 (EST) X-Virus-Scanned: Debian amavisd-new at gnat.com Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id pT2flJfV9mrj; Fri, 3 Mar 2023 15:36:40 -0500 (EST) Received: from free.home (tron.gnat.com [IPv6:2620:20:4000:0:46a8:42ff:fe0e:e294]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by rock.gnat.com (Postfix) with ESMTPS id 85ECB116590; Fri, 3 Mar 2023 15:36:40 -0500 (EST) Received: from livre (livre.home [172.31.160.2]) by free.home (8.15.2/8.15.2) with ESMTPS id 323KaV7E610961 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 3 Mar 2023 17:36:32 -0300 From: Alexandre Oliva To: Florian Weimer Cc: Alexandre Oliva via Gcc-patches , Jonathan Wakely , Jonathan Wakely , "libstdc++" , Bernd Edlinger Subject: Re: [libstdc++] Use __gthread_join in jthread/95989 Organization: Free thinker, does not speak for AdaCore References: <87ttz1r3qm.fsf@mid.deneb.enyo.de> Errors-To: aoliva@lxoliva.fsfla.org Date: Fri, 03 Mar 2023 17:36:31 -0300 In-Reply-To: <87ttz1r3qm.fsf@mid.deneb.enyo.de> (Florian Weimer's message of "Fri, 03 Mar 2023 21:15:13 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Scanned-By: MIMEDefang 2.84 X-Spam-Status: No, score=-6.0 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,KAM_NUMSUBJECT,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hello, Florian, On Mar 3, 2023, Florian Weimer wrote: > * Alexandre Oliva via Gcc-patches: >> + // Make sure it's not optimized out, not even with LTO. >> + asm ("" : : "rm" (depend)); > If the m constraint is used, this may never emit the symbol name and > thus not create a reference after all. But that is no longer the pthread symbol itself, it's the symbol of a static member function with vague linkage that, because the compiler believes the asm statement will reference it, will still be output, and it's that function body that will refer to and thus pull in the symbols we need. Now, hmm, maybe with per-function sections, the compiler will emit it, but with section gc, the linker may drop it, so we might lose the needed function body. When performing LTO with an LTO-enabled libstdc++. -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about