From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: from second.openwall.net (second.openwall.net [193.110.157.125]) by inbox.vuxu.org (Postfix) with SMTP id 0B6EB24DA7 for ; Tue, 12 Mar 2024 01:51:44 +0100 (CET) Received: (qmail 23990 invoked by uid 550); 12 Mar 2024 00:47:33 -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 23955 invoked from network); 12 Mar 2024 00:47:33 -0000 Date: Mon, 11 Mar 2024 20:51:50 -0400 From: Rich Felker To: musl@lists.openwall.com Cc: Hongliang Wang Message-ID: <20240312005150.GB4163@brightrain.aerifal.cx> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Subject: [musl] loongarch64 atomics not working? There's been a report of mksh hanging on loongarch64, at least under qemu, apparently hanging in a_cas_p: (gdb) run Starting program: /mksh ^C Program received signal SIGINT, Interrupt. a_cas_p (p=0x120054288 , t=0x12003b970 , s=0x7fffffffc34c) at ./src/internal/atomic.h:94 warning: 94 ./src/internal/atomic.h: No such file or directory (gdb) bt #0 a_cas_p (p=0x120054288 , t=0x12003b970 , s=0x7fffffffc34c) at ./src/internal/atomic.h:94 #1 cgt_init (clk=0, ts=0x7ffffffefb60) at src/time/clock_gettime.c:51 #2 0x000000012003ba4c in __clock_gettime (clk=clk@entry=0, ts=ts@entry=0x7ffffffefb60) at src/time/clock_gettime.c:67 #3 0x000000012003830c in gettimeofday (tv=tv@entry=0x7ffffffefba0, tz=tz@entry=0x0) at src/time/gettimeofday.c:9 #4 0x000000012002f098 in change_winsz () at var.c:1718 #5 0x0000000120000348 in main_init (lp=, sp=, argv=0x7ffffffefd18, argc=1) at main.c:369 #6 main (argc=, argv=) at main.c:738 This is very basic usage, just the vdso clock_gettime init code trying to replace a pointer atomically. Is it working on real hardware? I'm trying to figure out if this is a qemu bug, or if the asm or the asm argument constraints are wrong in musl's arch/loongarch64/atomic_arch.h. Rich