From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.2 Received: from mother.openwall.net (mother.openwall.net [195.42.179.200]) by inbox.vuxu.org (OpenSMTPD) with SMTP id ddca3543 for ; Sun, 19 Jan 2020 17:33:10 +0000 (UTC) Received: (qmail 1625 invoked by uid 550); 19 Jan 2020 17:33:09 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 1607 invoked from network); 19 Jan 2020 17:33:08 -0000 Date: Sun, 19 Jan 2020 20:32:57 +0300 (MSK) From: Alexander Monakov To: musl@lists.openwall.com In-Reply-To: <20200119171908.GG30412@brightrain.aerifal.cx> Message-ID: References: <20200119110743.GD2020@voyager> <20200119113134.GJ23985@port70.net> <8299f261-7870-57a6-37cf-d4ce482ad81e@openwall.com> <20200119161851.GC30412@brightrain.aerifal.cx> <20200119171908.GG30412@brightrain.aerifal.cx> User-Agent: Alpine 2.20.13 (LNX 116 2015-12-14) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Subject: Re: [musl] Minor style patch to exit.c On Sun, 19 Jan 2020, Rich Felker wrote: > > I would suggest > > > > void (**ptr)(void); > > > > __asm__ ("" : "=g"(ptr) : "0"(..._end), "X"(..._start)); > > > > while (ptr != _start) (*--ptr)(); > > I think we could just put the assignment outside the asm and use "+g". > Not clear why _start is needed as an input operand. It's external so > asm must be assumed to be able to see it. In the context of LTO asms really need to mention referenced symbols in constraints. Plus, it's good to have "the pointer is related to _start" spelled out in the code. > BTW does the "X" constraint work all the way back to ancient gcc (and > then presumably with pcc, clang)? The first time I ever saw it was in > one of your other patches. gcc documentation says 2.95 already had it. Alexander