From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on2052.outbound.protection.outlook.com [40.107.14.52]) by sourceware.org (Postfix) with ESMTPS id 93D503858C60 for ; Fri, 7 Jul 2023 07:27:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 93D503858C60 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=BtFoo0qzL9UZ+CStdZnh4kHE1y6JQhiEIUfu2tXziYz+6NnqpwAqcHmzSV+yHKeGJbelSE93Tvj9quNOZrgQbjjt+39pfpwR8CU+FQxz0TWFpM2IVeZt0AN9XkI5sUifyvXAUddDMR1wu+AlnbWY38QkSBF7iCMB0qtfOWYL1yPyFBA+fcI7XfGqkHW6iUXkZIgbAhT++bLoK2s7CFNEsZr9rc/5Zbf6dvBTJu7v6oeGJx8gA3ftAtM9jVQHxjihd4athJu4/hCZVdyJiDuOXpQ2aqQ8AWBdB+5SKsHDcB4F1GA3HinWuWojwnZhS8cvPEgL65DiwkYQt8Qx21RHlA== 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=4Gf+aVCbkahfqBz4fAK5UbHtRNxSgLBCF2oRWVwBff8=; b=K2VhpdlcL0sdSA8MMh8/ZSdk/nK2OvIUCbulEs9EQAkqoOyrf12/Ip75HJ/4wFVRu2V96ZAb06kd/zEjTJWtxkvvKprNjSnLt6geZpfMTp3JBlj8gaAFJirs5uFi1ZHblnXoyvM6O1sGz0Ts2si5nWawQkqtMXMPtW4E7ImAxI5nTj3UwKGDxkFaj1843eKBvNgkCbF1ndfuZWu+3ZAPUBN0woiuu1MwIJ2Tu+OvsrDq/UQwwwyPrJmz90abEk9wffUTJp1g+103tnCoxxxQm9GQC6vS4ZJy5ZgkvDXZg5FwpsoYduPLNxZTEj9TCnRnoAVdr2vSxqF+kvh8l8eScw== 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=4Gf+aVCbkahfqBz4fAK5UbHtRNxSgLBCF2oRWVwBff8=; b=NdjlIwj3hV2iwtfOJHtVz0F/K5fOX6Wn270eUl/MbqTnmJj7jK9133ez9uSwiSB92t/KoDozlIFqFyArAbT9LWokrk5xQSzaioPlsLiIhc6ENgTF+RVjHj3d+6iBg1O/MCrhj1sXC09c1WQUkjoCQJ1SObKbA4OBpAUQheOnYsQ6+Vcy3/jViG4VBQAorq8O/igACdZ+FZkcmYRruj8Se0JNLYZdECsFCWN1zBV+4z0QjVeIQCYg9oWXfmw3jCJky8csvfaKQFy6wNpJXHExhatKcm5UH8zI5a9XQQtU/bjeMBJGSS3Wqbat9dhUXTvtLxI5BicaXVcny8ZMYuoROQ== 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 DBAPR04MB7365.eurprd04.prod.outlook.com (2603:10a6:10:1a2::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.25; Fri, 7 Jul 2023 07:27:20 +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; Fri, 7 Jul 2023 07:27:20 +0000 Message-ID: <82f0bb78-9a64-c614-4211-c9b05ca4719d@suse.com> Date: Fri, 7 Jul 2023 09:27:18 +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 Cc: binutils@sourceware.org References: <20230628231610.220112-1-maskray@google.com> <20230707055139.3ix2gotioz6dr2b3@google.com> From: Jan Beulich In-Reply-To: <20230707055139.3ix2gotioz6dr2b3@google.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0052.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::23) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DBAPR04MB7365:EE_ X-MS-Office365-Filtering-Correlation-Id: 647eb19c-431c-4385-ed22-08db7ebb9993 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sbh2OUP42g2N58jGpEKdIzd0IGt5ZFdaPmFScyEbLtaOw9GralbFki2OLNaM+JnYEZ1yC/s+SGzMHFKyr9WzW20e9xHXu5R9PtbjNMl9QAB6LIylfOWZ3ZHaUCxBWhmgf9lptAxb3PlT0b+Nqg2BnTqeYGC3polG56KIsq3hhZtRWbWXOA+kJMEIKiH3G7Fk8l7XAVByUsTR0ePpbwb8d4iocNYSaxHt+Y//9P12cdDTFY/SjixJba2dQnMwNgWIiGoR3p7QR19JiRZOwlv4aLPK1LiSXLFFi3MuuBj9J4pHQdD4CbALTRIyBYHqGd51aDlvXmkkgN+yCOo586fIM0rqDL6GgQoR1iZ7GI1DeE8GokE4LAx6B5vCs4OfCynn2+OgAXyQFQjK1tA+TszO3ORzkWJhpyad09blVHn2wRCvLcbFNJEM4RYgPtMrBhb/Iai6GrAgJb4JteWdsj7kxJEL+/LdKnxoBRavn4/lYswh8AmtX9j8nM50ymIx1GnYeHI844CsuM8zNGeeS6qb+/+7QCLTlfsJEEHXelSxEsrq1lsNjLof524Dbwvk2wheD79Rnr730DlyPNcj8L/zkkm4H3JOrTrrg8F6Fw9e5CUiadPFZtdnLcRytwKFHaH9VgAZriMTmfdtSpjRaKTA8A== 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)(346002)(396003)(39860400002)(376002)(136003)(366004)(451199021)(31686004)(66899021)(2906002)(478600001)(6486002)(8676002)(36756003)(41300700001)(8936002)(316002)(66476007)(66556008)(66946007)(4326008)(6916009)(6512007)(83380400001)(966005)(38100700002)(31696002)(5660300002)(86362001)(26005)(2616005)(186003)(53546011)(6506007)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SGZHWTZKTjFiMWxYOVFTMWNweWFvc2YxNHpUU2VqQU9hNmc5Vk1GUXFaOTIr?= =?utf-8?B?aUIyUklaUnhQOVE0YldPZGVqVFBlQmdnMjdpNHYvZ2Q2Y1ZxOE84V3c5d3BB?= =?utf-8?B?SEI2cHlhR0hhZ2k4YUlPbmpReitvNGV2SUdyeEdaWjhvWjBjRzJ1NmxyRkti?= =?utf-8?B?bUVrdVlBOFhoU0d3aTZGTzhZSHVydktnTVhQUnNBbmhQL0VvY3dyTmxvQVJ5?= =?utf-8?B?QzRUVzZjTnNJR21RWmpqRzUyZS9Pc29Vd0xTdEZxSWZPeEpuN3FmR2NaWXlv?= =?utf-8?B?bncwOVRRbnZ4T1NIb2VCSzRIeG4yWkUwb3o2OXl6MkpyNWxvY1lpKzhCVEY1?= =?utf-8?B?SjI3VnRNWStJdGpGWVpZZ0RaK0ZtOE1vKzNrdFN2NTNpbm51OWczdTBYd05k?= =?utf-8?B?a1lDUndCOHR6TDNvMlBmRlA1TmlXSWxwbElOYzJ6WkQrUGVVOXdkOWhKUUs2?= =?utf-8?B?NVo2R2wyY3IrbzNvbEdWRTVVQ29vUXk2dlBZVXFBUCsvOXA3RFluRlVnUU9Z?= =?utf-8?B?YkxnR2VJWnJ1NWIwT3lvZk9UaFJESkkyTVEyMHdDUzc1Z20xZWZtN3EzL1lp?= =?utf-8?B?OHB0QzVSRXBXUWJockhLdUdSUUhNNENhTHVaUkhtU2FEcmlMaEhqOTBkZUtF?= =?utf-8?B?UnRscUNQMWxxdGRFVldqTi93TTNja0hEdGFCeUNaMlhSdklteFNrbnVLdGpS?= =?utf-8?B?ampRZUlHemNzbm1zVlFQWmh3NUdxTlpzb1Z2TGhZK2txQnJnM3J6RTV2NnFi?= =?utf-8?B?RC95M0VGMXU1dFFmU0U2ZDM0V3BIMTNPcHRpRUUxVTdvVFRodm9nUUVTZGN1?= =?utf-8?B?NjJpZDhkcDFqaS93K1dqZXdPNU1uVGZlcDdhQ1FwYjBST1VtZFJnSVhyT1Fj?= =?utf-8?B?QzBxQmpPZURkRnI1Q1YvK3MydUw5dyswMUVYdlVQZFpkaUZISS9lV1hKMEx1?= =?utf-8?B?WkV4b0VGRllodjFXTWVEWUxodndUUWhOdkRMZU82NzljaWNxWUMrd2FxVkZq?= =?utf-8?B?QzA3L0lIeFVUYXZVZ2kxQXVNaWRCSFh0UXpkaVpCa3BPV2tQaGtBUEp6Kzl5?= =?utf-8?B?ZGE1NW12S2ZkeVpVbVRQRWErUVdXNFliSHpaNUg0dFdaR3lkMWdlUHFqZkhK?= =?utf-8?B?N0g4aTl4RkJrWVd2bGFCcDdUNXlKK21sZFBpRCtYUnZhNytObGQxRlkzbHBp?= =?utf-8?B?TWRwaXFmakt6YUxKVkVCcC9XeWtHbU1UQXZQUVBldS9sM3hTZllJSkxJSjBB?= =?utf-8?B?eVYxclZKWVBkWEx2ZldQSnJBa2pZOHpMbzVrTzh3enF1WjljTnYrYW9xVmhB?= =?utf-8?B?U2dpK2NDUXVWV282SExCS3lhTVFSMDc0ZWpLaHJ0Z2oyNUhxZWJCbTArNHJM?= =?utf-8?B?ZHpNUG5BR29Va0U0WHEyZk1ORkVEZHQ5cytvc2ZhREtJUVBINmVkb09WdXJs?= =?utf-8?B?V1V0dHdhZ2lpa1ljK1cwVXRIbkczTFY1QzVrWXJOZDdqdnZQQ2FhVGJCbzVY?= =?utf-8?B?UnJZSXVBM0krK3pqOTE4akE1aWJ0Qm9TRW5XSTRHWWQ4YW80TkdmNmh1ZkFC?= =?utf-8?B?aVBBcER4RDV2MVRTSHNmRExnak9xT1Q5S0pNZVdRTC9lQUtPMUZjRkFWUVBR?= =?utf-8?B?dnNCN01ocG1xdkcrY2U2VXpaTlptLzJDS3RLbGJDVmxBSWU0NVFNYVhKVVRO?= =?utf-8?B?d05aZ2xDdEZ1TjArVW0xYUJGclUwZlFhVkV4TzhMQUNwK3gvaU56OVNuSGoz?= =?utf-8?B?NkMzQVR5ZjAzbHJiL3BraWlybG1TNEk2Qmd1ekZpLzJNTW5tRzJRZllEanJh?= =?utf-8?B?VnhNRVR6T3BEZ0NsOEYvdndKK3ozcHdZRjBvTzI4cDR2S05CTlc0VWhzRTN1?= =?utf-8?B?Zkp2NDZheHhCVEF0R3RaY3ZkWEg3Qi9ENFR2TlMyZGQrN3JhRnU4cjFBNUhw?= =?utf-8?B?NlBsQW1Nei8xaUJCUW9sRThTYi8wM0kxUzNwNEdDZ0lydHJGcDBwSUVEV2VM?= =?utf-8?B?WTIrc2V5R0k4UWNUbTVYRm9WWmhPMmRjVmJJS01mblB6cVV6bE1YNzJTZU5M?= =?utf-8?B?OGlSaWN0d3RkamlZaFNYTy9MZllTUzBNUmpTRkxSekNtUmo3RVhXT3JtV2ZI?= =?utf-8?Q?OSWs8f818WuYoj+AkY4Kt+qRC?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 647eb19c-431c-4385-ed22-08db7ebb9993 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2023 07:27:20.5073 (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: 5DSn7tTahQjZu3Olt3YjOtu7Lm0OB2fdUNI79FAxk2S3zPtXFZB/lyR8VtmRkWMs/LVzR2MMR6l+Oa2XQEGu+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7365 X-Spam-Status: No, score=-3026.8 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 07.07.2023 07:51, Fangrui Song wrote: > On 2023-07-06, Jan Beulich wrote: > > Thanks for the review! > Uploaded PATCH v3 https://sourceware.org/pipermail/binutils/2023-July/128306.html It is perhaps worth considering to wait with sending a new version until the discussion on the earlier one has settled. >>> @@ -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. > > This behavior is tested by large-sections-2.d: objcopy > --set-section-flags ... without "large" should drop SHF_X86_64_LARGE. > If SEC_ELF_LARGE is set ("large" is included), elf_fake_section will add back > SHF_X86_64_LARGE. > > > ( > Note that we don't clear SHF_EXCLUDE (unfortunately part of > SHF_MASKPROC), so --set-section-flags without "exclude" doesn't drop > SHF_EXCLUDE. > rg 'SHF.*0x80000000' include/ has many occurrences. I have no idea how > to treat them yet... > ) Which is part of my earlier comment: You should not undo what the immediately preceding line does. It also doesn't feel right to do the masking-off of SHF_X86_64_LARGE right here, as the function has (aiui) purposes beyond its use in the course of handling --set-section-flags. >>> --- 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. > > Changed this to look like > > "..." > "share, contents, merge, strings, (ELF x86-64 specific) large" > > Ideally we should report an error for other targets, but I don't find a > convenient way to detect ELF x86-64... I think at the option parsing > time the target isn't known yet. The error can well be reported later, but potentially (and silently) affecting unrelated flags on other targets because of a wrong use of a command line option is a no-go imo. >>> --- 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. > > This is a bit unfortunate, but bfd/elf.c only includes elf/common.h. > I think bfd/elf.c likely cannot include target-specific headers. > elf/common.h already has machine-specific NT_*_* and GNU_PROPERTY_X86_*, so I > hope that defining SHF_X86_64_LARGE isn't too bad. I'm afraid I have to defer to Nick or Alan here; personally I wouldn't approve a change adding such a duplicate definition. To me it suggests that use of such constants in bfd/elf.c isn't intended, and hence things need arranging differently (which may mean a larger overall change is needed, to properly abstract the handling of arch-specific flags). Jan