From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on starla X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id A828D1F44D for ; Mon, 25 Mar 2024 18:30:18 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=pass (2048-bit key; unprotected) header.d=efficios.com header.i=@efficios.com header.a=rsa-sha256 header.s=smtpout1 header.b=vFi2iYvT; dkim-atps=neutral Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 894063858403 for ; Mon, 25 Mar 2024 18:30:17 +0000 (GMT) Received: from smtpout.efficios.com (smtpout.efficios.com [IPv6:2607:5300:203:b2ee::31e5]) by sourceware.org (Postfix) with ESMTPS id 78CDD3858401 for ; Mon, 25 Mar 2024 18:29:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 78CDD3858401 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 78CDD3858401 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:5300:203:b2ee::31e5 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711391385; cv=none; b=kURO7QeMEa4U538HhNfmWtWRp0zUdfolHMlEIX1qbiCHe1qs1z+HDM5WNpPLBMS0ZMrifzAQVV7a6kZAATHfcJC98d4SqgbCsJpbyYn9yzXNKSjBLumVkd2UJAOWQ1oY5cXJnD1njcqqptj/EI9eo4LsZEHI3L9AVM4izpXYP+M= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711391385; c=relaxed/simple; bh=yvOPH5Aj0Wb1HuA+/R3jouZ3Ygw7kDeXqouk+xd4gvQ=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=MvfYrZxUMWUXDJStyrHBiYoKzXsn70P/kSGvftPh5XK9zVO4WBBZuNC9P5U2asDttjEIx8U66YBpS5o7q+bQdQM/vINC20vLXqaDO9Fgil97pqJID+W7fi6sqTWWxnQDqeYaSwZH2VxVzatsgX6Vi+3qA0j0dMruLynUCVBRBCQ= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=efficios.com; s=smtpout1; t=1711391381; bh=yvOPH5Aj0Wb1HuA+/R3jouZ3Ygw7kDeXqouk+xd4gvQ=; h=From:To:Cc:Subject:Date:From; b=vFi2iYvTPc/FA9y+iMaZdOcH7XPoBr2ie9HmSmS0H2r9A4OOY1A5cWRagl55+J7Qb AQ8cgTbcgFYK0clFuHdjPgzMtkR3lxw30r5BGRE8WkRKI000X1uGMD/AJHrojVufne 4vYJx61tT27Zq0fI30ZsPsUkKJdq0tW/1RXbtLRRxa44LWxG+no4zT+UWxXp09Veec Qe5aYswkJ6mZFpd2k8Sc48PMaec32glcnVPJe+nbvA/Z2UawYQTekF88VV4D2A+Wwu aV65AjVxD6iM1G6hZ2TjqnxUHyiymcXwKaVls3tng1g+EaX3XvMMkxxaOp5xNbavDX 6lSUDPimmeufw== Received: from laptop-mjeanson.internal.efficios.com (192-222-143-198.qc.cable.ebox.net [192.222.143.198]) by smtpout.efficios.com (Postfix) with ESMTPSA id 4V3M0j5MLXzmvQ; Mon, 25 Mar 2024 14:29:41 -0400 (EDT) From: Michael Jeanson To: libc-alpha@sourceware.org Cc: Michael Jeanson , Florian Weimer , Carlos O'Donell , DJ Delorie , Mathieu Desnoyers Subject: [PATCH v10 0/4] Extend rseq support Date: Mon, 25 Mar 2024 14:29:23 -0400 Message-Id: <20240325182927.914830-1-mjeanson@efficios.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces+e=80x24.org@sourceware.org This series rebases the standalone "Add rseq extensible ABI" patch on current master and addresses many review comments documented in each patch commit message. The accelerated getcpu() implementation using the rseq extensible ABI was split in a different patch series while we figure out the best way to interface with the librseq project as an upstream. Cc: Florian Weimer Cc: Carlos O'Donell Cc: DJ Delorie Cc: Mathieu Desnoyers --- Changes since v9: - Rebased on current master Changes since v8: - Address review comments - Split the accelerated getcpu() implementation in a separate patch set Changes since v7: - Fix sorting of symbols in abilist files Michael Jeanson (4): nptl: fix potential merge of __rseq_* relro symbols Add rseq extensible ABI support nptl: Add public __rseq_feature_size symbol nptl: Add features to internal 'struct rseq_area' csu/Makefile | 2 +- csu/libc-tls.c | 84 +++++++++++++++++-- csu/rseq-sizes.sym | 11 +++ elf/Makefile | 1 + elf/dl-rseq-symbols.S | 72 ++++++++++++++++ elf/dl-tls.c | 78 +++++++++++++++++ elf/rtld_static_init.c | 12 +++ manual/threads.texi | 9 ++ nptl/descr.h | 20 +---- nptl/pthread_create.c | 2 +- sysdeps/generic/dl-rseq.h | 26 ++++++ sysdeps/generic/ldsodefs.h | 12 +++ sysdeps/i386/nptl/tcb-access.h | 56 +++++++++++++ sysdeps/nptl/dl-tls_init_tp.c | 22 +++-- sysdeps/nptl/tcb-access.h | 5 ++ sysdeps/unix/sysv/linux/Makefile | 10 +++ sysdeps/unix/sysv/linux/Versions | 3 + sysdeps/unix/sysv/linux/aarch64/ld.abilist | 1 + sysdeps/unix/sysv/linux/alpha/ld.abilist | 1 + sysdeps/unix/sysv/linux/arc/ld.abilist | 1 + sysdeps/unix/sysv/linux/arm/be/ld.abilist | 1 + sysdeps/unix/sysv/linux/arm/le/ld.abilist | 1 + sysdeps/unix/sysv/linux/csky/ld.abilist | 1 + sysdeps/unix/sysv/linux/dl-parse_auxv.h | 6 ++ sysdeps/unix/sysv/linux/hppa/ld.abilist | 1 + sysdeps/unix/sysv/linux/i386/ld.abilist | 1 + .../unix/sysv/linux/loongarch/lp64/ld.abilist | 1 + .../unix/sysv/linux/m68k/coldfire/ld.abilist | 1 + .../unix/sysv/linux/m68k/m680x0/ld.abilist | 1 + sysdeps/unix/sysv/linux/microblaze/ld.abilist | 1 + .../unix/sysv/linux/mips/mips32/ld.abilist | 1 + .../sysv/linux/mips/mips64/n32/ld.abilist | 1 + .../sysv/linux/mips/mips64/n64/ld.abilist | 1 + sysdeps/unix/sysv/linux/nios2/ld.abilist | 1 + sysdeps/unix/sysv/linux/or1k/ld.abilist | 1 + .../sysv/linux/powerpc/powerpc32/ld.abilist | 1 + .../linux/powerpc/powerpc64/be/ld.abilist | 1 + .../linux/powerpc/powerpc64/le/ld.abilist | 1 + sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist | 1 + sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist | 1 + sysdeps/unix/sysv/linux/rseq-internal.h | 33 +++++++- .../unix/sysv/linux/s390/s390-32/ld.abilist | 1 + .../unix/sysv/linux/s390/s390-64/ld.abilist | 1 + sysdeps/unix/sysv/linux/sched_getcpu.c | 3 +- sysdeps/unix/sysv/linux/sh/be/ld.abilist | 1 + sysdeps/unix/sysv/linux/sh/le/ld.abilist | 1 + .../unix/sysv/linux/sparc/sparc32/ld.abilist | 1 + .../unix/sysv/linux/sparc/sparc64/ld.abilist | 1 + sysdeps/unix/sysv/linux/sys/rseq.h | 4 + .../unix/sysv/linux/tst-rseq-disable-static.c | 1 + sysdeps/unix/sysv/linux/tst-rseq-disable.c | 18 ++-- .../unix/sysv/linux/tst-rseq-nptl-static.c | 1 + sysdeps/unix/sysv/linux/tst-rseq-static.c | 1 + sysdeps/unix/sysv/linux/tst-rseq.c | 24 +++++- sysdeps/unix/sysv/linux/tst-rseq.h | 9 +- sysdeps/unix/sysv/linux/x86_64/64/ld.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist | 1 + sysdeps/x86_64/nptl/tcb-access.h | 56 +++++++++++++ 58 files changed, 557 insertions(+), 54 deletions(-) create mode 100644 csu/rseq-sizes.sym create mode 100644 elf/dl-rseq-symbols.S create mode 100644 sysdeps/generic/dl-rseq.h create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-disable-static.c create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-nptl-static.c create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-static.c -- 2.34.1