From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2047.outbound.protection.outlook.com [40.107.7.47]) by sourceware.org (Postfix) with ESMTPS id A61623858D33 for ; Thu, 16 Feb 2023 18:48:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A61623858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t/5IOjJnfvjXfzXzg9OrpShPGaN15cX0EdSma4YbPTY=; b=5ztdBZuyVIhMV6oXbaigZ9PHWPrz65J5vwKBpeW0NuSvCRWLugsyc02TCk/6siOpEeRvfcPGLnU+OGXPvObvbs/TBZ+ICruZpc3GawwEyaw4EP8PtCSufY5pFdaICApS5efSDsxRnf7998+svq2PUQbd93m+U99TsX5WN1wY6eY= Received: from AM6P193CA0064.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::41) by AS8PR08MB8658.eurprd08.prod.outlook.com (2603:10a6:20b:564::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.26; Thu, 16 Feb 2023 18:48:02 +0000 Received: from AM7EUR03FT035.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:8e:cafe::7d) by AM6P193CA0064.outlook.office365.com (2603:10a6:209:8e::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.13 via Frontend Transport; Thu, 16 Feb 2023 18:48:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT035.mail.protection.outlook.com (100.127.141.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.13 via Frontend Transport; Thu, 16 Feb 2023 18:48:02 +0000 Received: ("Tessian outbound 43b0faad5a68:v132"); Thu, 16 Feb 2023 18:48:02 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 09c0f290dfec6ae9 X-CR-MTA-TID: 64aa7808 Received: from a307f04f6990.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 4DA96790-977B-4E6B-9CB7-E1ABABAEA9C6.1; Thu, 16 Feb 2023 18:47:56 +0000 Received: from EUR02-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a307f04f6990.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 16 Feb 2023 18:47:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jGnV6KSYz8ywpG88p1U1++3qlx1Sq9AvZSl5WtP+/TtExClbQvj+gCm0J09ZbuZ+NtZRhbSooH+PuSBc+e88uM/VWTIFQebUhu0K+wD5+9hzQs1F3SPzKRNi/VhGu61irwboKswOVI41LUATpDZnOB3tXJteR3+JD3/npcZbpXrX+RXZFmvq+fBsAJjmTV/ZRB/TgVRTrjIUhzHAcxTWNt/QfptEHWQt5X5iIq2QUnTd5xm7cHdBuyOYJkezBQ9leXvZg0khnL/UwQZ84nGp9Ip0uRsqsg5O/w+ShwzttesSjKgY5SNDvuWqqu4ssvun063Pj3V9IoT9Dh6sCUxvuw== 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=t/5IOjJnfvjXfzXzg9OrpShPGaN15cX0EdSma4YbPTY=; b=DzfoaNUdWqEbSyADKaNRW88n792bSrmXOoYOm1Wf+0jeVKo83Y1xRLgPLaLosbo//YZZanYwpY67foQXxhS2VVzLvK+41lcsrukhaHNH+OOw9E1ANJ9hYb0xZ0aWHrIMzCrNyThd5pqkhBXV3xqcsmpyGIB4zDhbZ4J7IHomGCRFA7Fea/kzeSfrCBMu8KcvCdlHLzrvjDUPS+TpHcwRqKhjbHE/buckHlsch3/bwAqrzK1qhg86q3UEV398HO6EGh4eQWiCGcIxASN8J1xPpblxWlrkfp79nT53fiVoDHp6F+K8tgXZjUADXLErHCO31tGWEzpoDpOtOqCajDi3Ew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t/5IOjJnfvjXfzXzg9OrpShPGaN15cX0EdSma4YbPTY=; b=5ztdBZuyVIhMV6oXbaigZ9PHWPrz65J5vwKBpeW0NuSvCRWLugsyc02TCk/6siOpEeRvfcPGLnU+OGXPvObvbs/TBZ+ICruZpc3GawwEyaw4EP8PtCSufY5pFdaICApS5efSDsxRnf7998+svq2PUQbd93m+U99TsX5WN1wY6eY= Received: from PAWPR08MB8982.eurprd08.prod.outlook.com (2603:10a6:102:33f::20) by AS2PR08MB9835.eurprd08.prod.outlook.com (2603:10a6:20b:604::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.24; Thu, 16 Feb 2023 18:47:53 +0000 Received: from PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::dc17:8fa2:cce5:3573]) by PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::dc17:8fa2:cce5:3573%6]) with mapi id 15.20.6086.026; Thu, 16 Feb 2023 18:47:53 +0000 From: Wilco Dijkstra To: Adhemerval Zanella Netto , "libc-alpha@sourceware.org" Subject: Re: [PATCH 2/7] stdlib: Simplify getenv Thread-Topic: [PATCH 2/7] stdlib: Simplify getenv Thread-Index: AQHZP7Lw1U/R5f74V0KbI/wP5ufA3q7QRZeegAFWGQCAAEHs0YAADp2AgAAAL2E= Date: Thu, 16 Feb 2023 18:47:52 +0000 Message-ID: References: <20230213135558.3328727-1-adhemerval.zanella@linaro.org> <20230213135558.3328727-3-adhemerval.zanella@linaro.org> <7d887c0c-7ab0-4057-df39-e8d671bca1d0@linaro.org> <1809ebdf-e032-c34f-f685-d6718d525c2c@linaro.org> In-Reply-To: <1809ebdf-e032-c34f-f685-d6718d525c2c@linaro.org> Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAWPR08MB8982:EE_|AS2PR08MB9835:EE_|AM7EUR03FT035:EE_|AS8PR08MB8658:EE_ X-MS-Office365-Filtering-Correlation-Id: eddcadeb-5f4d-4761-cb95-08db104e5567 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: qoh+xaSrvaK2yOpY7oQDKZkudhGAkZqKIn4Bn4PWGnYa8j2omoqG5yLaXbe7cC/zDuGLdfDQu6/Z8Ic5WUYf8jzcmrXwYkuv4cd+2PIyqLywLQPCKm3fxArXxtlwz3pYEx7HH6q02H/k4tivM5HqQRC/sqvBij9quRW0IRbAoYAnulFZjTHMjhhw8I8XcSLuuPhk9fssg2aduhAE//pTSN4FrWTLUQjrRIkbM866K+mlQ6GdQHjraqNa2RdtXhfApzF2ZApNQXAT7XeDJNJEcZQfbXlUdKlCxbLSw3QjtqCfOCycI5sL4ugUbZVNsqMasmgYeP814QgZyFSAWNvoDlQvpOPUsZHeBKJZ5+XcxTSEBTvCZanX7d0vTTgOokyuuE3NhemApCNtNzniEhUfWGwriY/HaVuz9ClhKc/R/qEpbhTBEQKxlj0vwvNySMtwUe7w7/IXAu5G5tKvDPJmL0vLRacPmVsFir8ui063ClfCy1vgDFqmNTXHR49qXWyOxbZly7oImmSnkPZYZgxp+Ez7MQFO+7nNtDsUnF3Ox1Y2pS+eOJ/J+VKey48uoCKbIPFKTW3QJu1xPhTAIGonY48qX+DOCh756xaFknKUFmeccO3jAVzgM+P1vHK8dRcmxAPq+Z81QGONbxRTA+zgJO2U69wv0llBA/jn+qPoytlsT9y/c5t2hMLeXIwAh/5HzG0RsZ/WfWoE9diluFRiIA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAWPR08MB8982.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(39860400002)(396003)(136003)(346002)(376002)(366004)(451199018)(91956017)(71200400001)(86362001)(66476007)(66556008)(478600001)(8676002)(66946007)(64756008)(66446008)(7696005)(110136005)(55016003)(316002)(122000001)(33656002)(2906002)(76116006)(8936002)(4744005)(52536014)(38100700002)(9686003)(186003)(6506007)(5660300002)(26005)(41300700001)(38070700005);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9835 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 8eba358e-fa78-4819-3af3-08db104e4f51 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: b/F4enKYxNjhrGYg51MPduehqDqknbUfTXqGNBoSHPhhCWhY3j3GzhsiL0CxeY+oAcGasxTR6Tvi4rIER/xxo9NM1EDIr1cVEVhMo2cJBKFGR1icgRjSEjPWhxg5FPTTBCUreFGKFTU0eFw2XB1gS8f/QZsj1w/VN8jhAVHF8zd4GWaXviiQ2nqBitM83XUphZhKyhXPLCsa7dvKG6sOcqt7UYt5hFJM2TtCubVd5PAEiC/pDLcMQjstS1KI1ez37COjtk1FGu8ojgw76oGKtrr3erRRLUknitVbT/GuYmtUfGuad3svPSpcOlJUdgjcrqrWSXP4cI3g9lYV2tFcrjvlwZgEORR8kenLQtdOfV5O5n3vVnfOe+khi/NGPuKuQg554VlSa4K50zI/nTqXkpdKAP8otmdCJ2eMGld6f8HoTx1ocZr6OY0z680lD1Z4PKcqhtcADroi1XQPjsOa8I8Goc3COl1RwgWA9I+iHBotCe7NUhQlQplUCxM74rSJ4bnfqiX5i6MjSkMH3ODp+VqlLUFiIvmLLsvzGT47Q6YABq516SwpZdscvwkLhE8CltzIvQQy4hRn6HhrNUe4YKHzTTMiF62sK1XAJNxUS/jkjGxafKihYohrhZqfp/PU6+LUhpkdA1p+hrDmNePMWQrWCkXpzCrEmqEf18oS23V4IwZoMCHgCrlhn8G7xRndw3NpxXJ0GLevZoeePYm4Mg== X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230025)(4636009)(376002)(396003)(346002)(136003)(39860400002)(451199018)(36840700001)(46966006)(40470700004)(81166007)(36860700001)(478600001)(186003)(6506007)(26005)(33656002)(82740400003)(110136005)(7696005)(70586007)(70206006)(8676002)(8936002)(5660300002)(356005)(52536014)(316002)(4744005)(47076005)(86362001)(336012)(9686003)(41300700001)(2906002)(82310400005)(40460700003)(40480700001)(55016003);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2023 18:48:02.8791 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eddcadeb-5f4d-4761-cb95-08db104e5567 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM7EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8658 X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY 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: Hi Adhemerval,=0A= =0A= > Do you mean something like:=0A= >=0A= >=A0 size_t len =3D strlen (name);;=0A= >=A0 for (char **ep =3D __environ; *ep !=3D NULL; ++ep)=0A= >=A0=A0=A0 {=0A= >=A0=A0=A0=A0=A0 if (((*ep)[0] =3D=3D name[0] && (*ep)[1] =3D=3D '=3D')=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0 || (strncmp (name, *ep, len) =3D=3D 0 && (*ep)= [len] =3D=3D '=3D'))=0A= >=A0=A0=A0=A0=A0=A0=A0 return *ep + len + 1;=0A= >=A0=A0=A0 }=0A= =0A= No I meant checking the first character first before doing more expensive c= alls, so:=0A= =0A= =A0=A0=A0=A0=A0 if (name[0] =3D=3D (*ep)[0] && strncmp (name, *ep, len) =3D= =3D 0 && (*ep)[len] =3D=3D '=3D')=0A= =A0=A0=A0=A0=A0=A0=A0 return *ep + len + 1;=0A= =0A= Basically this means you get a very tight loop checking the first character= - this avoids=0A= most calls to strncmp. This is basically the same result as the current imp= lementation=0A= but without all the defines and complex unaligned/big-endian stuff!=0A= =0A= Cheers,=0A= Wilco=