From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2057.outbound.protection.outlook.com [40.107.105.57]) by sourceware.org (Postfix) with ESMTPS id 7C52F3858436 for ; Wed, 27 Sep 2023 06:57:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7C52F3858436 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=IDmrPLeoqq9tngjiU3zWhjiqGENyCCW+Jg7KGF5oSh1bFGEWCTaZ/hW826RxoksN3n1DzD401ccNsC9xSkwnk8a5vK9415RLtvYrPWVgZ95Vet5kczwZv5iWMgsziHKvEN396IaCGfXjA4jq2yLCpparvR0DLEDtVO7rTL1PUC4P09sl9A3g1K0NTYNwRRWYn7JEasLl6ntFvXRKsajbbFWlXD2Lfm9uWL8kvaEcmLv26nORFvLf7rpBi0XKSN6tAIRI84a8TJZ7D76pVnbK7cc7/AlJJymfJV9j+OAHMusyx2aEh1kRiqScYrIvMSf1bm89fAKQJRtCvLHZpB7mZA== 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=kLECk56FAHZ/gKNaSs4KPv8qHNbKZF71qgWgxOrXyrY=; b=QrwtjhxEpM6FgohKSDsiX7tmeKvZye/GDhiSS11spr33QbQ7pGn8KqlKq/PSb4Fgr+loTlspr1zoHYfDxjQsZEa5R6nI45T4B9yd2HnqtYb8p4lPpPmkl6MdjcxQbOxIaA9sijYaT+5SuZ+RAaVrAxY4URdLelG9qATs+CZdJDiUIm5zQdbSdfx1FXoQulKuMjl3E+ANglX+1VRC9q2XzSiFjMvW55H856QpFZVZOXcKNna5nU7ScAxduls7na3pkD7v9A4CnRuJQCKVm+VV2rtBYWXWIxdNJiTiFFz+8tDi37rcC1KRy/wy7DxXfN+2A+Tc2m6c51qEJ5PxSwy3/Q== 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=kLECk56FAHZ/gKNaSs4KPv8qHNbKZF71qgWgxOrXyrY=; b=NJGvSRJzaq02TwxVM87RnYIMijhcKrCNUkSSZlVKNsqhWIyUSaX9gRWfzS+VLWueD6juwpBFfF4085DrDPNVhdVjgDBJwXYAKKVVWs4j8/ncCuH1PQRFXKpygNY8eUe9qhbkD0NqB2hsKzSDvNAWjsfFxYQ9h7dqDY9WvCAXwX05IaWGhobQ6imEySvK99JoY4ZjXHHF3fyQr3yeqrB6R91v8A1oEcaZyEMpfY/Pt1UUVI4J35nFYEdlcEYMST8pFlFxYQJsNVrnn/J60o54gEr72KrRLr2sAMw6u7TAm5+Cy5Hzd4u9z1Wl75SkYrJj2/rfYt4T1QOeoR3Uq+F1+g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from AS8PR04MB8788.eurprd04.prod.outlook.com (2603:10a6:20b:42f::21) by PAWPR04MB9936.eurprd04.prod.outlook.com (2603:10a6:102:38b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Wed, 27 Sep 2023 06:56:57 +0000 Received: from AS8PR04MB8788.eurprd04.prod.outlook.com ([fe80::afae:3fda:c84d:bcdc]) by AS8PR04MB8788.eurprd04.prod.outlook.com ([fe80::afae:3fda:c84d:bcdc%7]) with mapi id 15.20.6838.016; Wed, 27 Sep 2023 06:56:57 +0000 Message-ID: <86209ea1-7ae7-b14a-3a26-c9454caf5c32@suse.com> Date: Wed, 27 Sep 2023 08:56:55 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH] x86-64: Add -z mark-plt and -z nomark-plt Content-Language: en-US To: "H.J. Lu" References: <20230926161354.312545-1-hjl.tools@gmail.com> Cc: binutils@sourceware.org From: Jan Beulich In-Reply-To: <20230926161354.312545-1-hjl.tools@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR2P281CA0097.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9c::12) To AS8PR04MB8788.eurprd04.prod.outlook.com (2603:10a6:20b:42f::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB8788:EE_|PAWPR04MB9936:EE_ X-MS-Office365-Filtering-Correlation-Id: 69753717-5580-4cbb-53b3-08dbbf26f0e4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YVsSjuIS478CJojhE8OD0Bj+ABZA7On05LGCf+S2y2IHLEYMsa149b9oLwcHZ/gt5ErxG6wpRzbELrmtDPq3ybPfiOAwlyKTq6V7TfhSA0atmaymUiDeL1AniN9bQ6hPrxfOILByLze5/qtlK4/LzteZQ/gOCp5NoQ/AXcoOYq/S7vAVqf/VX+aSmBNhlb9IC0j3RivH4hlJfyE0nJfybCfkVZZ4DCyAZaFsLL59+jwl79oiGzho05IZp0P1tuy3RjmmH/BUAN34kmn6CBYi52G5rUin3q5X1Tab+2KrdQpUME6fRMTfC+iIHwftMNLsMUe/oOHB90e920uNVhgUYhjOUuQAsHOr+VSllnfDX+FnHP0TUtUI7ESUpBts452z0v8M9yi2jh9OZ4TePKQbMhIBQDEC1P7MLAjej67Tr7vvFDwm7u75+4RWZLwN3CRVhfZMpW1fTep565iuk3jLRlnGBweeq7kanamud8LTkPFDpQTEOXsSTl9pPq8uEDRj/oXW2n8imDlNktAU+WBPPuLRE3z8RBsbaogh1xucppPsiOja7BlU8T/ZugY/b7J8Wng5TvaSmygQiLdjQQLN/B0Wt13kUsYZqY1gw4h7GhosOZmriQAAsbsm6i4yyTxL05QRqrPJjEuKftSQ5soc0w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8788.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(136003)(346002)(376002)(39860400002)(230922051799003)(451199024)(1800799009)(186009)(66476007)(66946007)(66556008)(5660300002)(31686004)(41300700001)(8936002)(6916009)(316002)(4326008)(8676002)(2906002)(966005)(478600001)(6506007)(26005)(31696002)(53546011)(2616005)(38100700002)(86362001)(83380400001)(36756003)(6512007)(6486002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cTMxdlpuajArWEV1QThiWHJBZ091K0lFNkl3Y3NRclE2OTlLd0tURWN6bmtZ?= =?utf-8?B?OGhGdEcrbTJ0U29TVGk0S3piS2Y3YThvWDRGelVuNndscDAxNm1VQ2tSRUo2?= =?utf-8?B?cWgyOUhVMGtPZWl5bWdjTlArRHdVR3Fad1UyRG4zSENMV1RZWTVmLzlHQzBW?= =?utf-8?B?YUdtTk55b1EvM0hQVDNSZzlGOW50TUMxQU4wQ0MvY2tRRkhtc2dFeDkrOUVr?= =?utf-8?B?QW5aamNKb3hVOFZZN0l3b1RsVUNSUEdLNlUxeHFaNmhnWlBpTjJJTXpaZVFG?= =?utf-8?B?VjNkSndqeWV6Wjl5YjVKdzJOdFZ4MDJkTUM3QlRpSjMvYVo0ZlBnRWhlR0ZH?= =?utf-8?B?RDNTM0MrSlR3Nkt3NUI2d2pQYkNQaDVPUjU1UGJLYUVoL29qcldQNVlRV2Q4?= =?utf-8?B?TGJyVHdKbzVmaml1OEdIdG10anAvOXdHWUtQOGhKaVgycjdRdENBb05qUlBH?= =?utf-8?B?bE52dTY1RTZSYWNLeEY4VEh5V0c2SDk1VDFycGlnWFNlU1ltMDR4UUdpZ2VC?= =?utf-8?B?NmNDNzF1YUZCME9QMHBwamMyQkNZUGJpbFJsaHcyUmN5SWVxR05aRTRtckNw?= =?utf-8?B?S0lpVEprbHVoMnZOZ3J4QVhhbVBmK0gxUWUxdjNIQkt0Z1Y3YytxdWQrdlNo?= =?utf-8?B?OXp5WkpFTE9GMjlMM0dzRXRuU1JUcGl2VG1mWmFWUDUrbDloWHRCMHRLcWRW?= =?utf-8?B?NTA3eHlBdWNXc0xmd3FLajlLSzQxeVV3c21XbmE3czJ3Q2lYWUNxOXhPSkFW?= =?utf-8?B?cE5LaU8rYXpmazd1a0hJQU5mekF5ZnRhQnlPR3NObld3TDRVOE53Y2pPNFNZ?= =?utf-8?B?d3BFbHp1VXRMODdWTVBuczlMRGp4eXIzYmtTME9RN2lEdDJ3MWlJTTg3dFNm?= =?utf-8?B?MWNzcTI5ODAvQzh6WjlkeEVYc2YwWDJoYy9ubThPZElickJMbEJXdHI4dUFt?= =?utf-8?B?aHNocnErcWIvTVZhZzhxUkRXRjJIRk5teEM3RUtaNkJZbFB2cTgvc0FOY3Mz?= =?utf-8?B?bzgrTGNzTXlPSUo0RDNQUnhndmp3d2pJVnp3cE1qRVFER0xISXp0Y1FlL0RB?= =?utf-8?B?QkR5ODUvVHNSMTNiRUExWjU4WVBVTGU2dUQ3RHNzc3FIMXNyU2Q0QVVORHMz?= =?utf-8?B?S2hrTkdoSDNBMVI0OVhHWlprbEhpUFBNOE5SODBKVVM2UTU1MXRIb2d1VDJz?= =?utf-8?B?UG1nemxxc1RueFBubkpqZFRZUHFLekozSmcyUkhkdEppb0JOQ1FOcUhZOTkx?= =?utf-8?B?UEpXTnZFaHU0YTc0OUE0NEc3eWJhNlcvZDdtUVd5Q0kxcXgxOUFYR3Z5MkVB?= =?utf-8?B?SVZmYldpdksydlFpQXdEZ3ByeHMrVlkwTmc5OTJnVTdXd05HS0xPOUtjWUVJ?= =?utf-8?B?SUJsS2F4Z1hwcCtaU2ZhT0lwZHA1Zmc1YVhNVURPcks3WkRYZGpLcEpwdERP?= =?utf-8?B?UTMyRDd1WTJYaUVmQXdzSUFMVU1iSHdHbnhwU0Zmb3k5Rm85czJZTStmUXg3?= =?utf-8?B?VCtrbFkvOGc2a2xKRmQ0QThlekhoWG84OVhTdU1VekNmQzBRWG5SZ2Jlejkw?= =?utf-8?B?WnJ5OTdxTm9xbHZhTFJYQ2pCZ1ZSS2RtZ0N3ejRGWDR6eGV5TU1NYXVGc3pR?= =?utf-8?B?NjRseUlLcnRQaG1ibWlGY25rWWV6YTFUalJvYXVML0p4NEQvelRXRVQrNytE?= =?utf-8?B?bXdBZktOaHpsYlpXaHg5bWNtOEM0VFJhL2ltVVNBV3QyV1J1cjlDQVA3eFg2?= =?utf-8?B?ZFR0bFAvWTlWR09mejlTNnYwdng1NU5Vd0RxV1JrK1M2VTZwL3RCUkM5SWRT?= =?utf-8?B?RXZrSW43aGY5R1J2UzYvdlBVZkoxZlF0UklBVGZRSmM4ZHVGcXZTUVMyOTlN?= =?utf-8?B?V0loOEYrU3lzOHZBRjZ0Y2NvV1lmbSs5UU02WGUxUGVGYnhMK2o5QSt5aVZy?= =?utf-8?B?QXZ6bFpuRTZ3c0hmSHQ5Y3l6UzZ2eVU0SzJVUXJSUlRkb3lYSjFaZC9ZQUwy?= =?utf-8?B?WjA0NWlXTWFLZVRwUlkyUnpFVXg0SXhaN1hnZzAwL1VUOXo4YmtCT3hyMHVB?= =?utf-8?B?aDBEMHZXZlUxUXJGcStEc0RqL29jYnM1RVBUY2lEajJ1NmFqeXc5UWE0dExH?= =?utf-8?Q?yFkCR/MGD18tstfRCqhFScknv?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 69753717-5580-4cbb-53b3-08dbbf26f0e4 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8788.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2023 06:56:57.5120 (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: GoHOwNl/fjAR0xINSroNmg2nQFogAbD5zy7qCdXHBRyR2yI2ujlWcdYGWu1fC73HTr+A1pGDi5/1ADYThng9WA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB9936 X-Spam-Status: No, score=-3027.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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 26.09.2023 18:13, H.J. Lu via Binutils wrote: > The PLT entry in executables and shared libraries contains an indirect > branch, like > > jmp *foo@GOTPCREL(%rip) > push $index_foo > jmp .PLT0 > > or > > endbr64 > jmp *foo@GOTPCREL(%rip) > NOP padding > > which is used to branch to the function, foo, defined in another object. > Each R_X86_64_JUMP_SLOT relocation has a corresponding PLT entry. > > The dynamic tags have been added to the x86-64 psABI to mark such PLT > entries: > > https://gitlab.com/x86-psABIs/x86-64-ABI/-/commit/6d824a52a42d173eb838b879616c1be5870b593e > > Add an x86-64 linker option, -z mark-plt, to mark PLT entries with > > #define DT_X86_64_PLT (DT_LOPROC + 0) > #define DT_X86_64_PLTSZ (DT_LOPROC + 1) > #define DT_X86_64_PLTENT (DT_LOPROC + 3) > > 1. DT_X86_64_PLT: The address of the procedure linkage table. > 2. DT_X86_64_PLTSZ: The total size, in bytes, of the procedure linkage > table. > 3. DT_X86_64_PLTENT: The size, in bytes, of a procedure linkage table > entry. > > and set the r_addend field of the R_X86_64_JUMP_SLOT relocation to the > memory offset of the indirect branch instruction. The dynamic linker > can use these tags to update the PLT section to direct branch. > > bfd/ > > * elf-linker-x86.h (elf_linker_x86_params): Add mark_plt. > * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Set the > r_addend of R_X86_64_JUMP_SLOT to the indirect branch offset > in PLT entry for -z mark-plt. > * elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Add > DT_X86_64_PLT, DT_X86_64_PLTSZ and DT_X86_64_PLTENT for > -z mark-plt. > (_bfd_x86_elf_finish_dynamic_sections): Set DT_X86_64_PLT, > DT_X86_64_PLTSZ and DT_X86_64_PLTENT. > (_bfd_x86_elf_get_synthetic_symtab): Ignore addend for > JUMP_SLOT relocation. > (_bfd_x86_elf_link_setup_gnu_properties): Set > plt_indirect_branch_offset. > * elfxx-x86.h (elf_x86_plt_layout): Add plt_indirect_branch_offset. > > binutils/ > > * readelf.c (get_x86_64_dynamic_type): New function. > (get_dynamic_type): Call get_x86_64_dynamic_type. > > include/ > > * elf/x86-64.h (DT_X86_64_PLT): New. > (DT_X86_64_PLTSZ): Likewise. > (DT_X86_64_PLTENT): Likewise. > > ld/ > * emulparams/elf32_x86_64.sh: Source x86-64-plt.sh. > * emulparams/elf_x86_64.sh: Likewise. > * emulparams/x86-64-plt.sh: New file. > * testsuite/ld-x86-64/mark-plt-1.s: Likewise. > * testsuite/ld-x86-64/mark-plt-1a-x32.d: Likewise. > * testsuite/ld-x86-64/mark-plt-1a.d: Likewise. > * testsuite/ld-x86-64/mark-plt-1b-x32.d: Likewise. > * testsuite/ld-x86-64/mark-plt-1b.d: Likewise. > * testsuite/ld-x86-64/mark-plt-1c-x32.d: Likewise. > * testsuite/ld-x86-64/mark-plt-1c.d: Likewise. > * testsuite/ld-x86-64/mark-plt-1d-x32.d: Likewise. > * testsuite/ld-x86-64/mark-plt-1d.d: Likewise. > * testsuite/ld-x86-64/x86-64.exp: Run -z mark-plt tests. Don't you also want to add text to ld.texi? There it would also be made clear what the default setting is ("off" aiui). A related question would be whether it would make sense to allow configure time selection of the default. Jan