From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by sourceware.org (Postfix) with ESMTPS id 50B503858401 for ; Tue, 12 Oct 2021 08:18:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 50B503858401 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2108.outbound.protection.outlook.com [104.47.17.108]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-22-IzuLY9OVNAGxR9EIKvecpA-1; Tue, 12 Oct 2021 10:18:31 +0200 X-MC-Unique: IzuLY9OVNAGxR9EIKvecpA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oA+ckVjJvawDpvDYgyqsaC/lT/z2TbYHHKRDf56aUkAiUEbP/6hKcBPQp/8ZoECXIMVSU2R59tLxXQmejelEULKdtzWIUphyVdHpx7Be5ktTR05HBdS8wLI80kXuhj6udPrRWdFd9ZhNB+TuCUwNPltCHYtpiC2LS3J9wjmRV1dB9+OCpWMRhEb3YnVDPLqfCOZ9anIRspsS96batPx8S7TorlizcG7peCQJQsEZ25rmSZ6Rcj+yPW94tSXiBV8UxI8h6MW5J6ssI+cSg8sjNXqRJYcYWCqRbgTbXlLklfaAbBjOFAq8Z+p6KChDrT5dReBTcu8gUSqzVhVnsTdGyA== 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=0H+h7R1RNRZcLn579F9wvVs2Bkj12xsZ/UFE8Sq6tsI=; b=SAn55IEv62+UdEb/IF2K4UI5MqJh4xduCA7g+qtSi/lSzkS/1qfJq44Xi4eh5CxP/uxaIK72Hjvx3ly6RU7YkYmBPPSFbCxZI6YxcHZY30rYQcNAsb1XFDwIOkpToG43WT7sO2YtdMcUYCOHlNFTB7L0uREQSf/VgOQ3eNhogOHZ0NYc1dllIOkxm+7EjRxNcmlbNzVThABhkO1fWSa/m5EkcQ0/SxNTz3Gw9YsZ3qcwN+HVhQWql3DxX/BynwDoN4hBoLZ2G2ikMUp1dFQqRTuLJE6lUPXha1nEIi99zwYksLn9u5KpFOd6JlCrpWiTXhTRV09cNSM9I8/6WtI3Mg== 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 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR04MB5744.eurprd04.prod.outlook.com (2603:10a6:803:e4::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.19; Tue, 12 Oct 2021 08:18:29 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::4d37:ec64:4e90:b16b]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::4d37:ec64:4e90:b16b%7]) with mapi id 15.20.4587.026; Tue, 12 Oct 2021 08:18:29 +0000 Subject: Re: [PATCH] elf: Support DT_RELR relative relocation format [BZ #27924] To: =?UTF-8?B?RsSBbmctcnXDrCBTw7JuZw==?= CC: binutils@sourceware.org, libc-alpha@sourceware.org References: <20211008065740.1485737-1-maskray@google.com> <3368ef30-eb8c-8828-1af0-1a227d99dc93@suse.com> From: Jan Beulich Message-ID: Date: Tue, 12 Oct 2021 10:18:28 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR0P281CA0040.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:48::11) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 Received: from [10.156.60.236] (37.24.206.209) by FR0P281CA0040.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:48::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.4 via Frontend Transport; Tue, 12 Oct 2021 08:18:29 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f5145baa-6b6e-416f-1e52-08d98d58df7d X-MS-TrafficTypeDiagnostic: VI1PR04MB5744: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JTuMitpFvtkJMHEzKDWPQcfG559mn65N5GlRQxFjd/8Ov6c0KobieEseRPtDky4kzpjmkWIyAN7PtgP0n5wyaVuK25EydLAN+4WPcN6dM8Htz3cx8lLrTxqE08X18uY5B7Gk0xM7Jcn7OsdHx1d09wNxwiaqXtNfBpd9A7NkPvoR3nszc+eRFyGQmyuHYQx3Fbpn9DhDoWyWX97Re7tQZlH3qT2UJHQg8Ru4YGuTvhbzyevsgD5DhJxDiWrpCtLYBpPmkDkBLrKV/ruuPt8bTlYp3abzeXHLQT/PzjRZQYTsI4aUB61j413QF6rY/UmLPvTYdBrwx2xTc5PuIsNIuPsXdKxI+elsm3ConfyKa8gwkHI4a9Uz0dXrkLDXdApcEnWRkc6YMewWmd/HkyQNTETZoFePyr2y3QyZ/CPq7loMWtfRBDtYXqVcQDgbANaWMoPmYDYmdS29xjfpZAo5zad4ce9ifTm/mYwW8tbe1cUtJbRr/cxo23wNlUD7zZ9JGRsi2TsNIIfUfYFwgUE9KRejT7jzPW+68idurbmtoJx4atnq8F3WpAHlpZuZM8gBrB5R0VsUTyHizq+KMrEQv6/8jV1VQCKzllAv3fi3gNkElSinpPrSoPlSnCTdEYi+vT6LN9ogjJDBVjCQZoAZoBuGalyVRVN+Tywk8V2vpBd1t55qwU7bCzMzMsOkmtTkmqq8TMEZPn9Zycem7RbluFA3royu4jv5A0WniiP9Bi4= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB5600.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(66574015)(66946007)(66556008)(66476007)(86362001)(38100700002)(36756003)(31686004)(6486002)(2616005)(31696002)(956004)(5660300002)(26005)(8936002)(508600001)(186003)(53546011)(2906002)(6916009)(16576012)(316002)(4326008)(8676002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ZgR0ey6f5Op+4/v1wyha1ejiWwhNKTpNPoCHYkdcJUKJ024T1osVAKdJaI+d?= =?us-ascii?Q?hLjCB1QqRJVaWbFWbUn1ZiOaRrwb6aUTMUSc0ATZaPk3gt4Hk6fv3l0ijLqk?= =?us-ascii?Q?KPSnLgczbERezpY1WNXx6sHoy6YVKBuVO1BbpaC4g3A0j+E6+4Q/7dYxIVL+?= =?us-ascii?Q?Ia7ymw8z0PMEI/oJcYvkP9AySGsy1Yrg14Kt0NC8kX4y1TPeRJiv9F5aqfxh?= =?us-ascii?Q?ajWDduYVnziSelzEKlr5pnmJ+sIGZZ8iE2UJuQ0b9bW646M+dgfQS6971agv?= =?us-ascii?Q?rmtJww6g9be1+6M+hpAxwQYO8AlI/m/OQGooBAKIwbYIOcSoR+SHhIVoM/qw?= =?us-ascii?Q?8sjm9vW6tZQabH0NJ8ijrZmmt7paEgTtwOL83uwriUJzyqViZCX/glQdcZ9z?= =?us-ascii?Q?j/wwujL2DI5mBNkchFFPWA96Gl4PCMdnxtONCop971ygTRRQNOfGGXv97b/H?= =?us-ascii?Q?1l2GBVX0UXuraMH52vQw7moT+aGB+oZ12esnJUmQLJtxW5FchNM4EnqI8qze?= =?us-ascii?Q?L9sNAzA/rvVVImWJsHS5096fjF1MbgY0YMljn9zXXvZHNYaGmC03HHNa82rt?= =?us-ascii?Q?JaCYhO3Q57TmTv9WfriIUxSfnnuek+Dqrwl6xsneVqmujh4TqQjdWA5KXbWo?= =?us-ascii?Q?OOdid9Y5zCueyI2hGEZlXGfZWG8F6FtkXpxHMXHt9i5w9ZppSa1lZEcQT7Zu?= =?us-ascii?Q?HtRNBSIu0kTaQfzbKSOSruqQ8ZJbtFbrRsP3sGEtOdNatDjryZgObwWsahUW?= =?us-ascii?Q?HNkO7IaQtFEMuRqdFCSoBO9XPF6epJ7ognFnke+XcWd6i2ahGgf1kfNMo8QA?= =?us-ascii?Q?DcuBg8wxFE2HWcOkkkYVpP3XL3wZlAht625oDahMDFG6exoxsp1zyUnR37zc?= =?us-ascii?Q?4xzqqQcPk1jQqcZTpdgWN7vQVsK1fbx1WNzN7bJeRIWB2BgI7hhRsrAi4X/p?= =?us-ascii?Q?73z79CGZKTu0RvVd74Hr6Sg+v8cMPB937pVam+SENY7nsvjo0kWsdIrC4Gx4?= =?us-ascii?Q?aMSEI5PlBT/EVX9kZMTybngVqfPJ/fplYJSpUt0xF+g7zHFkhCuxu8NwIVhY?= =?us-ascii?Q?/P38UU04Z3PzRmtyVa+00RjwEwU0eQUUpZE4YyFQUGeyfGOUCK0McOHNhQ9O?= =?us-ascii?Q?XLGVCATaKWhqNsF3JxPQ+mSIZgk1LtPIey/vC+Rov5CY6zo2mvoNxWjtBNgS?= =?us-ascii?Q?ucS2mwi0lq5ioYhP331HaEiE4VoHIBl7FwQL8eG2lSsmFFXgbuaba5039KeG?= =?us-ascii?Q?e6WqegEOeuxxK36UQZNhoDQZ8/MogLEZZf7WhKcyHANVdJgiCarDhtn6m0mC?= =?us-ascii?Q?XaAbc3NlOe5W85Nuw2bTBU61?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f5145baa-6b6e-416f-1e52-08d98d58df7d X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2021 08:18:29.6882 (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: CmplkzlUwaReMQOCVi357dsStYRZmpgzZpD14gKyV5+QER7/zCmZ/S1o60gPE6yWY1D5vkl8MekTJAIVNpH/PQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5744 X-Spam-Status: No, score=-3032.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, MSGID_FROM_MTA_HEADER, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Oct 2021 08:18:35 -0000 On 11.10.2021 20:43, F=C4=81ng-ru=C3=AC S=C3=B2ng wrote: > On Mon, Oct 11, 2021 at 12:48 AM Jan Beulich wrote: >> >> On 08.10.2021 08:57, Fangrui Song via Binutils wrote: >>> --- a/elf/dynamic-link.h >>> +++ b/elf/dynamic-link.h >>> @@ -192,6 +192,33 @@ elf_machine_lazy_rel (struct link_map *map, struct= r_scope_elem *scope[], >>> # define ELF_DYNAMIC_DO_RELA(map, scope, lazy, skip_ifunc) /* Nothing= to do. */ >>> # endif >>> >>> +# define ELF_DYNAMIC_DO_RELR(map) = \ >>> + do { = \ >>> + ElfW(Addr) l_addr =3D (map)->l_addr, base =3D 0, start; = \ >>> + const ElfW(Relr) *r =3D 0, *end =3D 0; = \ >>> + if (!(map)->l_info[DT_RELR]) = \ >>> + break; = \ >>> + start =3D D_PTR((map), l_info[DT_RELR]); = \ >>> + r =3D (const ElfW(Relr) *)start; = \ >>> + end =3D (const ElfW(Relr) *)(start + (map)->l_info[DT_RELRSZ]->d_u= n.d_val); \ >>> + for (; r < end; ++r) { = \ >>> + ElfW(Relr) entry =3D *r; = \ >>> + if ((entry & 1) =3D=3D 0) { = \ >>> + *((ElfW(Addr) *)(l_addr + entry)) +=3D l_addr; = \ >>> + base =3D entry + sizeof(ElfW(Addr)); = \ >>> + continue; = \ >>> + } = \ >>> + ElfW(Addr) offset =3D base; = \ >>> + do { = \ >>> + entry >>=3D 1; = \ >>> + if ((entry & 1) !=3D 0) = \ >>> + *((ElfW(Addr) *)(l_addr + offset)) +=3D l_addr; = \ >>> + offset +=3D sizeof(ElfW(Addr)); = \ >>> + } while (entry !=3D 0); = \ >>> + base +=3D (8 * sizeof(ElfW(Relr)) - 1) * sizeof(ElfW(Addr)); = \ >> >> While in line with the proposed spec additions I'm afraid the uses of >> ElfW(Addr) here aren't universally correct: You assume that ELF >> container type (size) expresses an aspect of the ABI. While this is >> indeed the case for several arch-es, I think this has been a mistake. >> IA-64, while meanwhile mostly dead, is (was) an example where 64-bit >> code can validly live in a 32-bit ELF container (at least as far as >> the psABI is concerned; I have no idea whether glibc actually >> followed the spec). There's a separate ELF header flag indicating the >> ABI, and hence the size of a pointer. >=20 > Thanks for chiming in. >=20 > As of ia64 buildability, it works for me: >=20 > scripts/build-many-glibcs.py /tmp/glibc-many compilers ia64-linux-gnu > mkdir -p out/ia64; cd out/ia64 > ../../configure --prefix=3D/tmp/glibc/ia64 --host=3Dia64-linux-gnu > CC=3D/tmp/glibc-many/install/compilers/ia64-linux-gnu/bin/ia64-glibc-linu= x-gnu-gcc > CXX=3D/tmp/glibc-many/install/compilers/ia64-linux-gnu/bin/ia64-glibc-lin= ux-gnu-g++ > make -j 50 I didn't suggest the build would fail. What I said is that I don't think the code is correct there. > As of the actual functionality, ugh, I cannot find ia64 in my Debian > testing's qemu-user-static package:( So I cannot test. >=20 > That said, gold and LLD don't support ia64. > If we have a concern that ia64 may not work, the GNU ld maintainers > can simply not add ia64 support:) But you realize that I took ia64 only as example, as that's where I know ABI (pointer size) and ELF container size aren't connected. As per my looking at merely EF_MIPS_* in context of reading Joseph's reply, it might be that MIPS is another such example. But I lack sufficient knowledge of MIPS ... Jan