From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id AA0E2385782D for ; Fri, 16 Feb 2024 22:07:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AA0E2385782D Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org AA0E2385782D Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708121246; cv=none; b=bQ78Ykf8XNcTHple33IHoChQ5kzHyjrBm8xnskaf58VjhbH0MYuLFtyC6i6YdZtySCedXUQGhNAo9jhhj9WKxS3rYNiHagK/WLn5exAzbhx/XGaIUfR1AE0BtdVvFSZHiHTilyagPnf6f8oQ30cOp00fc8zHX/H3DUot+EcmYmQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708121246; c=relaxed/simple; bh=H6hnOGQAnG3WhXW2oUFim3/i3jAGljQUHheohVmqMbs=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=bbVvayqKkp/71ySsMXuopL+Zgm3ftxVCyRM+gdaAStE0VU4lXK1nUn8cG4jCxHdkKLWpYlv5wwwW6UxWDFVDOC/vlgIuxaaEa/i3B1CNPsw1XYAOwf2jSp8G8MPFDABKz2/U80CliqJt+JQXY1zCSd9aNcnk1aSk/3a/uLPYrdM= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1708121243; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to; bh=p9RRcO8BuSXcacq3TNnEt1VIXGZZkU575gj+oHpt3No=; b=TUkw7872zgMVJTz3iRn50PJKz6qqmDjogA34tR7MBWKMdY3OGXT3idSdPx1aVJcXkm5v39 MmPIRVFbe12EGC2fFTkwngG9kraVVbWb647cKrk1UbwaWDXS+0Wi2VqSk/cuhmim4NFYip dV3tPkZgnVF8HmOx/UKnSN7hGvD35kw= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-103-GENAJIy4OFONWGdhJxmntg-1; Fri, 16 Feb 2024 17:07:19 -0500 X-MC-Unique: GENAJIy4OFONWGdhJxmntg-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4808A85A58E; Fri, 16 Feb 2024 22:07:19 +0000 (UTC) Received: from greed.delorie.com (unknown [10.22.8.101]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1F8592166AE5; Fri, 16 Feb 2024 22:07:19 +0000 (UTC) Received: from greed.delorie.com.redhat.com (localhost [127.0.0.1]) by greed.delorie.com (8.15.2/8.15.2) with ESMTP id 41GM7IY5316382; Fri, 16 Feb 2024 17:07:18 -0500 From: DJ Delorie To: Michael Jeanson Cc: libc-alpha@sourceware.org, mjeanson@efficios.com Subject: Re: [PATCH v8 3/8] nptl: Add public __rseq_feature_size symbol In-Reply-To: <20240206162801.882585-4-mjeanson@efficios.com> Date: Fri, 16 Feb 2024 17:07:18 -0500 Message-ID: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-10.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,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: * Suggestion for manual entry * attributes on externs * comment about _rseq_feature_size default Michael Jeanson writes: > +RSEQ_FEATURE_SIZE_SIZE sizeof (unsigned int) > +RSEQ_FEATURE_SIZE_ALIGN __alignof (unsigned int) > + Ok. > diff --git a/elf/dl-rseq-symbols.S b/elf/dl-rseq-symbols.S > index 2d8e88367f..709188ae22 100644 > --- a/elf/dl-rseq-symbols.S > +++ b/elf/dl-rseq-symbols.S > @@ -38,6 +38,23 @@ __rseq_size: > _rseq_size: > .zero RSEQ_SIZE_SIZE > > +/* Define 2 symbols, __rseq_feature_size is public const and > + _rseq_feature_size, which is an alias of __rseq_feature_size, but hidden and > + writable for internal use. */ > + > + .globl __rseq_feature_size > + .type __rseq_feature_size, %object > + .size __rseq_feature_size, RSEQ_FEATURE_SIZE_SIZE > + .hidden _rseq_feature_size > + .globl _rseq_feature_size > + .type _rseq_feature_size, %object > + .size _rseq_feature_size, RSEQ_FEATURE_SIZE_SIZE > + .section .data.rel.ro > + .balign RSEQ_FEATURE_SIZE_ALIGN > +__rseq_feature_size: > +_rseq_feature_size: > + .zero RSEQ_FEATURE_SIZE_SIZE > + Ok. > diff --git a/manual/threads.texi b/manual/threads.texi > +@deftypevar {unsigned int} __rseq_feature_size > +@standards{Linux, sys/rseq.h} > +This variable is either zero (if restartable sequence registration > +failed or has been disabled) or the size of the restartable sequence > +features. If registration is successful, @code{__rseq_feature_size} > +is at least 20 (the initial feature size of @code{struct rseq}). > +@end deftypevar Perhaps a note about where the magic value '20' comes from, and how to change it? (Yes, *I* know it comes from the kernel, but the reader might not) > diff --git a/sysdeps/nptl/dl-tls_init_tp.c b/sysdeps/nptl/dl-tls_init_tp.c > +extern unsigned int _rseq_feature_size attribute_relro attribute_hidden; Again with attributes on externs. > @@ -108,6 +109,7 @@ __tls_init_tp (void) > if (rseq_register_current_thread (pd, do_rseq)) > { > _rseq_size = GLRO (dl_tls_rseq_size); > + _rseq_feature_size = GLRO (dl_tls_rseq_feature_size); > } Ok. Note "comment needed here" from our other mail thread ;-) > diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions > + GLIBC_2.40 { > + __rseq_feature_size; > + } Ok. > diff --git a/sysdeps/unix/sysv/linux/aarch64/ld.abilist b/sysdeps/unix/sysv/linux/aarch64/ld.abilist > index 5151c0781d..93039b756d 100644 > --- a/sysdeps/unix/sysv/linux/aarch64/ld.abilist > +++ b/sysdeps/unix/sysv/linux/aarch64/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x8 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/alpha/ld.abilist b/sysdeps/unix/sysv/linux/alpha/ld.abilist > index 3e296c5473..fc67e31293 100644 > --- a/sysdeps/unix/sysv/linux/alpha/ld.abilist > +++ b/sysdeps/unix/sysv/linux/alpha/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x8 > GLIBC_2.35 __rseq_size D 0x4 > GLIBC_2.4 __stack_chk_guard D 0x8 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/arc/ld.abilist b/sysdeps/unix/sysv/linux/arc/ld.abilist > index 55f0c2ab9c..31156b6ee1 100644 > --- a/sysdeps/unix/sysv/linux/arc/ld.abilist > +++ b/sysdeps/unix/sysv/linux/arc/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/arm/be/ld.abilist b/sysdeps/unix/sysv/linux/arm/be/ld.abilist > index f1da2c636d..3d16fa60db 100644 > --- a/sysdeps/unix/sysv/linux/arm/be/ld.abilist > +++ b/sysdeps/unix/sysv/linux/arm/be/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.4 __stack_chk_guard D 0x4 > GLIBC_2.4 __tls_get_addr F > GLIBC_2.4 _dl_mcount F > GLIBC_2.4 _r_debug D 0x14 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/arm/le/ld.abilist b/sysdeps/unix/sysv/linux/arm/le/ld.abilist > index f1da2c636d..3d16fa60db 100644 > --- a/sysdeps/unix/sysv/linux/arm/le/ld.abilist > +++ b/sysdeps/unix/sysv/linux/arm/le/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.4 __stack_chk_guard D 0x4 > GLIBC_2.4 __tls_get_addr F > GLIBC_2.4 _dl_mcount F > GLIBC_2.4 _r_debug D 0x14 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/csky/ld.abilist b/sysdeps/unix/sysv/linux/csky/ld.abilist > index 7f482276ed..088f000c4e 100644 > --- a/sysdeps/unix/sysv/linux/csky/ld.abilist > +++ b/sysdeps/unix/sysv/linux/csky/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/hppa/ld.abilist b/sysdeps/unix/sysv/linux/hppa/ld.abilist > index 7f5527fb30..8ae26c46c1 100644 > --- a/sysdeps/unix/sysv/linux/hppa/ld.abilist > +++ b/sysdeps/unix/sysv/linux/hppa/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > GLIBC_2.4 __stack_chk_guard D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/i386/ld.abilist b/sysdeps/unix/sysv/linux/i386/ld.abilist > index 9c4a45d8dc..d9761c34e3 100644 > --- a/sysdeps/unix/sysv/linux/i386/ld.abilist > +++ b/sysdeps/unix/sysv/linux/i386/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/ld.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/ld.abilist > index 93fcd64eee..f5dbb17ec9 100644 > --- a/sysdeps/unix/sysv/linux/loongarch/lp64/ld.abilist > +++ b/sysdeps/unix/sysv/linux/loongarch/lp64/ld.abilist > @@ -6,3 +6,4 @@ GLIBC_2.36 __stack_chk_guard D 0x8 > GLIBC_2.36 __tls_get_addr F > GLIBC_2.36 _dl_mcount F > GLIBC_2.36 _r_debug D 0x28 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist > index f1da2c636d..3d16fa60db 100644 > --- a/sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.4 __stack_chk_guard D 0x4 > GLIBC_2.4 __tls_get_addr F > GLIBC_2.4 _dl_mcount F > GLIBC_2.4 _r_debug D 0x14 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist > index dadbf852d0..3888e39812 100644 > --- a/sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > GLIBC_2.4 __stack_chk_guard D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/microblaze/ld.abilist b/sysdeps/unix/sysv/linux/microblaze/ld.abilist > index 89a0b7e4fd..c83b62dce7 100644 > --- a/sysdeps/unix/sysv/linux/microblaze/ld.abilist > +++ b/sysdeps/unix/sysv/linux/microblaze/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/ld.abilist b/sysdeps/unix/sysv/linux/mips/mips32/ld.abilist > index e304d1bb46..9710fdb941 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips32/ld.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips32/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > GLIBC_2.4 __stack_chk_guard D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist > index e304d1bb46..9710fdb941 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > GLIBC_2.4 __stack_chk_guard D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist > index f26e594a13..ec1bdfd965 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x8 > GLIBC_2.35 __rseq_size D 0x4 > GLIBC_2.4 __stack_chk_guard D 0x8 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/nios2/ld.abilist b/sysdeps/unix/sysv/linux/nios2/ld.abilist > index 811ae9da2f..d2b742ec25 100644 > --- a/sysdeps/unix/sysv/linux/nios2/ld.abilist > +++ b/sysdeps/unix/sysv/linux/nios2/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/or1k/ld.abilist b/sysdeps/unix/sysv/linux/or1k/ld.abilist > index cff2ffd23b..eb225ca4c5 100644 > --- a/sysdeps/unix/sysv/linux/or1k/ld.abilist > +++ b/sysdeps/unix/sysv/linux/or1k/ld.abilist > @@ -6,3 +6,4 @@ GLIBC_2.35 __stack_chk_guard D 0x4 > GLIBC_2.35 __tls_get_addr F > GLIBC_2.35 _dl_mcount F > GLIBC_2.35 _r_debug D 0x14 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist > index b1073f0942..7a94751723 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist > @@ -9,3 +9,4 @@ GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > GLIBC_2.39 __parse_hwcap_3_4_and_convert_at_platform F > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/ld.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/ld.abilist > index 40942a2cc6..f6bdd89083 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/ld.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/ld.abilist > @@ -9,3 +9,4 @@ GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x8 > GLIBC_2.35 __rseq_size D 0x4 > GLIBC_2.39 __parse_hwcap_3_4_and_convert_at_platform F > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ld.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ld.abilist > index 01f2694a4d..672bade9ba 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ld.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ld.abilist > @@ -9,3 +9,4 @@ GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x8 > GLIBC_2.35 __rseq_size D 0x4 > GLIBC_2.39 __parse_hwcap_3_4_and_convert_at_platform F > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist > index 068368878e..d3be9236c2 100644 > --- a/sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist > +++ b/sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist > index a7758a0e52..46b22238ce 100644 > --- a/sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist > +++ b/sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x8 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist > index c15288394a..f438808c08 100644 > --- a/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist > +++ b/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist > @@ -6,3 +6,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist > index 78d071600b..f5fbc6de43 100644 > --- a/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist > +++ b/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist > @@ -6,3 +6,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x8 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/sh/be/ld.abilist b/sysdeps/unix/sysv/linux/sh/be/ld.abilist > index 7f5527fb30..8ae26c46c1 100644 > --- a/sysdeps/unix/sysv/linux/sh/be/ld.abilist > +++ b/sysdeps/unix/sysv/linux/sh/be/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > GLIBC_2.4 __stack_chk_guard D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/sh/le/ld.abilist b/sysdeps/unix/sysv/linux/sh/le/ld.abilist > index 7f5527fb30..8ae26c46c1 100644 > --- a/sysdeps/unix/sysv/linux/sh/le/ld.abilist > +++ b/sysdeps/unix/sysv/linux/sh/le/ld.abilist > @@ -7,3 +7,4 @@ GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > GLIBC_2.4 __stack_chk_guard D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist > index 3aac73f3df..df3f7fefb3 100644 > --- a/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist > +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist > @@ -6,3 +6,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist > index 5471b24d59..3bf61e1210 100644 > --- a/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist > +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist > @@ -6,3 +6,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x8 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/sys/rseq.h b/sysdeps/unix/sysv/linux/sys/rseq.h > index b8afab8945..a048ba8958 100644 > --- a/sysdeps/unix/sysv/linux/sys/rseq.h > +++ b/sysdeps/unix/sysv/linux/sys/rseq.h > @@ -163,6 +163,10 @@ extern const ptrdiff_t __rseq_offset; > unsuccessful. */ > extern const unsigned int __rseq_size; > > +/* Size of the registered rseq features. 0 if the registration was > + unsuccessful. */ > +extern const unsigned int __rseq_feature_size; Ok. > diff --git a/sysdeps/unix/sysv/linux/tst-rseq-disable.c b/sysdeps/unix/sysv/linux/tst-rseq-disable.c > index ae4143916b..eb4b6278dc 100644 > --- a/sysdeps/unix/sysv/linux/tst-rseq-disable.c > +++ b/sysdeps/unix/sysv/linux/tst-rseq-disable.c > @@ -39,6 +39,7 @@ check_rseq_disabled (void) > > TEST_COMPARE (__rseq_flags, 0); > TEST_COMPARE (__rseq_size, 0); > + TEST_COMPARE (__rseq_feature_size, 0); Ok. > diff --git a/sysdeps/unix/sysv/linux/tst-rseq.c b/sysdeps/unix/sysv/linux/tst-rseq.c > index c8c0518a5d..c5d9afbb0a 100644 > --- a/sysdeps/unix/sysv/linux/tst-rseq.c > +++ b/sysdeps/unix/sysv/linux/tst-rseq.c > @@ -38,12 +38,14 @@ static void > do_rseq_main_test (void) > { > size_t rseq_align = MAX (getauxval (AT_RSEQ_ALIGN), RSEQ_TEST_MIN_ALIGN); > - size_t rseq_size = roundup (MAX (getauxval (AT_RSEQ_FEATURE_SIZE), RSEQ_TEST_MIN_SIZE), rseq_align); > + size_t rseq_feature_size = MAX (getauxval (AT_RSEQ_FEATURE_SIZE), RSEQ_TEST_MIN_FEATURE_SIZE); > + size_t rseq_size = roundup (MAX (rseq_feature_size, RSEQ_TEST_MIN_SIZE), rseq_align); Ok. > struct rseq *rseq = __thread_pointer () + __rseq_offset; > > TEST_VERIFY_EXIT (rseq_thread_registered ()); > TEST_COMPARE (__rseq_flags, 0); > TEST_COMPARE (__rseq_size, rseq_size); > + TEST_COMPARE (__rseq_feature_size, rseq_feature_size); Ok. > diff --git a/sysdeps/unix/sysv/linux/x86_64/64/ld.abilist b/sysdeps/unix/sysv/linux/x86_64/64/ld.abilist > index 5a8bd322cd..25c2153c21 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/64/ld.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/64/ld.abilist > @@ -6,3 +6,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x8 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok. > diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist > index e17496d124..05327004e2 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist > @@ -6,3 +6,4 @@ GLIBC_2.34 __rtld_version_placeholder F > GLIBC_2.35 __rseq_flags D 0x4 > GLIBC_2.35 __rseq_offset D 0x4 > GLIBC_2.35 __rseq_size D 0x4 > +GLIBC_2.40 __rseq_feature_size D 0x4 Ok.