From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00089.outbound.protection.outlook.com [40.107.0.89]) by sourceware.org (Postfix) with ESMTPS id 801773858D37 for ; Wed, 20 Jul 2022 13:43:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 801773858D37 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gQhnCFkMNjzJvXDGq2GkutXbM3KIoQZWQGkV96xTsdWgcdup2D0mGIPz3wnDC3o6rYcTFoR5MSDk0E+S9+u4WMOpUoQzOv9sD7/ls8fBseOmBz8m2j7QNEQVHL/oljRz/+iuN9mdVKkuHIbwdbUnYTQG//H9Kr3a6RAMyShYZwSrIkTyYjrBZG88BkoMZfAlHJpSvfA7lAGcGb37lY9tG3f1PEeBQ46fvl1nRaYvOiGWDhCuB18rkmNuFZkvF8OhKNeFUjR6uGkxFEaxxC0NC5zEeiGq/6C+sx9K3fkmbe5TS0nCh4zQ7/pdr1xxQG6M47W9U4qC4YQdiw/pLQ+5Xw== 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=XfotniSzuoCpkBHd7p13Jftta1n573DxD4uVX1v2K6w=; b=HmmOfIxnlxmSA6gFSk8VakKEBQJ1I/JsK8CmFbc+3XswfoDdNkhWU83ZfrxwXZQz1ZVFsgK78uqNIPjQAsRefT+z312Wp2l3Yy8OzEzDfI6sSPevbWckvTN+WEvhZVUdDZJD7qsOKyk/UV4hGIpG7Ppr6QxFETUTZRT96J6IGLCJdK9qG5eZzkFJhYdDMLJWuMEaJSKDp+kb4oEOuwcWYTL1XXU1TFWRyNNjrNm5QUY4VwV7ea3ly44oS6WULKBOVunHKht5bG/Y6frWPptbQDQhn1eI0279MSuMqwp9dLfnaXdDjGn84RQnsjC6tIM81nDZc1pseRw76psJJV5p9w== 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 VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by VI1PR04MB4431.eurprd04.prod.outlook.com (2603:10a6:803:6f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.23; Wed, 20 Jul 2022 13:43:56 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::60ad:4d78:a28a:7df4]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::60ad:4d78:a28a:7df4%4]) with mapi id 15.20.5438.023; Wed, 20 Jul 2022 13:43:56 +0000 Message-ID: Date: Wed, 20 Jul 2022 15:43:54 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH] ld: Add support for a new option, -exclude-symbols, in COFF object file directives Content-Language: en-US To: =?UTF-8?Q?Martin_Storsj=c3=b6?= Cc: binutils@sourceware.org References: <20220719203330.1189542-1-martin@martin.st> <65b20943-0c1b-28f6-6f57-d3c4b8a9b75f@suse.com> From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: FR3P281CA0137.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:95::11) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ebd38c58-94cb-4da2-8e3e-08da6a55e444 X-MS-TrafficTypeDiagnostic: VI1PR04MB4431:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8VMffeV/I8lA0BK6mMSZg1GBg0xHgVe8bUda3dNFhYJcYsO5ec/LPs8TYp2f2wwGiEtfAUqf9rZqK57XPS3oKBbe3I+DP+5b8x02NLAi3tJRQNCo34xiOJmxgkTxUqjZDhyDFeb8MaIQ2C3SUhXqguq83iLd0sSnwoOT1d30gbR5Ts0m8ggIsa29KcDE2aq4tstSOoDoEQcQMfaQXQQCkDmLribz5T5PztNQgfBTjp6TaHCfIm35dJrvwdPIquX7yrIZAbs5WSjr3+rGXBrlIwtsYhtU632nywVAZqJTY679F6gWnbyFUqV6gILgFmPhyhtyH7mKItNr1AjzOsdRHc136x9ws+akz58eZizi/hisECQYxfMdgcEd43Sglr3iWhsFFVzWDl+w7I/RTj6xVMhNRihD2aJQrUCaobqMwISLe6N44ZU6M/b6f7kcMqixqDXpdS01r6mv/4eQRX99MJC4snuXSVHPPvh0QB5KCIjlyfHJw9GGRVjqXdunK/2qvaEB4vnvFAWQZF1y2PeYP8Cue6tOuJdSwSC+/f2Ea9AcGHoTssn9S+6KYaC2pHP8mctJNeUtAHnSRYkIZn81UEuGOzbCv+S4xKe01+Kw6biS4hHPU/Xa/yKnLWHqAi6UE5lSIUYym7QIbOj1dgSX92u/vzMRL0XXxlqpt/ATn1J82OaCCV6YYXNkLFnSRcXgDzUPqVwiuXWKRL4f/TcvNt+F5YEfEcGtSMpl49JAKwimSDsbqTgRFOj7r9P8YYAw6i1wsa9gFfk46UBXEie9xqxnSuDPoU71Wzx+82ymqrRZksIMyKVsPY+3mzQfdY24LK6h42+lTM+/1z4DGexRhg== 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:(13230016)(396003)(346002)(136003)(366004)(39860400002)(376002)(4326008)(6512007)(478600001)(53546011)(6486002)(86362001)(2616005)(26005)(186003)(38100700002)(6506007)(41300700001)(66946007)(31696002)(6916009)(8676002)(31686004)(36756003)(5660300002)(8936002)(2906002)(66476007)(316002)(66556008)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?b2N0US9PUVlQbDZ1V0xIZmYrenJ2TVdNaGVYYlkySG9KVUZPTTlmZHlkNHND?= =?utf-8?B?Y0dnL0xveDNqMHFFMElGdEp3c0M1QS9zQkZPQnU3U1VLZldWZUw2QmhWaHNK?= =?utf-8?B?TzNuemc0OUxEb3dBQWlpRGdUUHQ3cDNqanpSNzBaSGdXU2lmcEhDN2FPK0hZ?= =?utf-8?B?bjh3Y29aMUlmQ3pyQlRYaW42amN3QndBeU5zWWkwOGF3RDk2MDM4Zkl5dkl5?= =?utf-8?B?VkZWYVFwR2Y1bzBtajIxZ2h5L0ZaWEtrNjBHWXdKRHpnQm1kUGRtbjFiMFB2?= =?utf-8?B?NFpDd0VzUXZkNUZhdlBXVUJUcEVvSUJ4OUYySmt0UzJqSSt5RjU3MlhuZWZi?= =?utf-8?B?QWVnUTJITW1zazVkc2dIbm9od1RodlVYdFlEMitvazl6NXJobVVOdGthZ3Vq?= =?utf-8?B?NHRTci93ZnVSZFh3K3BNSm1xL1JzdHNZWGx2Smc4c0t3MThvSG1SSTFLQ2sr?= =?utf-8?B?Tlp3TGYybHNMZjMyUWxIZ2dwa0VOWnNUcjVjRUVaMnFiT3h6OGEyaUJYSkJm?= =?utf-8?B?REhYQmozeFJrS3YyRXdoSUZtdUdja0tGSklSV0tScVNNcVQwR0lhTmx3WUw4?= =?utf-8?B?NzNLYXd5dS9KMjB2b1pFVVBMRmFTSFBJQk5RZ1NmY3E5YWE2M2lmb3NjL3Nn?= =?utf-8?B?NEFoMFF0YmU4YmVkRDlvU2N6c2pjZ1dXZjFidzllV2ppdkwyMXJuSUhocGl3?= =?utf-8?B?MDdHWlJrdnlNdUNwRndPeWUwRW5Zd2VsaGRvL0dPNy9oc3JPYWl4eWlvcXRz?= =?utf-8?B?UTF6anJBR2l3UHkreXhnbDEwUzJFRysvUDNMbFNTRGxJV2lZMW90bmo4V2ZW?= =?utf-8?B?ZFRrR21yOWV3akQxeUlyeVM0eXhjSWVzVlpaZ05Sb2hITEMxSFV4SFM0OFBI?= =?utf-8?B?cTJ5dzZYSWtjMlRzRnNkMEZZQjhNL1B3ZWR0b2NwNWZHODZOMnhwdmU4Zytu?= =?utf-8?B?WFBRM1ZWaWFrd0RCanBTRzJCS0xFWGF0YUZ6cHowd1FBZlZvaS9IWTI2bm5y?= =?utf-8?B?SzJvWERMaGxhdUhGYTc4NEVRblBjN2sxcEw1WmQzZmd0djVWNVEyUXFZM1RD?= =?utf-8?B?S0QyS0hsUTZNeHFHYXZJTjFPSGVqOXhNOVplNXN0MEdZRzQ5U1VvSEZSc2Nw?= =?utf-8?B?TlgzWTBuaTFWQVFBRHRsaUdwUld0V1dnL1QyKzNhWk10NE05OVZ0VFpQejdN?= =?utf-8?B?dDdNQ2tNY0xMaU05Sks5cm1EWnFIZmwrVzMzckNSSStGRWkyYlp4dTVhSW1M?= =?utf-8?B?R0JybzdiNVBaNkFSY3ZZMCt1VE5ma2JoVlQ4UHRwdW9PY2VxOVg3UXFnS0lT?= =?utf-8?B?MjEvZHJsZzQyclBUeWdHT1Y5QzdMbDRXWDFEN0VJZkczZjNUaG43a25NSlMy?= =?utf-8?B?ZXl0VWFMQlRieS9YUWNmaWZmWWwyUmdtOXpVb0ZLdVhBRFhPQUZ4UUZ3cEs1?= =?utf-8?B?TlVWSlFROXBsL2lqaXV3TmxOWTNabUpueGVoUW5OV3JjRENLZHRESnBxcTNI?= =?utf-8?B?dk5BQzNwTHM5Z1B5OVlUTkZ1K3ZhdW5LMVFkbG1iWVNRbFc5d3dnR3pGeUVQ?= =?utf-8?B?N1RJbE9nVzdmaTFoQzU1cE45ajBWY1o1dCttUmQycWFNdVcxOFYxd2xlQnVL?= =?utf-8?B?a25zQUs0V0tPR3hFMHdzZW92YjZwbXpBV3N6U3MyWXhjeGh3Q2NwZTNsa1Fm?= =?utf-8?B?aHBmVTFqNzBoQjZXbGNCd08yU2VUT3JwckVxWWs4a3ZvUzZaNURXTzBUTVpD?= =?utf-8?B?RU8xWmZyZmVqRmZZMXNlK0YzWDBQWmxjOHh3akMzUWM5TytQelU3elY2OG1Q?= =?utf-8?B?ZlgzMTBsdDhmT1c0Yy9vc1NPMHhVMEp5Ymh0OUlia0VjUUtMajBiMkU4Vncz?= =?utf-8?B?NzVYZWpGVTVhNFVZMUVlYU9Ed3lwUVU0M3RlcHRoVys0cjJac3h6UWpsb2dl?= =?utf-8?B?QzhybGlLS2lZR0FUeEIvRytFL3gvZkh1SzVVbHY1S0pmbXdJTEJta21ySElV?= =?utf-8?B?aGxza3JyYy9oUjZGTmp3c01tSU9RQ3pIYmRsdXZZZDlBMWZXanhCbktDbUNY?= =?utf-8?B?M2Z1ODVlNE9kcVUyTlpEWTVLcmRpNndGQ2NjTGdublVZbTgxT3lsaVkyMm15?= =?utf-8?Q?yAZFUQluyGc0JiNlo7PQqMLjt?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: ebd38c58-94cb-4da2-8e3e-08da6a55e444 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2022 13:43:56.2058 (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: Lq2yX/p6aoqiyjXborhDQeg+gknH3noDikkHeVak05VETkKT0a/jZ8B4LO3gFFtHOpmToMnLuTvKsGHH7S0Hlg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4431 X-Spam-Status: No, score=-3030.6 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2022 13:44:01 -0000 On 20.07.2022 14:39, Martin Storsjö wrote: > On Wed, 20 Jul 2022, Jan Beulich wrote: >> On 19.07.2022 22:33, Martin Storsjo wrote: >>> @@ -946,6 +957,7 @@ diropts[] = >>> { "-attr", SECTIONS }, >>> { "-export", EXPORTS }, >>> { "-aligncomm", ALIGNCOMM }, >>> + { "-exclude-symbols", EXCLUDE_SYMBOLS }, > > Thanks for having a look! > >> I was a little concerned by the - in the middle, but the (custom) >> def-file lexer looks to be treating - the same as ISALPHA() chars. > > Thanks for checking! > >> Nevertheless it would be quite helpful if there were two testcases >> here - one with the new directive used in an object file's .drectve >> section and another with it used in a .def file. > > A testcase certainly would be good here. I'm not familiar with binutils' > tests from before - I presume I'd make a native build (not having binutils > set up with a cross target) and run "make check", and I'd find examples of > existing tests in ld/testsuite/ld-pe? Cross builds ought to be fine - you don't mean to run any resulting executable anyway. > I guess it'd be good with one test for i386 and one for x86_64 (or both > cases merged into one?), assembling an .s file and linking it, and then > checking the export table. Are there any similar existing tests to serve > as example? The one I spotted was for aligncomm, in ld-pe. In how far this would lend itself to cloning I can't easily tell. > This directive isn't supposed to be used from a def file though (just like > the aligncomm directive), see the comment in deffile.h. Isn't supposed to be, or is prevented from being used that way? I have to admit that I'd find it quite helpful if this new option was also usable from a .def file. This might commonly be the more central place to record exclusions. >> The other thing is: According to def_exclude_symbols() each >> directive is followed by exactly one symbol afaict. Hence >> -exclude-symbol (singular) would seem more appropriate for the >> option. > > Actually, when the option values later are added to the exclusion list by > pe_dll_add_excludes, they're split/tokenized by commas (and colon, > apparently). Well, if that's the case (I simply didn't spot this tokenization then), then plural ifs of course fine. Jan > I guess this could be made clearer by renaming the struct > field though, maybe to "symbol_names"? > > I'd prefer to keep the plural form in the directive name in any case, for > consistency with the command line option, even if it uses the > -: option form (like all other embedded directives) instead > of --= or -- on the command line. > > // Martin >