From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80042.outbound.protection.outlook.com [40.107.8.42]) by sourceware.org (Postfix) with ESMTPS id 94B5038515D1 for ; Wed, 24 Aug 2022 11:17:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 94B5038515D1 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=hyT41MATxE7rus9MW2K94vNBkqznR/BR9htrzpH+DfkjYUBdUqamxLd19N9sX1/dBgrDzFlaAKARuX3nhy97XJ1R1SJbt0rffanIwWlEBYLcG3hZhpdHbhWaAY9vSwziS7r8yV4GvE8tvo8vtMqncv/NYtzRJ65vmb49iVtFFvMMJVT3oxTulN5MbOAOIDedW71sK1B8MfJGEaJQzyvX5lgFNJJS8c0XuvfXbigimbIQJym47+ockfvmlkQcdWULwiNCZ3r5/rVIOx3Px8HEx/g2S2VS0KU+lXomXq3R1NTWnuM7IaG6e5EKzJyLAfVKPfy9VXsgt/m+ByzWVdCAlw== 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=lndHHqHj39MFJGtLxGBKDdN0QfXUi1ANiWrUVathHJE=; b=GBmWdEe1PgijQQerdufgqCKcl/qLXw1IZhE1Xo/x4FTJydXb8KFtczqURCdkfxfxAKE3zK41sh7PItCn+9m87QR99zPaOR08l+k3j5CVZu91BdWCsgZVUGwplaCU0D1UU9ALPPDXrz4wl39aK8voAWxpDZxdJYvb9RecW6ZCsIEsldqf48phPv0zjWsoyj602CHN74DhMUflqMjmkKE8h1k+1qB5efopdE851cSwLAktTC8OYyQt3OENtUa8AESJ+sLAanH1tr08uFoxbHnG7v3G5zfmDp1Zgp+M4UwU5Yl30tquPOzZpCFnicoxHTBP4IADDRi2dS3KeEzmcTotmA== 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=lndHHqHj39MFJGtLxGBKDdN0QfXUi1ANiWrUVathHJE=; b=ZxtrZTYPdiWA/rM8C9auhU/xKV0keXZpRwXTjUvNzlM2TfcdRl4V+VR/TfLJl3tUomPOc84Mj7K9/FeGpZr5kLXwD74QtxrIQUkV5Y2P26vKrAamJNmewcWiFfbXx1foc0p091DG+B1OEVgNIxR/4cFBbTiHz5Xo7mGCMoRxU95NoWgPWGIjWCSF7YaA7pcAvDjtAOuMxNVC4+KC/uqOEgiVbe3KAkTMeTgMjV9PzEY3joltUK+Z0AJblL4Rrvi1k53ur3ZPqK32Q5vYt/cO0I8TSek0MsRQ65/NfweQ3LtEe6pzNqFct2LEdJxfbfIvuk7bDP+iOhQmb52+1tQrCA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AS8PR04MB8898.eurprd04.prod.outlook.com (2603:10a6:20b:42d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Wed, 24 Aug 2022 11:17:13 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad%4]) with mapi id 15.20.5566.015; Wed, 24 Aug 2022 11:17:13 +0000 Message-ID: Date: Wed, 24 Aug 2022 13:17:10 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Subject: Re: [PATCH v6] ld: Make archive member file extension comparisons case insensitive when cross compiling too Content-Language: en-US To: =?UTF-8?Q?Martin_Storsj=c3=b6?= References: <9b767c3b-2690-863c-e7dd-17fa477ee482@martin.st> <20220824104747.11804-1-martin@martin.st> Cc: binutils@sourceware.org From: Jan Beulich In-Reply-To: <20220824104747.11804-1-martin@martin.st> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: FR0P281CA0096.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a9::9) 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: 3926e744-b46d-4ae8-7c41-08da85c2318d X-MS-TrafficTypeDiagnostic: AS8PR04MB8898:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Z/R1QUf6+yjaqmMDgoVBqRgUj28UrKSdnGROMl/Z73yiGNlXn7MOqcWKBDwdnINNY90TXUk2f9RWwfOjG/1H0js++8ebUlGufaTzGgxj0/swrwXKUI1zFiFRoIPqOYfWuULDxVqsBbuvTlqwREoLDgdNjekDqmAZLwEMbaMQY/s0uGJziKsqFwKybPaB1kJSpvSBBOka8lNe5V0JQF5wpw6dZm70p5bS3crpUNiN2GBmaxQ0n1Uyv+seYl4hWk3B8gKqjyI+R1OkM7Dej/A8Um30tlOI2Ui9mHwrHDF/8uFvsc5wKnnN5e+z0mgtgmUdn8VWdtauPAEWJR7chwJ1AjG/m4mPk4G1ariqg+imxo2bzCPBF+bSkLLg0yEODZCl6SP1pv99I2GUMsO2t5Q6k/CDe6eX44oZ+aw+W+P3WH51CBSsYlieLy45F5/iRvMGGKDkkAAFSmKqBWa6B0pQ55KtuIq1It1WB+qgo17AcALloEgW7UjFARy9ym+90eWWom9Yns37e66PVFsa209s5wCyxMzESSjF2QC3i/UFD99zHcaOCmbtfMPObTO0KuBdHyqAE4zThEWYwyfu/D6/03zT5x7eFd/eNohxefskyhLGzVYuCF2ssn9BUUzQSkntsCxJHaCgHAwrDL5H/3DJKb4FD+ocPYGHAwM8qaG5RG1wWqD47gepfvLkM8nMZ1rxWhXsph8+WqtneZOmE6PW5LioBAQZsmT+HptusrtFD90JIgyt1SN/2UUq8C1JO+bAH0HDx+2AYUcv6N2NqMdjfIXAfpfyKwBizJ3QHuK1uQk= 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)(39860400002)(376002)(366004)(346002)(396003)(136003)(38100700002)(6506007)(53546011)(86362001)(31696002)(4326008)(66946007)(8676002)(66556008)(41300700001)(66476007)(6512007)(26005)(316002)(5660300002)(6916009)(8936002)(2906002)(36756003)(186003)(478600001)(31686004)(6486002)(2616005)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WktXVVpEbXRZeEVIZXBUTlZ6RHBnenVOcWZ4cVBTQktkTDhHRUNIdFdvSCtE?= =?utf-8?B?N2FrVFpqMTF6UXF0NnBHWHJHVFBORVcrbCtSSUl3S0lDckpLZ1pIN29qK2tP?= =?utf-8?B?VDlJWmROQmpXS0JFTm9LaVc5ZWhoS2tiTWlkWE02VFg3S3JxQzVJQ3drTkVO?= =?utf-8?B?RVhTcXlJZUR2aHB0M1ZZVFBKWGN0K0EzczlaUlYvNE5LQm9GS093UnMxZGk3?= =?utf-8?B?T3psZEZCMDNweTYrTk9DdU42bTNwa2hPM2RiZkFOUDd2NktLbk1rS0VGTTJ0?= =?utf-8?B?TGUvblJtSVN3Nm05bXVvSmlkTVRjNzdWZU1OZVd3TDFvU2M1Q3hOcjFvNW1j?= =?utf-8?B?Y1lPaTU2ZXRxR3BSMms0WTVYRXB0YTNiL0FJRmpTd1BucnlwV2RwSThGbHVJ?= =?utf-8?B?RGlNS28vQmpwRHRobmxUZVNaR29rcVBEMEo0aWYvS3lVWndOUFR2MlRlMFJT?= =?utf-8?B?cmppSHR5eVIxOWkvTGpJS1BvNGNQRUY5bmVsMmFvbG5lTCtYZVpqTFd3MHVp?= =?utf-8?B?WnlXL3NMTk1mZU5yL2N0Tktnb2JoYmJhVTI0ZW1jZmpqcEUyaWY2aTEvR2FL?= =?utf-8?B?YVVoK1JxMFVXMkJmVDJOcGtvdyt4WFBFZkFZVXdqKzZHZTNUdHkzSm94WUd2?= =?utf-8?B?c085WU5VVUkwSW43MnFWVERETytBci9zVFppNVZVODVDVVExNG1vbHBUNFN2?= =?utf-8?B?Yi9UY3lHbGNWTHpVL29qWUo2SWpnZTJoTUhzcWtEOHYwaSt5bUxhUjIrc2Nr?= =?utf-8?B?b0NYaldNUkJ2d3J1Z3NIZG5DS2dyZDdHMjlNZ0pNRlQvSFR2alYxR0NYMmM2?= =?utf-8?B?VkhVU0UrcitHdnBGVnF4cGUyR0xQTjBHRWdLQ2tCaXB6SWpnR0xyaWtzNHFo?= =?utf-8?B?S1ZZaHNvSFFOV3FqT3llY2JqTm5Bc3BHVWtEaktSdkN2bkIzRTZDVWs5SGsz?= =?utf-8?B?T0FqMDcya2s2UC8xNWxpY1p1UzdDeHZ3NjhBKzlZZ2RoMlhybis0QTdZRjJy?= =?utf-8?B?TnFxOExTbERpc2x0WjFyKzJxUStkYmErTzFncHpVblpmeWNjZ0ZGQzdkcXJT?= =?utf-8?B?c2l3dkV3dlN5Q25ySkNBK1VGNWNCd2JjNTl4UjQzeWZaYm1BS3VOVjAxajli?= =?utf-8?B?N1ozTXBjeDltNHUyVlh0RnpqbHhBQ2RRbGxjN0tYUXF2YlZvUG5FQnU1SFY3?= =?utf-8?B?eGowQmc1eDBnellyNlpCc0xWaGUveHQyQ0d1R2U0NzArb0w2RTBrZXJqUytj?= =?utf-8?B?d1RDK2tOUGVZa0puZmpZVHhSQ2txcXZFcE9rOHdhaksrLzN0ajd6cTUvaW1W?= =?utf-8?B?THdSUmRLaHNtSXJtKzRSNnJmcXZNcDZYVmhTM1A0TDRGMERiRWNad05qTks5?= =?utf-8?B?eVRMb3NOV0lDNTc2TmpLOEhaSGU4MVl2OXQySjZ1dXMxZmdQZlVIc0FMdTVH?= =?utf-8?B?UTJ2V0NqZVUzRzltSE4ydUEyaWl6ZHFBTlhWTXA3RVQ4OW1PdmxhcVVtbngy?= =?utf-8?B?M21TUDV2ZnNyc1hsTStXZ3pLRnMyVjJVeC9FL3VjVFlZSGhPb3M3QlNDbW5a?= =?utf-8?B?NHN5OVhOUmErZkdWMlZjenM5eDZseEMybjlQOEM1STEyeWVVaGE1WDZCdXFT?= =?utf-8?B?TjBxbjBoWXVieWlrSmJyWmVOZnFqa3hqaVE3Z2Zab01qMVFRRlZTQVZqUUIy?= =?utf-8?B?WVRsT3M1cUhBdTBtWUZGUFpGUnBIV3VLNmdsOUtqWGwwK0ZYK2d3Y1poVll3?= =?utf-8?B?WUVQa1R1ZHBHZ1Qyb0p5VTB6SWhTZnFNamlTbythUjVXcFUxQXJUVnRGYk0w?= =?utf-8?B?dXVSSVhPeVJoVlNUYXlXZ2tHWmZuSjkzS1dMQWNGemhiQjF2dWtFa0JHRzR4?= =?utf-8?B?VnVoS0JqT29iNXNjK3hEV043akk1a1VYZW5VZmtTblk3VWg2d0NFenFIMXJN?= =?utf-8?B?cFJBbVVaWmRya2N6a2VldmlPanVGdU9HUTRQUEZMWUdjaFFPdm1uVks3S1lx?= =?utf-8?B?ZG5zUWxpcmY0bEVNN2VCMUYydVh1R0J5OFpuL1hPTzVvY2YwTVR3RjZqbjRo?= =?utf-8?B?dWxIeEx2NWxlK3FGSUp2NnA0MTRoRUsrbVVpaStpcFpKMTROa21PTDEyaTBF?= =?utf-8?Q?pTZrJScljSBZMOyKhz27xlDad?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3926e744-b46d-4ae8-7c41-08da85c2318d X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Aug 2022 11:17:12.9258 (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: BewyUOQMJWsYUuc1BxEL8h9spVKK+UBuD1OLRrWSWCAHfjEtEMcEamBv9ISWi9E3zbicHBwUSQET1S/O1z0pMA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8898 X-Spam-Status: No, score=-3030.2 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,T_SCC_BODY_TEXT_LINE 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 24.08.2022 12:47, Martin Storsjö wrote: > On Windows, filename_cmp is case insensitive, but when cross compiling > with libraries that may contain members with uppercase file names, we > should keep those comparisons case insensitive when running the build > tools on other OSes too. > > Also make the check for .def consistent with the other ones, fixing > out of bounds reads if file names are shorter than 4 characters. > --- > v6: Switch the check for .def extension to use strrchr, add a missed > null pointer check at the third call site. With that, as I've previously tried to express, ... > --- a/ld/emultempl/pe.em > +++ b/ld/emultempl/pe.em > @@ -534,6 +534,28 @@ gld${EMULATION_NAME}_list_options (FILE *file) > fprintf (file, _(" --build-id[=STYLE] Generate build ID\n")); > } > > +/* A case insensitive comparison, regardless of the host platform, used for > + comparing file extensions. Parameter s1 points at the extension in a file > + name (pointing at the starting '.'). Parameter s2 is a lower case string > + without the leading '.'. */ > +static int > +fileext_cmp (const char *s1, const char *s2) > +{ > + if (*s1 != '.') > + return 1; > + s1++; ... this is now properly dead code, and instead ... > + for (;;) > + { > + int c1 = TOLOWER (*s1++); > + int c2 = *s2++; /* Assumed to be lower case from the caller. */ > + > + if (c1 != c2) > + return (c1 - c2); > + > + if (c1 == '\0') > + return 0; > + } > +} > > static void > set_pe_name (char *name, long val) > @@ -1666,7 +1688,7 @@ gld${EMULATION_NAME}_after_open (void) > extension, and use that for the remainder of the > comparisons. */ > pnt = strrchr (bfd_get_filename (is3->the_bfd), '.'); > - if (pnt != NULL && filename_cmp (pnt, ".dll") == 0) > + if (pnt != NULL && fileext_cmp (pnt, "dll") == 0) ... you'll want to pass pnt + 1 to the function here (and then similarly below). Jan