From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on2049.outbound.protection.outlook.com [40.107.15.49]) by sourceware.org (Postfix) with ESMTPS id 937D63858D33 for ; Thu, 6 Jul 2023 12:15:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 937D63858D33 Authentication-Results: sourceware.org; dmarc=fail (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=suse.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aQVf+ZrHncrk3xtPumdBYLcnAKpJ1P0PWoinXowHSC/s5/n2RXpR/RKuoQ++a94qR7pzBuwKUf/ednpatXmMLjfZtHXWvY92SxSbjGq/sxq9Pc0jcQtOxhnp1x9guODRd6cKY0OF1JqP3PEnvNsn6gBzhB2YH9gTvsVJRU4R10FxM7YIdKimdotAHcxgj29PghpsYZu71vhC9+3lWsBiLYwjCC/gaFeZtEpt4TaJkOSl8gpH936QecKpqTXmF+wYiuvcz1sM9IjYIgVE7o9Cvh0gUExjOQi/dUm3buZngQmnnpodP8kBs6f/dh3EWEu8KjNz++5yRzOTtFjJaoLISQ== 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=gBVEe7vormnyZ3rAaJ8lpwaAMMSneDjOd/T50grpNuE=; b=dem7S6wXtvcHyfnqQ4ez/9MjdSYlZPuFImxHNG5waA0U3mhiEPeWJRyMUtobOyrnqxePlu/E7H/FuzD4nwK8Sto3qZEr7fawv8DfUZnfWWbNMu3kYx1jWZvG9tciP0WBKCiXJNcG9Ya58dZKUhdN6HWA1pnWhSwEA8yEPaFpoQWCIm11FUKJM09HpGD+qLfgdBzuFpE26A4q3tmowgDtCxdh59AmsoGkkg3YZ2WuFa0BqRK8iB5Jlz0a3GgUP/fMlPdkv7BBu6/DBOr6vfiN48WvQWNiOkZ7o4unPRLYSMZZf36OZzgVyiMKdK5a7rPdQD5rpjxYJqKe9qn5wESOsg== 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=gBVEe7vormnyZ3rAaJ8lpwaAMMSneDjOd/T50grpNuE=; b=y/L2tCyNliM7/qAy1HlQBEl6Ko3/pZIMm9gnYVj5rcxB/WyvM9A1HjwU0LQjk7VdY3Q8NafBrpsYxheYiA+vfaNrGJgT9nbpJJR6suF31kZM5ruI3C2fOp/E3rxc1gE/6q364x2777uvD34NPHGCm/G+B/JmGfuT82qmbb6lMSdP4+SnQpvSgrW/L0uDB3MTuDQJuRHCuunVGxmHtKCsgTUg8R9Wh5kgDEflMB8e7br+ZmirDNvCiGFdASn1z79+cCrdpzQrGalTUPeZAxsf3E6oEZPX4A2FIgUVK4fnGZtSzKHPY65aGFEUL4Q+Rk12IUaBryK9TfBdks56RpqgPw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by AS4PR04MB9241.eurprd04.prod.outlook.com (2603:10a6:20b:4e0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.17; Thu, 6 Jul 2023 12:15:53 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880%4]) with mapi id 15.20.6544.024; Thu, 6 Jul 2023 12:15:53 +0000 Message-ID: Date: Thu, 6 Jul 2023 14:15:51 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH v2] PR30592 objcopy: allow --set-section-flags to add or remove SHF_X86_64_LARGE Content-Language: en-US To: Fangrui Song References: <20230628231610.220112-1-maskray@google.com> Cc: binutils@sourceware.org From: Jan Beulich In-Reply-To: <20230628231610.220112-1-maskray@google.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR2P281CA0136.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9e::18) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS4PR04MB9241:EE_ X-MS-Office365-Filtering-Correlation-Id: 4eef48e4-72a1-4fa9-6abe-08db7e1abe4b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0rbJg4G8+eKlrnJZNgnQudnIfBukj6yFdEHgcAjeufEhgTGsom28gKSB/b3iqIKcQsAcyQDflButqD+LvkodXC2H6knvlcWO6+DPi5LKpU37sh9Uqb7lOAc5qYC6ANY5A1M3LRhc/DDY342Dlfzbnf0IuXxhEPXL1peeCA+y4DqF99+uqZ0DOFEu31MWwmwQdAHni63VDUkKQcgISftSAunoJyqbR1mAW/lTjGz+KKNVVOq0+JE/LB+XYSGpCAHZvudWe4Vdnzyk6DCwotiiAPfHDSmMaujP2FbeOWJU42m+J8FksiZxu9H8inse796B/61VtYYL+x3WMSRfpkxZv3Ff/97GFPTPB7h27C2vzS/0W5vejT3Z7PL/LvWeG8O3tyQpXPcJxHZOv46JrDHFUwToOANOpQTnhe7ga4Mun8Uv9bBJYnnwme0kD1MPug2lKnmAQMnRn5KfDuvvMA2f0iwYW92+TQikiRp4TUPUI7YlXaAKpQOWbBgAym3ABVAQ0PmXmQhEJkpQHvmtKKWRer96YUunVoAoBLQbaTnGl5rVIiW1Jdc8sOT++C0ffg6z+AV+F7na/vtWQWX28z7AtVshyGwgan6HeZ9sgGE/iNg+kxDDiWr9nFbYzCFaKge5SAQXDtqh4FWj1g3RCGASPg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(39860400002)(136003)(366004)(396003)(376002)(346002)(451199021)(4326008)(316002)(6916009)(66556008)(66946007)(2616005)(8936002)(86362001)(5660300002)(2906002)(31696002)(83380400001)(41300700001)(8676002)(66476007)(478600001)(186003)(6512007)(53546011)(31686004)(6506007)(6486002)(26005)(36756003)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bkpPM1dEK2Y4WWsrN0JvUDNQUXpoVjFORnNLZUZLTmNWVFUrV0Q3V1BUcmlq?= =?utf-8?B?aUNEOGtyL2lpRFVpRlluN2FmQ3BjT1NvS0NJemJsMVNhLzhNQk9PKzRmN3BK?= =?utf-8?B?OXM4ajZWY3IyL3dRSDJ4Z2xTdFBNMkpIVWpwam1DM0ZLcGFkVVZwb0VaUThN?= =?utf-8?B?ZnZpenl2eXhzbERTb3lVYzZnbDkvM3VVM2VOWWhsaTdYRmVYa3RmcTlPVnYv?= =?utf-8?B?N0pLR1lVZnArWDZYZSsvRHBjQkVKRlFodFBRRFU0eC9XWEdRQ0Z1SVhlWC9Z?= =?utf-8?B?RXJzdm1HWmcwV1hXV3ZuOThNVDRKNy8yS21pVk8zK24rTW1hVVNNZGs0SWRY?= =?utf-8?B?aEdVSkRQT3dOanNWWTZ3cy9lTlpwMnJaN25xbFdudzZYSnBUTldGZkVaWTgv?= =?utf-8?B?UXBabjcvb2NpbkRNLzYwY0k0ODNUUm9iZG1uYnFScHp4YnpLZUs0SktlNnJS?= =?utf-8?B?bTd6dTE3c25zcytvSExZT0Y4a2JxYVZVV05icVRqMGVRMkpZczRWMEtyOW1s?= =?utf-8?B?Z2FDOTVnOEtWS01nWDhEbVMrSjhCZjNUU0ttOE95ZmhSNVk0OWtpRE9ZNWFE?= =?utf-8?B?ck9oWWJnMFB2THN5THdsbytmTzQwVTU0N3BWSHFCRDZJWFJMMHlLNTF1d1RM?= =?utf-8?B?Uzg4dFRoMUluOS9UcHBySVhsVWtQaHlBejR0dmJZUk5Vb2loN2NqMG9DM1Bq?= =?utf-8?B?c2FFRktONWw2SlRPak5FaTdPcHVVNEl3aEtyWnpTVW9PSG1uaFdLZXhzSi9h?= =?utf-8?B?Qjh6ZmEzRnY4akpwWTRNRVROaDlOcTlsdi9vZzVNd2ZCMGhrUlhMcGpqeC9o?= =?utf-8?B?WDhTQ0FRS0dIOENLUWxYMGpqTnJ3RnJEeGU3MzFnaTNTNGhkZGF2OXkxZC91?= =?utf-8?B?clc3RW9UWmg4eXd4ZFhick50dE9jSFZmQitpUnArNGtxK1krU2NQaEZScXhj?= =?utf-8?B?N0dyazgxbi9kazVDampmOGdQcVQ3dk5hSXplb0JRaGxYaGh3SnRvbjR1SG4r?= =?utf-8?B?SG5EcWhqUmxDM0hjRFJWT0dKNkpyUmF6Y1F1YkpwVFFXZlZNdGlMejZ2ajd6?= =?utf-8?B?a1BwRGsyOEtLaEhXN21aWWJYWmIzNW14RWxZbUtTUzljSUlsMnNHVGI2RXcr?= =?utf-8?B?T0hSVVBFWW8ySG5NZkQ0NUxUc3FpZ1ZJc0swcDd0UTFnTGhVNE5SOEFqYTIr?= =?utf-8?B?MGhLM1lJU2QybkVOODlqRnVpUzdaY202eWFWdmF1UFhVc0ozcjNKcy9veEZH?= =?utf-8?B?b0FNa1ZWV0s4eTN1aTAwVk5OaUw5NGhOVVZoWVZUN1NJNUxVR3lBRCtRQ1ph?= =?utf-8?B?ZFFTbjk4VWsxQVRBakdOdzVDSWp1L3pqT2lDNnhIYm9yb2NLVm5XMnVDMXpz?= =?utf-8?B?VjE4eDR1MmpTOU5keVozYmVHL1hOZ2RJUWNXUXpObjB5anJQRVk1WExNM2Ro?= =?utf-8?B?TmJud05MZnJwMkhOSFRnbFdIR2pTektzU2RWKy9keS9XTkQ0TUdZOHlJbzZB?= =?utf-8?B?bU5ndXhjak9UdzZFdEw4ZEtheGgxRjhvRC9vWmlYU1pRSFFpR24rT1FndUJO?= =?utf-8?B?TktlMVBLR05qZGt1V2lnd3pIQTRRcVlKT1VjZjBReXRYbWkyUStJM29MTUVr?= =?utf-8?B?VnFhUCtjeTBVcUFwc3Z4T05JazlhNmdjcDhWRVlBSzlxSzF0Q0FnaVNlb1FY?= =?utf-8?B?L3pvbjVJMDlYQ1B5Wk1ZUlMzSTUrTURnV2VlSzd5bmhBeUJBVHFFMVBvNy9h?= =?utf-8?B?RVJUeklOaFFUNStNcU5OOU9CR3ZHMU9MR095b2hRR0s3VllSKzhTZFVvait3?= =?utf-8?B?QUxmYUoxQUtJbTg1NFBGNDhlQ3JhSHlLZUlaL0VBTHlhRk5kaEF0REFUc3pM?= =?utf-8?B?RlF1aEtndUFnVzFXMFRZc3VlcXJyQnc5S25ZTEVKREdMOGxDRWswMVk2RGtP?= =?utf-8?B?SkZSR08ydnhiNis1QVIyNXk0cFAydVNITFlyTmFwRThQMC9KTUdobHA5SEUz?= =?utf-8?B?UnZxQWJCRlZXSzJYMHNSTGdjdnhPV2p1aVAzK1dGaUNHdXJ4bDR6d1M0U0ZU?= =?utf-8?B?NGZIUVVSN3IvbVFoYnNoVHFqWGVnNDNCTFdIVzFGbGQyQnBnYTU2a3hSa1cy?= =?utf-8?Q?OXXvbBTlsQ8orDzQfjpMtnD8c?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4eef48e4-72a1-4fa9-6abe-08db7e1abe4b X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2023 12:15:53.0819 (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: VGrBhlUNAARl+I+8rxRQGrj6LxRA7RFjzjOL1T6b+W/I04kWlr/u9QbNP5XARScYXE3BXzAfJ7+MMPmID4So/w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR04MB9241 X-Spam-Status: No, score=-3026.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=no 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 29.06.2023 01:16, Fangrui Song via Binutils wrote: > --- a/bfd/bfd-in2.h > +++ b/bfd/bfd-in2.h > @@ -633,6 +633,9 @@ typedef struct bfd_section > /* This section contains vliw code. This is for Toshiba MeP only. */ > #define SEC_MEP_VLIW 0x20000000 > > + /* This section has the SHF_X86_64_LARGE flag. This is ELF x86-64 only. */ > +#define SEC_ELF_LARGE 0x20000000 Is this taking the same value as SEC_MEP_VLIW and SEC_TIC54X_CLINK deliberate? If so, the comment below on binutils/objcopy.c is yet more relevant than I first thought, as the flag could then unintentionally become set from (mis)using "large" there. Also this is a generated file; you want to primarily edit section.c if I recall correctly. > --- a/bfd/elf.c > +++ b/bfd/elf.c > @@ -1034,6 +1034,10 @@ _bfd_elf_make_section_from_shdr (bfd *abfd, > if ((hdr->sh_flags & SHF_EXCLUDE) != 0) > flags |= SEC_EXCLUDE; > > + if (get_elf_backend_data (abfd)->elf_machine_code == EM_X86_64) > + if ((hdr->sh_flags & SHF_X86_64_LARGE) != 0) > + flags |= SEC_ELF_LARGE; Such two if()-s want to be joined to one, imo. Also style-wise it would be nice if this and ... > @@ -3351,6 +3355,9 @@ elf_fake_sections (bfd *abfd, asection *asect, void *fsarg) > } > if ((asect->flags & (SEC_GROUP | SEC_EXCLUDE)) == SEC_EXCLUDE) > this_hdr->sh_flags |= SHF_EXCLUDE; > + if (asect->flags & SEC_ELF_LARGE) > + if (get_elf_backend_data (abfd)->elf_machine_code == EM_X86_64) > + this_hdr->sh_flags |= SHF_X86_64_LARGE; ... this could match (in order of checks as well as in whether or not != 0 is used on the result of &. > @@ -7940,6 +7947,9 @@ _bfd_elf_init_private_section_data (bfd *ibfd, > elf_section_flags (osec) = (elf_section_flags (isec) > & (SHF_MASKOS | SHF_MASKPROC)); > > + if (get_elf_backend_data (ibfd)->elf_machine_code == EM_X86_64) > + elf_section_flags (osec) = (elf_section_flags (isec) & ~SHF_X86_64_LARGE); What is this about? You're overwriting what the previous statement has written. > --- a/binutils/objcopy.c > +++ b/binutils/objcopy.c > @@ -797,6 +797,7 @@ parse_flags (const char *s) > PARSE_FLAG ("contents", SEC_HAS_CONTENTS); > PARSE_FLAG ("merge", SEC_MERGE); > PARSE_FLAG ("strings", SEC_STRINGS); > + PARSE_FLAG ("large", SEC_ELF_LARGE); > #undef PARSE_FLAG > else > { > @@ -807,7 +808,7 @@ parse_flags (const char *s) > copy[len] = '\0'; > non_fatal (_("unrecognized section flag `%s'"), copy); > fatal (_("supported flags: %s"), > - "alloc, load, noload, readonly, debug, code, data, rom, exclude, share, contents, merge, strings"); > + "alloc, load, noload, readonly, debug, code, data, rom, exclude, share, contents, merge, strings, large"); > } So what about someone specifying "large" for a target other the x86-64/ELF? Aiui there'll be no indication whatsoever that the flag specification didn't take any effect. > --- a/include/elf/common.h > +++ b/include/elf/common.h > @@ -588,6 +588,8 @@ > > #define SHF_GNU_MBIND 0x01000000 /* Mbind section. */ > > +#define SHF_X86_64_LARGE 0x10000000 elf/x86-64.h already has such a #define, and that's imo the only place where it should live. Jan