From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) by sourceware.org (Postfix) with ESMTPS id E6D983858D1E for ; Tue, 30 Apr 2024 17:05:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E6D983858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=dabbelt.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=dabbelt.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E6D983858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::531 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714496738; cv=none; b=rs2KpcFeEZe8CkQWXInTfnFRRYw+X1seYKq/cCd94FNLH3KXjrj/4GsOuJtEYw9AdaIf2nEo7s1Pge/2BB0KZEghp013JR033gsJZKxpj3ZtDU9/2XuDnlQ+1a6xizsdtuyiFlgbJTI6vhOZrOV7s2VwC0D2DZY8ZpOhXIWnif8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714496738; c=relaxed/simple; bh=Ez3ysBGLEHFCf7a+dQiNvE8DoXtajAABQih1laJJcYw=; h=DKIM-Signature:Date:Subject:From:To:Message-ID:Mime-Version; b=tyPKV5Ps4UNoMztX+6vKwS0I1J2YBT+EaSAKuxc6ams1Ix+nZ1NecoYnJSxxcukKSTo28JQCf6p0NzmD+BsjpFhX+aOyENJxJrp1FVJvCM4FLt9cQXQ0aZkWNrSqc9pnNmgBLswPC8lzmxxqJyJMJX1a4/43V4XqJzWyQUtn1qU= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pg1-x531.google.com with SMTP id 41be03b00d2f7-5e4f79007ffso3892253a12.2 for ; Tue, 30 Apr 2024 10:05:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dabbelt-com.20230601.gappssmtp.com; s=20230601; t=1714496727; x=1715101527; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:to:from:cc :in-reply-to:subject:date:from:to:cc:subject:date:message-id :reply-to; bh=gQF2ksKrK8l6clIHwd+ky7hfRuiIoWtxp+BvmesT65k=; b=AnSRtdoNy7PN6EkEhapQFSq0oOfTayvp/zMpOa0p2PsPH19EkuO70Do+aeIyGV9wAJ 2WTRzvdEif8O+TBc4keQE+xHp/z2wCwG64pFDcp9vMmdkYw2GBCY41zG8/tP5W6y1WVq 3qyu3VvMOvNto2mamL4WGLTVm4UhJ4aV/xFCNYwjCh2DsJ9ksU8tLoCx8/G/HqzmN6LS m6V225Oi/eCov6Yrq/6lVVgQHyv6xsT9OrjKGers5O3G8XNEKzoGKHjEnpEn6BwiNAYC D8ZyD9sxVy6m5S4O3eGjbpuoy9azuTXzJvtg/sHDOXwp/5AXFocIl3wXUzVWMUFAuoP/ PuMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714496727; x=1715101527; h=content-transfer-encoding:mime-version:message-id:to:from:cc :in-reply-to:subject:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=gQF2ksKrK8l6clIHwd+ky7hfRuiIoWtxp+BvmesT65k=; b=Hj85c2V8BFehgFX25M70bz8cutHvb3GAhgajlK4lQWxrhxuZFm9LywnQC8+unCfCra wuixVkOMWbSt8w2DHA4OSLln/OqL2RSBJCDov6OnH/Hk2TSo/OIzLazSctumso1cBw5y 86jEfDGsnDBZ1rUG/9/p61Q7HHfXkNLg9qGE2loUqyqUA07lTLTM7vAAGrgSZxD9Dh5e AoAW8PCqJnzf+oWnIgbRsUJgpx7Z1ux1zheR+QX9JujXLOOyItig7K5O9sUAhCvi2Puw jaGlTkYIyTagb/sgHc+D1LAuUzhGT/foIqlfETf0t9w4INYsd3uaYH7oeN7jkCldkw/c qayQ== X-Forwarded-Encrypted: i=1; AJvYcCVM0nj3QdMwYetjLILXHh9R96yJhWRuVSfhTEQF4LkrnJblWU/Akpcxf07Gu1W6wwc5Hpv2KdjqMPwVvOgn0SNS989I1kYEEVQj X-Gm-Message-State: AOJu0YyulX5rfc5Dz8TnoueOAaqbCPn5h5XnnejBxgfDAyV/82nq9+pX PkjT+Y7qloMF8F8eH0xpRe+pk9KsMYBYdaCU/GCaVcW1oqxl7t2HwzWuciI2+OVvT1QvDkQgf31 O X-Google-Smtp-Source: AGHT+IEabT/JoPpq0FMc/gvS1gvFDylZMNKIKBGDA3MCuCYulm/6C9qLDecqPL4lMhq+1f+M1o92yg== X-Received: by 2002:a17:90b:1bcc:b0:2a2:bd4b:764f with SMTP id oa12-20020a17090b1bcc00b002a2bd4b764fmr97259pjb.3.1714496726129; Tue, 30 Apr 2024 10:05:26 -0700 (PDT) Received: from localhost ([50.145.13.30]) by smtp.gmail.com with ESMTPSA id ns5-20020a17090b250500b002a5f44353d2sm23457474pjb.7.2024.04.30.10.05.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Apr 2024 10:05:25 -0700 (PDT) Date: Tue, 30 Apr 2024 10:05:25 -0700 (PDT) X-Google-Original-Date: Tue, 30 Apr 2024 10:05:21 PDT (-0700) Subject: Re: [PATCH v6 0/3] RISC-V: Implement TLS Descriptors. In-Reply-To: <20240329061834.40019-1-ishitatsuyuki@gmail.com> CC: ishitatsuyuki@gmail.com, libc-alpha@sourceware.org, rui314@gmail.com, ruiu@bluewhale.systems, schwab@linux-m68k.org, adhemerval.zanella@linaro.org, Andrew Waterman , fweimer@redhat.com From: Palmer Dabbelt To: ishitatsuyuki@gmail.com Message-ID: Mime-Version: 1.0 (MHng) Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP 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: On Thu, 28 Mar 2024 23:18:31 PDT (-0700), ishitatsuyuki@gmail.com wrote: > This patchset implements TLS Descriptors (TLSDESC) for RISC-V targets, per > the ratified specification at [1]. > > Partial support for TLSDESC is in binutils trunk. In [2] there is > additional support for relaxation which is required to pass > tst-tls1-static. GCC needs to be patched with [3]. > > Passes binutils and gcc tests for rv32gcv and rv64gcv. For glibc I only > tested elf/ as other subsystems sometimes doesn't work well under qemu. > > This contribution is made on behalf of Blue Whale Systems, which has > copyright assignment on file with the FSF. > > v2: Fix end-of-file newlines. > v3: Fix segfaulting on the slow path of TLSDESC resolver. > Fix handling of lazy relocations. > v4: Fix compiler warnings. > Fix fast path stack alignment pointed out by Andrew. > Fix style issues pointed out by Adhemerval. > Include 2 missing prerequisite commits. > Update localplt list. > v5: Add stubs for save/restore of vector registers. > Add comments and reordered sections for readability in the TLSDESC assembly. > Add clobber test sequence for tst-gnu2-tls2. > v6: Fix R_RISCV_NUM. > Elaborate on the include guard commit (thanks Fangrui). > > [1]: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/373 > [2]: https://inbox.sourceware.org/binutils/20240220175556.304692-1-ishitatsuyuki@gmail.com/ > [3]: https://inbox.sourceware.org/gcc-patches/20240329055239.29719-1-ishitatsuyuki@gmail.com/ > > Tatsuyuki Ishi (3): > RISC-V: Add include guard for dl-tls.h. > RISC-V: Add TLSDESC reloc definitions. > RISC-V: Implement TLS Descriptors. > > elf/elf.h | 7 +- > sysdeps/riscv/Makefile | 10 + > sysdeps/riscv/dl-lookupcfg.h | 27 ++ > sysdeps/riscv/dl-machine.h | 50 +++- > sysdeps/riscv/dl-tls.h | 4 + > sysdeps/riscv/dl-tlsdesc.S | 269 ++++++++++++++++++++ > sysdeps/riscv/dl-tlsdesc.h | 48 ++++ > sysdeps/riscv/linkmap.h | 1 + > sysdeps/riscv/preconfigure | 1 + > sysdeps/riscv/tlsdesc.c | 38 +++ > sysdeps/riscv/tlsdesc.sym | 19 ++ > sysdeps/riscv/tst-gnu2-tls2.c | 33 +++ > sysdeps/unix/sysv/linux/riscv/localplt.data | 2 + > 13 files changed, 507 insertions(+), 2 deletions(-) > create mode 100644 sysdeps/riscv/dl-lookupcfg.h > create mode 100644 sysdeps/riscv/dl-tlsdesc.S > create mode 100644 sysdeps/riscv/dl-tlsdesc.h > create mode 100644 sysdeps/riscv/tlsdesc.c > create mode 100644 sysdeps/riscv/tlsdesc.sym > create mode 100644 sysdeps/riscv/tst-gnu2-tls2.c This generally LGTM, but IIUC we're waiting on a glibc-wide decision as to what the stable ABIs should be around TLS before moving forward.