From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2076.outbound.protection.outlook.com [40.107.6.76]) by sourceware.org (Postfix) with ESMTPS id C93903858C5E for ; Fri, 10 Mar 2023 09:10:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C93903858C5E Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BjECm9B7DyPdmsdDtnRdelKx/eqfmSjUT90gID555b7P/H2eH2bviUF19RQVLaJUl9UnIzqJ8/fbOr6uLK1XI2iaNMst3ubiw6zsNNv5JZE7ijDW5BhDvW+oPmHLloBW3RLg/75oANUTEpKX15zmt5EOjq+ajPcAPVb1P30ACm+qfrWnKWMKYltIoWsomk9bELHi4NZfVnXdE9knhVQ44j8D56XWNdsk7puNxnvLgvpjzT6uaBZB4ysigBh9VrIc0nmcbi14Sz5GogYfT7mnUfezWIioGDFpC/x3fD4oDb9yltiO6XvEObLiuyHwo4Me8GGk1w8AnpMpjltwV5SgFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/Po1wYGVDVtvd0ijIRuxU9qLGCRbF0yYYVqwtQIH3mE=; b=gBEKkaRkcWuUGfAuT2yawgsXEGB1uuGk0BaIoFRs8iqeUf9+1hXuCnVESER7FdditBlIldM7uDlyOqldiwsh7yAb04ZxRU0x8RHSvygGGVTNvslBuWF8XsmpdMghqnffpCZ1OgJD/X2O1fxOxeCvm0vIKWLgKcOxJKnpiVsQVkiKSzmdSY0t6LjqMU309a2HfyuKoU1fCOcA0BYEgGPlQi/RSmPH1grqeYmgCg2gz7ToeC24LUXBQ52DFj8/4U2a1KliYmQDfbVqF8caMDoCmHXI8TskBmBmDgHv2L2tkEwB9zRb2YEFUVQ1L8pAQVmxuvdiPXWxayuv3qqOvTYD4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/Po1wYGVDVtvd0ijIRuxU9qLGCRbF0yYYVqwtQIH3mE=; b=hYGVUWnpjsFnVYz3I3jhbUA2RQphjqXS+PJXq98hNNOFU7rvj1J/m0P0yLn7skuUBfZP98com1VYSFXXfxf6EIFxsDiKqWoMYeymTNJU5bATJDEyX+22zod6wdgZO1y+je+/oweANXB1hZ+FoLfsniz9skz3NjBPbqFJwv49Xkr2O8Ys5FvIzG8CkEQrIyUYGLvCDqVHB8FLCycisy6e5oG8TEpV4h4l6bNa2z5geMLDIdWbVikBdbz/7dOxCLN5vLeRA44QWmMcMxqOuKo36YiUiTxGMuzdPWSys3G7LP+ekK+Af+LptffXXYwP6KO0wPNFiqhi2xuPCf15lVmsrg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AS8PR04MB8996.eurprd04.prod.outlook.com (2603:10a6:20b:42f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.19; Fri, 10 Mar 2023 09:10:14 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::154e:166d:ec25:531b]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::154e:166d:ec25:531b%5]) with mapi id 15.20.6178.019; Fri, 10 Mar 2023 09:10:14 +0000 Message-ID: <7cbc4297-0d3c-e442-be63-7ee395c7a9e8@suse.com> Date: Fri, 10 Mar 2023 10:10:11 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v2] ld: Allow R_X86_64_GOTPCREL for call *__tls_get_addr@GOTPCREL(%rip) Content-Language: en-US To: Fangrui Song Cc: binutils@sourceware.org, "H.J. Lu" References: <20230105210542.3573076-1-maskray@google.com> <2c693059-fcc0-0874-68be-47bbfef47260@suse.com> <20230302201029.vflqmyjxh7qnyxa3@google.com> From: Jan Beulich In-Reply-To: <20230302201029.vflqmyjxh7qnyxa3@google.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR0P281CA0090.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1e::15) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AS8PR04MB8996:EE_ X-MS-Office365-Filtering-Correlation-Id: deb2e94f-0307-4a81-a2e7-08db21474247 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Kd+du3PKdR92R5YH2imEMymt3scPAQV6wF6Mv+g3OAa9GlOsjUXcZtEXrYdK+sm3SpJby7NkrJWW6wIU/ZWiFrNC7XCEg8X+BPa4PO4HC2RxDwoh6W9dATExR0wfRryZtB2+RhAI2UEVKmf84/THaAwQfsVQoWsWBvuhc5SE3CwM2Eh1jfTwQD7iZHT2s0FdjhtPs5fKwgtjHmKwcc6LJYtV6KzhXtri1E94YENy2Ajt7t2VbRrv73L5gwCtOq4ri0Y3T9lBm3e8xGvgJRmeRyqvjksnTdvoh4JXnq5v7V8PUlrZKVQ8Lk2FD09Wo9Vp7s2dMjSaExuQSfToKZ958lUq1R6wQ7BMYBWL+O2P28RPvNiM+bzwZeolsQsLP7ufddi+CKO6aSEFqz8LF/mKm4dQXDjhWNqDdPNE/5sB4DC/IrlbaKC9QqYBwAS4CZElDbxh4zCvJZuE1Yg7mwnZMFyCOCFh28OYGEPg2EvxpI8o70aEyMc5QTCPjLOsI0GkJBPBjnz9AIRxVbmpFhuykagZI7hYgwWyVswb0kV+kx6rv+B420tVtoD1z7Rj/2UGpDPi3q92M3iRxmhwasZ+sW+ozZcntQtic9kVn4s6L1yGuWUb8WXpADdBE3mds/kagof0vx31TtuAcj0mRkQroMhEKJO0yjwBRDlWlRu/ixwbuc0ufWFGXnzopKSE+flJLIBwpKBqGf7ov5ZSP/I2SWbxqRQCoSqbpQ7RjG8axSIXQD1FaawXTDJxv6iZWZURxTUPZkT1udUZ71z9R62auA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(376002)(366004)(39860400002)(346002)(396003)(136003)(451199018)(31686004)(36756003)(6666004)(83380400001)(6506007)(478600001)(316002)(38100700002)(6486002)(2616005)(966005)(6512007)(26005)(186003)(53546011)(2906002)(5660300002)(8676002)(66476007)(66946007)(8936002)(66556008)(31696002)(6916009)(41300700001)(4326008)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?K3VtY2FHZWpwOWgySkRPMDNXMlFiOE5JRXYwVndoNURsK0dWK1JYcktxN1RF?= =?utf-8?B?YmxzbUZ3eDRGMDg5YzduQ0FXakdlTHhoaEFFSEVpSGd1UmJISlZMblhCSU9R?= =?utf-8?B?dmJibVhlU1g4eENDSXkyMDJwMGN6YWcyZzNML2NCczh5eHluTkdWU3pVQzln?= =?utf-8?B?cWdjSm1ac09DQ3FZdndDdUxIZFIyZzBUdEZYMWtZMkZYaXVqZWFUMjVrWlN0?= =?utf-8?B?TWlxcERyK2JHaHdKT0dETm4wMVRCZjhQYlhxdWFuS2lWVGw4K1crcWxJRm82?= =?utf-8?B?VWpiaEpYM1pjYjFuTkt6QlN4enRXMGZNSC8vYVY1a1NoejI1dlQ0M3gvcmQx?= =?utf-8?B?ZkJmRVlWbCtGVHlJLy9tbkkrb1ppTTJaRTViV0dobi8raHZ6bVJXczd4dEli?= =?utf-8?B?NEVSNFlHbFF6bE9SVU1Ecm4xUjhLNDdUaklzd2FFQVBKazRMakRXbVdOM2p6?= =?utf-8?B?RUYvV2VzYnFDVzEwNGJQNEMrUDZ2cjA5ZE5RT1BhQ0JhUlowa3ZEWUQxTllK?= =?utf-8?B?QjVmaWM3MWhtVS9TcnFreDBxemFsOXFock1qcWFIelkzQXVDUjZTYkg3eWM0?= =?utf-8?B?amZqbnd3d3ZWV3A2TDI5ZUpxSXRnSktOM213WC8xRkprNDlObzhiOGpIWURs?= =?utf-8?B?YVEyYnR6U2ZPTzhJRGE5RVBXUG5IQzh1TUVCc2tUYnFLWStaa2MrRmY5Skl2?= =?utf-8?B?YWlkUmJhVXR3bDlzbk9WM2tNcEk3MTViOXEwTVQ4M25vWGpsdjU4cW1TQTNx?= =?utf-8?B?NGswdlRHV09ZcU53d3laU0tlckNOSElueXQ3NlZ0V3hhYWd0Z2wweE5kcDZM?= =?utf-8?B?USs1M3IwV3BMeitXS0o4UGQvKzZZVTlMZ3E2eEt6U2d3eFJrb0RRWUhQMXFC?= =?utf-8?B?TFAzSHBFNFFieW9HQUd5eExtVmo5YXRnNmV6UGkwcHpmMnFjRnZRTEYrS2JL?= =?utf-8?B?cEZCYUNESytJWGx3QmVYNVgxV2pLdTlNL3JRMmVwbjBlZmpjbzcxZ1JJV2tn?= =?utf-8?B?Y3BzZk1zTjJ2U3FXdDR3SDlEUnJ2UHF2MU04LzdCQnJkZXJJZ0NQQlQrbFRy?= =?utf-8?B?S3ZYYTFKOThXelI5RnRoVnNXMnVneHozQ1lYd3NFUjNnTEhMOFNpOUtxamFw?= =?utf-8?B?UmttSmtCQy9vYmQ2cmR5c0hYazEyLytOWFZHYnVTdVlIZjFYTWRYSWh0d3JP?= =?utf-8?B?bWh5TDNOVmpZWDNpNzJhUTZySnVPL1pUMGE0UWV3QTdaaCtpYlZHOFpPc1VH?= =?utf-8?B?Z0MyUzRoWnhCd2c0UTRJTUJjdStKZ0tpQ2l1em5hMXdxQ2F3aGRhYmMvVHE1?= =?utf-8?B?UkJ1NXczN3J1TFk4M1J0T0l5Q1lIQ290cC9yc1k4UHBkMnUyaW1CVFFFQjR4?= =?utf-8?B?VTRja0NhTjEvY0hoNzQ3RWxjVDFjd0hvelZ5ck5ZcnNVREp6em5yazMxZGdy?= =?utf-8?B?VVJwV1RjOFhjeGhQOUNmcnlnc0lBRllBSXlhc2JvamxCb09xbEtscGhLa3g0?= =?utf-8?B?Yk5KSWN0b0VuVFY3RFlvdWNYS2JMVUduRDNzVXFQQlhjOVljL3dDUVVjZ1U1?= =?utf-8?B?dW4yQ2xSZ3JCZzIxOTVDbEpzYmd6U0NrQ1NjYmRNcjNiVzJzdEhFdWwzbjg3?= =?utf-8?B?NGdXVFo2ckhlZ0plM1I5Tm95b3VCU3RySGwwWmNzYlZFMVBlQ1dIUE5sVVFl?= =?utf-8?B?QkV6V3o4a2tBbm1yUUd0MWF0YURlaWR3b01ULzBISU1xU2xNN0RIODgxcElG?= =?utf-8?B?Z2dodWJvTnlPKzVQWmNrL0dDMXBvZmFBZ0grRGtrSW5BSlo2RjZRQkZCbVQ2?= =?utf-8?B?UTgydURnOEh6MWo5b0YvRzRlbXNFa1RFaWxoaFVLeFd6L1lwdk91SWNGTGVZ?= =?utf-8?B?N2I5SGVRcUZhMlZyeFV5TUlDdTVRb0xZaXpQaXU0S2xBYzlRWVJvQmMrcG5X?= =?utf-8?B?N2MwZUswcmU1WE10eERpQkIxYzBpYUVaME4rd0VpZEFqWHBEakxGWTRVa09C?= =?utf-8?B?Zk5tbXh3bGpSNUFPV25ZY0g0Q1VyR0E2QURFWGFqQm1Ta01UMksrbzI5RmJO?= =?utf-8?B?OXNsdVpML0lsOEFBOTN1dlZFT3Z0MmoxZmJDQ1duT25xSmtvSkd0aVZBTTF0?= =?utf-8?Q?r9hR0OieOkMSKJLNyHw1IoeFk?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: deb2e94f-0307-4a81-a2e7-08db21474247 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2023 09:10:14.3473 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NkB5soAJ+RBMRtScqrik0aOj1XgXfOMvf/KGrzvszB9CrNuA7cJ3n8zV6vKQgC1tHHnKhNl9bedNkvMw+9iDVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8996 X-Spam-Status: No, score=-3034.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,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 02.03.2023 21:10, Fangrui Song wrote: > From a8df373aec097dcdabe46717dd95cdd9b16ef7d7 Mon Sep 17 00:00:00 2001 > From: Fangrui Song > Date: Thu, 5 Jan 2023 12:45:27 -0800 > Subject: [PATCH v2] ld: Allow R_X86_64_GOTPCREL for call > *__tls_get_addr@GOTPCREL(%rip) > > _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. > > There is an argument that the -fno-plt TLS sequence was added after > R_X86_64_GOTPCRELX was required for call, so R_X86_64_GOTPCREL was > intended to be unsupported. > > Unfortunately this standpoint has caused interop difficulty: some > projects specify -mrelax-relocations=no to build relocatable object > files compatible with older linkers (e.g. > https://github.com/IHaskell/IHaskell/issues/636) or do so by accident > (e.g. https://github.com/rust-lang/rust/pull/106511 not addressed as of > today). Many uses have not been cleaned up in practice, and compiling > with -fno-plt will lead to the `TLS transition from R_X86_64_TLSGD ...` > error which is hard to reason about. > > There is another argument which may be weaker but relevant to the > necessity of -mrelax-relocations=no: HWAddressSanitizer x86-64 will > likely need some assembler support to disable relaxation. Without the > support and if the compiler needs to support many gas versions, the > simplest solutation would be to use -Wa,-mrelax-relocations=no. > > 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 0aa9af5d8fc..dd987ee011b 100644 > --- a/bfd/elf64-x86-64.c > +++ b/bfd/elf64-x86-64.c > @@ -1253,7 +1253,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); > } No further comments from H.J., so please feel free to commit. Jan