From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi1-x235.google.com (mail-oi1-x235.google.com [IPv6:2607:f8b0:4864:20::235]) by sourceware.org (Postfix) with ESMTPS id AA2823858D28 for ; Fri, 6 Jan 2023 17:04:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AA2823858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-oi1-x235.google.com with SMTP id i127so1532340oif.8 for ; Fri, 06 Jan 2023 09:04:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=VlpLXMrCRIIJ80InsVHIfSXJTMF0gR+0HS26gzDPd90=; b=ZPU4yLmDnxfd5NLOBVUuXy2l3JK7k1V4kN8GmIeSXC6Ccd/5R3X+/TUoXN1l8lRnw3 Ch7pWAz1H7EZuQxJBCwgoOHLnyWm7Pmx4K2hSS6a4JvZ/H9Nf3aSqRjSgk0WAS3epJaF b0n2FGQgAgh9x97TLBIfQzlrVqvzkBuIACN6WGAxHLiYZFb6iUY1CkZ9HUkkvjMCqgCk bpt6CXFNZJm/o4dXbZ0NP+kmV71MWBHhXXc3k7NOMQsjmMmgFOlrU2vg82CyTIykeSv8 Kg1U2EFqK4XynxPHlI2hmB+9LakicE7tsJHDOwsMcepRCvqa9j5AnhSlxXtyd2elDSz5 JMbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=VlpLXMrCRIIJ80InsVHIfSXJTMF0gR+0HS26gzDPd90=; b=xZtEOpoT7qTmCMOYsymg8BAAXUxzMUe4JkAeTBV4dYTxOYf0C7qxbQJCK/ZICmtE2f afN1IqAikf8nb3ruAxVR0IqpHitflY19QNiP1ZKjXXPz94txBPo7N2ZWIUPpNWFKiyCc iOa6IvdxKaGlPczlooD+/28D37AqLcxffbFpQxdXC5YU4MrKxBjg9ms86o0BPEb8YsR8 DhRg6ecURkqsWE616u6TKhzDoB7okSulY0OXg6IjqyiJrD6HFDwuog9W/K3ehPQiV8X1 5Jlpbg1am8NZEDd46OQ/WnOhNjLo6R2o5sDa1SczFtczpQbGQRAk7kWs5VekNDLYUoNs ShTg== X-Gm-Message-State: AFqh2kr3T/276nllklbbuy5q0r0SSFV/6VyBw6IAmpTSuF44ov7D4phx 5uL7gILuR3KVBukFH/o3Srgw5LuvnOsRk8P9qCuquHWKgrQ= X-Google-Smtp-Source: AMrXdXuFM+d9h4c4FRxiW37agaS93eTRFQ4e1wHW4dhIUGIAI/LPMtGG9sMN6D79hZqWFliDswfNM9xcX/UWSGZfcAM= X-Received: by 2002:a05:6808:697:b0:35b:c6c4:7a33 with SMTP id k23-20020a056808069700b0035bc6c47a33mr3493641oig.266.1673024670866; Fri, 06 Jan 2023 09:04:30 -0800 (PST) MIME-Version: 1.0 References: <20230105210542.3573076-1-maskray@google.com> In-Reply-To: <20230105210542.3573076-1-maskray@google.com> From: "H.J. Lu" Date: Fri, 6 Jan 2023 09:03:54 -0800 Message-ID: Subject: Re: [PATCH] ld: Allow R_X86_64_GOTPCREL for call *__tls_get_addr@GOTPCREL(%rip) To: Fangrui Song Cc: binutils@sourceware.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-3023.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,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, Jan 5, 2023 at 1:06 PM Fangrui Song via Binutils wrote: > > _Thread_local int a; > int main() { return a; } > > % gcc -fno-plt -fpic a.c -fuse-ld=bfd -Wa,-mrelax-relocations=no > /usr/bin/ld.bfd: /tmp/ccSSBgrg.o: TLS transition from R_X86_64_TLSGD to R_X86_64_GOTTPOFF against `a' at 0xd in section `.text' failed > /usr/bin/ld.bfd: failed to set dynamic section sizes: bad value > collect2: error: ld returned 1 exit status > > This commit fixes the issue. > > PR ld/24784 > * bfd/elf64-x86-64.c (elf_x86_64_check_tls_transition): Allow > R_X86_64_GOTPCREL. > --- > bfd/elf64-x86-64.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c > index 914f82d0151..095fe2e0fe6 100644 > --- a/bfd/elf64-x86-64.c > +++ b/bfd/elf64-x86-64.c > @@ -1241,7 +1241,7 @@ elf_x86_64_check_tls_transition (bfd *abfd, > if (largepic) > return r_type == R_X86_64_PLTOFF64; > else if (indirect_call) > - return r_type == R_X86_64_GOTPCRELX; > + return (r_type == R_X86_64_GOTPCRELX || r_type == R_X86_64_GOTPCREL); > else > return (r_type == R_X86_64_PC32 || r_type == R_X86_64_PLT32); > } > -- > 2.39.0.314.g84b9a713c41-goog > Since the new TLS sequence was added after R_X86_64_GOTPCRELX was required for call, R_X86_64_GOTPCREL should be invalid in this TLS sequence. -- H.J.