From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by sourceware.org (Postfix) with ESMTPS id 2FDE93857B80 for ; Tue, 28 Nov 2023 08:51:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2FDE93857B80 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2FDE93857B80 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::62d ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701161488; cv=none; b=EQ8p9nvOqjQgheU5COik9ZeKGmNwmpdFeZ0W0optnwNdgzNCmkOXZRTTngIOd+WdqItZka2PtFxK4v9z8+slSRgQQMKeFjEOqBXGM1GKPTCQ+Qe+YA6vqGYEFIjgQzTp4foIju7GL1qceAOUrFqnbkuvoaa0nITDqgWhyDzJAHY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701161488; c=relaxed/simple; bh=gmZx/jC6cvA+tge+bZmaz5/lESO+G7/aZwRtozHil5c=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=MMIeRun4F4IrAifUL1KcyHJS3qJ47NcmQ7c/n60QVG4IVfGEk2RsqW9xm8MUZOuwbWFnjhLHi0ijTDwhsuCpTCCww1QVyUfTiG9Wl/8bgBKpzI7mfq+dYtIb9ZBqPxaB/wuxEjN42w3KRR+5x+sypgIMfT2OV2B+wljcDiJND04= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-1cf876eab03so8971035ad.0 for ; Tue, 28 Nov 2023 00:51:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701161485; x=1701766285; darn=sourceware.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mePxZbsu/BzVxgnqHmw1BJ3s6S0Pd7CQy09k6OD65KM=; b=I6dnlCJn23rTsVZbaw4G2Rdls/bQGpwbrkf1dS586HCLO0UqWPB2P17nKwTIqC99/h XerCr3zVonyB+qZ4dp93/XI+j2RnccHUPhhUKrlIrZtv7yRJs5uPiYLyqtZQePhFJ7C9 7lrNKMigk5V5wvfKGpHhOD0+sFijZ/HRqsYmnPQ8xEavKoJlIivBFR9UrPPt+HwgNeVQ gKat1tlLvrAWEjtHG/BP/Vd/9PjMyOlw/JRR+6o/C+brUkIheTyngvypTT4T9S+Sh9py 4sNS+PP4tOO+lA8FTwuWxie9YdMQwW7vfGwR27TdVolW9KmZ69evXN+15osm71a6dybF LSRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701161485; x=1701766285; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mePxZbsu/BzVxgnqHmw1BJ3s6S0Pd7CQy09k6OD65KM=; b=bCn74GF6GWIkKtwhGtEP/GWqlALzL/gpftDKFuQNn3JmqhSwgH4qX2q/qBAYarLCwN Y0NHvFHRVOhGhY8QLbc0DboXodKqC7TDXFXUKzgh26GhmpTs0T10MSC7zDx1lLbNZfnp 9wEjPmbJiknQreaveKyFaF1R9qnGyoN6QPVgo3nnhuAfOTn8an6uw7sLSUer1XNmf/aT 3H4gnayYc2w7jCr3uejx6JVSyYHUfypUPDnLya/dTy2WuV7a2SSajW5sbVNMbMe2zdrY XKRKkvurTwtgpaESnk2vDrWkLNzD2tJ+Yu+1p370WC7uMjpezV7u/QNeaq0RwBWlhmHW J23Q== X-Gm-Message-State: AOJu0Yxbv8CfW2Sp0xWUp4rLtbe8fFQgoXs/y1wODf1u/LmUsa9m3MxW DbBH2gExrjdnTMPzHSOogoGs/Rr1RcqBOmnS X-Google-Smtp-Source: AGHT+IHzYkUjVRI3trgZ6Ubb/Bc6IsUE3ydqGYxgAYFtfwpS8KfeMmQLrmA4c6qN3DjcVba4F4Z2Lg== X-Received: by 2002:a17:902:9f96:b0:1cc:27fa:1fb7 with SMTP id g22-20020a1709029f9600b001cc27fa1fb7mr16881983plq.5.1701161485090; Tue, 28 Nov 2023 00:51:25 -0800 (PST) Received: from localhost (zz20184013906F627101.userreverse.dion.ne.jp. [111.98.113.1]) by smtp.gmail.com with ESMTPSA id ik20-20020a170902ab1400b001cc56354cc8sm9941178plb.62.2023.11.28.00.51.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Nov 2023 00:51:24 -0800 (PST) From: Tatsuyuki Ishi To: binutils@sourceware.org Cc: i@maskray.me, nelson@rivosinc.com, rui314@gmail.com, ruiu@bluewhale.systems, Tatsuyuki Ishi Subject: [PATCH v3 0/9] RISC-V: Implement TLS Descriptors. Date: Tue, 28 Nov 2023 17:51:00 +0900 Message-ID: <20231128085109.28422-1-ishitatsuyuki@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20230817180852.121628-2-ishitatsuyuki@gmail.com> References: <20230817180852.121628-2-ishitatsuyuki@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,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: This patchset implements TLS Descriptors (TLSDESC) for RISC-V targets, per the specification (merged) at [1]. Tested on rv64gc for: - No regression (& passing new tests) in binutils - No regression in gcc - No regression in glibc for subdirs=elf With both -mtls-dialect=desc and trad. This contribution is made on behalf of Blue Whale Systems, which has copyright assignment on file with the FSF. [1]: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/373 v2: Add changelogs and tests. Minor fixes described in patch messages. v3: Add relaxation support. This fixes tst-tls1-static in glibc. Tatsuyuki Ishi (9): RISC-V: Fix local GOT and reloc size calculation for TLS. RISC-V: Add TLSDESC reloc definitions. RISC-V: Add assembly support for TLSDESC. RISC-V: Define and use GOT entry size constants for TLS. RISC-V: Initial ld.bfd support for TLSDESC. RISC-V: Move STATIC_TLS handling into record_tls_type. RISC-V: Unify TLS handling in check_relocs. RISC-V: Add elf_link_hash_entry to relax_func args. RISC-V: Introduce TLSDESC relaxation. bfd/bfd-in2.h | 4 + bfd/elfnn-riscv.c | 341 ++++++++++++++++++--- bfd/elfxx-riscv.c | 130 +++++++- bfd/libbfd.h | 4 + bfd/reloc.c | 8 + gas/config/tc-riscv.c | 18 +- gas/testsuite/gas/riscv/tlsdesc.d | 22 ++ gas/testsuite/gas/riscv/tlsdesc.s | 24 ++ include/elf/riscv.h | 21 +- include/opcode/riscv.h | 1 + ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp | 8 + ld/testsuite/ld-riscv-elf/tls.d | 17 + ld/testsuite/ld-riscv-elf/tls.s | 42 +++ ld/testsuite/ld-riscv-elf/tlsbin.d | 7 + ld/testsuite/ld-riscv-elf/tlslib.s | 6 + opcodes/riscv-opc.c | 1 + 16 files changed, 601 insertions(+), 53 deletions(-) create mode 100644 gas/testsuite/gas/riscv/tlsdesc.d create mode 100644 gas/testsuite/gas/riscv/tlsdesc.s create mode 100644 ld/testsuite/ld-riscv-elf/tls.d create mode 100644 ld/testsuite/ld-riscv-elf/tls.s create mode 100644 ld/testsuite/ld-riscv-elf/tlsbin.d create mode 100644 ld/testsuite/ld-riscv-elf/tlslib.s -- 2.43.0