From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 75211 invoked by alias); 24 Feb 2017 09:42:18 -0000 Mailing-List: contact elfutils-devel-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: elfutils-devel-owner@sourceware.org Received: (qmail 75180 invoked by uid 89); 24 Feb 2017 09:42:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.99.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:1022 X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-HELO: EUR01-VE1-obe.outbound.protection.outlook.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qtcompany.onmicrosoft.com; s=selector1-qt-io; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Wv4X9sqamHp8CDlGOJb6DNpOTy+f2gtoat9+0kJwy1A=; b=AE0nYywAOpWUcz9uX5lL9g+G5XIXyzk316OrCJA7bK5e6WbtwQqD9C8/CQN7qqte6dnrB8A2XrfJLVJFG6nepqgWXLfJijotCRxTcdPiXzYy/IHb1xmuMEraUFB3OSYoucR0YS1oPzEzkNY7R/yvds+FB+afnnMqEFY1pAp4zDk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ulf.hermann@qt.io; Subject: Re: [PATCH] Check for existence of asprintf and vasprintf To: Mike Frysinger , References: <4efb45a7-3035-67eb-d61e-62e795afd881@qt.io> <20170222144004.GV28432@vapier> <3716c28b-6478-ee4d-50cf-0ef43e8196f3@qt.io> <20170222163249.GW28432@vapier> <59040cc2-f681-7610-5115-9a7c6c94b6c9@qt.io> <20170222170356.GX28432@vapier> <84aaee58-674a-5b94-7047-f4770faff345@qt.io> <20170222185737.GE28432@vapier> <8bc5640c-cb84-bda2-50be-f7b1bb7c35de@qt.io> <20170223185129.GU28432@vapier> From: Ulf Hermann Message-ID: <11ab9e08-3d39-1edd-b493-8d569f6a2cb6@qt.io> Date: Fri, 24 Feb 2017 09:42:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <20170223185129.GU28432@vapier> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [62.220.2.194] X-ClientProxiedBy: DB6PR1001CA0024.EURPRD10.PROD.OUTLOOK.COM (10.171.79.34) To HE1PR0201MB1868.eurprd02.prod.outlook.com (10.167.186.150) X-MS-Office365-Filtering-Correlation-Id: 15120237-5c70-4d04-c33d-08d45c99684b X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:HE1PR0201MB1868; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0201MB1868;3:1OrZOIj7yuPvQauN78twIEzBejbO5hqPsVdMt2kPq8rmdfty+Zx5jry5916Q5+b/PecXbPgZQOz3DN46Aoi/aqtxyj8CxWYJS8R9UCoUVK8REfQ+LWCFKDIdBAWU1tNo2baDbCNX/BM84RcVHsP9TcMDS4/8QiMpjFHb8pKUS5LjYGVYgYTYZvRax7g+xNjkxyZt5oBUC+Nt/niCisFL++cRewJt5mllt0ljnyPd0McsMY+LqCb0g11JMDtjmrd2ACbc9uxGVElqpVEhTsB/vg==;25:NcN2AVVPdmud7QggIfKpl7/AiK/31rg1PMd77J+52ZnsMhUdFo3hj3ZOewTonbzpM1KwRtVNlH2oY2hM/qVJmuD61elfck+lQ6sJAh8nZ5EjtUWL5Evmv4/im3HlYKldSOE8qfnt7BR7wnV2FeBGs+kCPj3EcfwPAhdavkGmD+x+bDr10QLF33fOkJaF3lc2cBwuFHOu3WW9yrU5fsOTaYkZloCFTFC/evy/1J6VM9I81iV3I6cqj2hJmf+UK4aZUkZ16nnju5ahYN5OCSkpvqsClxJigIImEuiIxzarvDTDMMGp0FF+pOkj1+Ma7d81ADmRF6MxMHVbumHXMXuj5J1xN6ig3e8mnVg1tKmHj3+VmATw8aIHc1icMR1ndxUPKzsRM1wM10DYoFXRFtzp2A98lmGbMw6NdRu9otwiwhxDvVu5fj9YI0A08u9pTESPKUbvrHkjEYT7rQbCFIKW0A== X-Microsoft-Exchange-Diagnostics: 1;HE1PR0201MB1868;31:LMdthGYJkqtaPXtae173oRHTLIxhpoTghF7BU5xJlkDxlnVcuj2s4AUteX5MXEEa12JI33TnKw1S2ckybvjppm0ixm8Mdnt3I16zRy5SeMYjFAkTD3o8rFAE2057ycmqZbDdeTU+jAVzw+5QuNcRbQHZTCXZfKFxQDIl8JcLlTyi8ypApNfcKVhS2V8oVZ0saHUWWccLL50WdqOxIqYZF/JSGcI5/q4Y5Iv09v2RFDr0dSO8hcKEqCF0wzXQMyGjDWNvgsyQDVAv1kmEUcRqbXvIV0hdqR1m9iZYOi86nRE=;20:fmtDTvZa8xnkzQmifjRGo3VixT7Wt5n7PJ6eotMoKMG/UrzxgbPxF2yUP6ItvFeSF5mjnndmqfV0QW20rP9flc4R2QEQzq6ou8GmT3p0B9DkcmPBp4va4YdKQXdP+mQ3aadx8JJrQ/5O+7rok8hm5AghOwI4pjqKOV7gZgxiU3mrLGhc/ixUzbRL2UweO+dwTYzkayMN0r1w8mGYZa87/MWLs9N74NRxCRlSJr3B6zXbp7n2TZ7mss5mr65Vdznq X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123558025)(20161123560025)(6072148);SRVR:HE1PR0201MB1868;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0201MB1868; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0201MB1868;4:27KaU52hWMre88OfF6xa0NH9FQEriyGJzfmaE7s120QIW8F5TXpYGwWAmu3Qv5UCe345/luYN1JJn8HO1E8aiByVSvgbD+9eYLqa1iZ2BITK+nCHyen61sujSV/+5D7CT9oIs4Dx2IBVkWU50+UaQiHZWdPHtjcdx4/o4PtvhTIY159YmsCqfLWa8uw+ZTUQap6pdFkhpl5eKKY3a+OY5ZCdL57y4O6EjU03NkkqoysPuAYrUWVe62GaOrLORLl92HsInEk3NyRaGXzE+I55x3Tav6zx8hdatg44o0suCc6HoUh4bfgK5GxKzwIQsmBoT9HmxFA/UKN8kB7uQv0W2jwri8uvmfrd1n37/AF1UZ2E0aRov2uQ7bcPzpxptYssMtGeJg+e4ye7oqjIMnGVaSxxK1tL0L4RgCpqs7Eb5syy9hWkISb7h8Fo0CCYSKI+dd37lNzCh7DAGAcpZcUJysouPX8Y0zoB461Je57I2KlMCunvwX9FxfFuK8TTxUog/USoCufnr7F1+JP4QaUuYUpGqzcIJh2szDo/c9h6wr1d4hNe6a0wknL3KTOQ9XVoJZo7sRcU4exj2Mv8JT3sseK1RikRSa5YRcfaD2ZhZda7atySS+/1ovkxg0n15dLQus4lNDx5cJ5Utyxv/O4RGw== X-Forefront-PRVS: 0228DDDDD7 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(39450400003)(189002)(199003)(36756003)(86362001)(230700001)(6116002)(53936002)(3846002)(31696002)(38730400002)(6246003)(105586002)(42186005)(106356001)(54356999)(74482002)(8676002)(31686004)(81156014)(33646002)(189998001)(4001350100001)(81166006)(97736004)(101416001)(93886004)(23676002)(50986999)(7736002)(305945005)(47776003)(66066001)(65806001)(65956001)(2906002)(2950100002)(92566002)(76176999)(68736007)(83506001)(6486002)(77096006)(65826007)(64126003)(25786008)(50466002)(5660300001)(6666003)(90366009)(229853002);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0201MB1868;H:[10.9.78.29];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Received-SPF: None (protection.outlook.com: qt.io does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtIRTFQUjAyMDFNQjE4Njg7MjM6RU0wWEFuSW9kSjJnTXF4d2piNHE0T3Np?= =?utf-8?B?TlJTd3RzT2pLampUa0JaREd1VmRjY0M5ZGQ1dlJ2dHhPZnNVNTQzU25oU0t0?= =?utf-8?B?NGU0MzlNWHRlZGZWZFV5WVM5dk9qSjVDdU5IY1c1NE5rT0dwSU8zME90QmRO?= =?utf-8?B?Umt5RXZkNFhBQUlwakIrN3Bub3FBVnNDS1hTWnUzeGphTWpMY2ZLT3FwMzVF?= =?utf-8?B?cjR3OExPaStRYnQ5MHdONnUwMDVHYitLV1g3dmdKNytYbWx2TytDQk9zTDh1?= =?utf-8?B?TDFzMkV3dSt4SDRjTjdab2prbHRUZURtQzZMa1c5OGFnWXNNcXZUK0hhME9t?= =?utf-8?B?Nm1aSEt1bTkyUGRkVUVVSk9KZll0WkdwWVRveGFhQWRsaXZzQkdHR1c1QWZT?= =?utf-8?B?TmxoZDlLUGpGYTFzL2V3UTJjcmpvTjI4VGd0TTlCNjNOaWRGSk1JWEI4ZUZ3?= =?utf-8?B?cDhpMU1JMUFYMDZab2FYTWxaSGRDMDVJemRGNkd3ZUtZMmdDRnJ1akFCVmNt?= =?utf-8?B?MXdUdGMrUTJoNS9oWml1SjVIZTFMVFVzVGRPcHpQR2xYTkpVVnh4bk9yYlRV?= =?utf-8?B?bVI3VkQ0bE80NGFJVndWYkRLKzZqNHROSlpoL0VnWW9yMnRYemhpSHdLU09N?= =?utf-8?B?anFsdlN5aHdZcWdvOFFQOU8xbXQ3Uk1Ja3I4NUU3UzNERER6ZjJSSmxFVXZq?= =?utf-8?B?aTE0VEJaMy80b3o5RVVnczB4a3hZZ3RzTHJMU2J0cnNZZlk1cVZZSXdNS2I0?= =?utf-8?B?alBoQU9iV2JoOUozODkvTVdWMDJ2dWZNWSsvemVjT01FKzlNUDNUdWNEdE51?= =?utf-8?B?dlpVbk1iVG5KZWlxa0pvSVF3R0hMSmNXMlF1M25GQS9NSFRlNWkwT2ZLSnRx?= =?utf-8?B?U0ZaRVhjVndoSmdhbnlFcURLZTNQM2huU1VLdU1mK2lKdjNTdk5BNUlJbTYx?= =?utf-8?B?U3FFWjQ2eWNrN0pUUThMYmtSWWc2ZDFZRWE2Kzh1OEVNUUpub0daNWZzRlBy?= =?utf-8?B?emJoeVNiZE56cXI5VkJqRnVHdUh4TEdaMG5HSkxIT3VKUXlXajUxbVNyREE4?= =?utf-8?B?ekwzNHZPdjNDdzJwT2Z6a3dTenhzNkx4U3ZNOVVJREZGZ0JvTURHQkpYRXBI?= =?utf-8?B?ZHRoQzZTSXFOcUJJdmRvQUFNMkpWSjIvMDEzUDJ2S2pDdXFJT0ZNdldkNGRC?= =?utf-8?B?TllIK0xkTGFKdGt2ZE5VN2VBYUhSNCtDRW5YdkZwTE50amY1SU43clNLbGor?= =?utf-8?B?V1U3c2o0MVhid1dLU2djc2cvN0JRdk1oTzhKWklDaEdVcG5qd0ZrQ3R5blpw?= =?utf-8?B?VEZqbGczYmRLVzlpbER0Zzl0dFF2YVNiVDJYa3pKK2lpczlPVEVMWERsUm4v?= =?utf-8?B?U2sxREVxcWNOSWxPUjZYZlQyd1JxNnk2L2o1OWpYbndESlROb0lBZ1lYUmxR?= =?utf-8?B?U1VWaTluSE1XY2lydEk4ZVFiMTQyNUFuT013N2llYi9CLzJEZGNSNGtBTUZE?= =?utf-8?B?Y2lkUjNVUlB4TjllbnNDUVcrcTdyb3IrdUxQZG5hQU5nVWtrWmtGV1B4Zmsw?= =?utf-8?B?UUpqRk9SbFVaRTRqbE9kUnJ4djkvaXUrUHZtMXpXaFRtOGZPblZneEFaTitU?= =?utf-8?B?NGlCOE9OeG9qd1pEcjBDamY0WkQ5RHVCSVpUTlJ5dHdreTBRZTlKUUdvU3FV?= =?utf-8?B?QkRJTWJ4WmI4OGpwMGlLUW5UR1NHbC9DRDVEcytUcDBCKzNTRWxZa2gyV3FR?= =?utf-8?Q?ziey7fnfFpiZ0C6wjTyxLRXoZQr1LKxG6J4b4L4=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0201MB1868;6:DDwjeoh9OjIEyTa0oZO6zRWpfiaW4mICqmbDr8sRc1AAnPzsQCk2WvVyhkHKN9EeX4i9N5b/s8DAbi6hekbXEgiLuUkYawiGlvPvEST1u/JMSagAT7bv4QuUTbYqpxo9Ixi0OrNR+tHM5rx8duDnl1libcnq0JGn1zk+dS/VAh1mt5sW2+0xMcMPUAamsCWWB3JGHyIPy8YyF8EWUpsVWMrULIaz0qR5hblXrDvHV+puk+DhHZ2Agb4nCmh1kPqDSpjEMc0Z7kzKPK/PLUTOtFapS+PwdqxaTZ0xrYkouHYxFlkdKQMykD2YEb8BFC4fU2ZZBHi6vSkSr44vNa/vK0ZQloSzsaFS9pWolk1aiayDHUoG4+muDvW302TizcYHhgmJloCFOdVsnF3wxfG9DQ==;5:zoTaDw4noSmzIIIPHYRouVT2AsDm1wFlCNaaEOzjVafxs19ksuFx2DejqhlxhyQDYS4Uafoh2MXXpjb/xWJN84ZNADCxvyX2QufEzUhTWTLuRCcdz3oSYPc5G1ibTR8fa9TCdEKfvCVgVIUp6fuKCQ==;24:SuujaGHCcWIxoJ9WP3SxJ+r7wLeWWMiKN7bXsrdr+psZNXZGnuxQ91axoB0PH+PqSc7lMm/TaX+dD9OaIT0h5+0f5SBekua2XBmu4t0/rEA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0201MB1868;7:GK+NnJ27/3ZTMyD90vz8e5mpoRY72bXnBRnrn0f4fnaOrK+uXnqcQSZSkMlEo6BwMZgYO6qPDfWH6yE4YgqSLN5G1prEpXa7uHHBaeBT8OmoQB8TTWJcVoPHpOPC0vNmjafns6gCq/8PZWuonTAtKYgQWPB6B9IlHw4kgDV0Tgr2/bfitVpxH8UUxu1eM/GZfM7PX4wA9QfxBoRpkoqdElzG9kRe5ZsKjgdYelvi6aRz0O3Jn6jgvXCn+wgCn7gnX2YtMSw1jfoIQQVEiE6q4b/ZoTJikaJzjbhCr4lIzs8hbOXJzEBwD8+Y3cGYRr1pG9Dxgel9jkpTz57tn8bAxA== X-OriginatorOrg: qt.io X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2017 09:42:11.2192 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0201MB1868 X-SW-Source: 2017-q1/txt/msg00086.txt.bz2 >> and the GNU variant is a whopping two lines of code: >> >> char *base = strrchr(path, '/'); >> return base ? base + 1 : (char *)path; > > and we get straight to an example of why your solutions don't scale. > your replacement is wrong. and ironically, it's wrong on Windows, > which is the whole point of your work. '/' is not the path sep used > on every system out there. it also does not properly handle systems > (such as Windows) that have filesystem prefixes like C:\. Both basename variants' documentations only talk about '/'. This is not the place where we should handle windows directory separators. We should either already expect forward slashes as input (with drive names as first path component, as e.g. msys does it), or convert them early on. And the implementation I've given above is the same code as in glibc. However, I will actually prepare some patches to replace missing functions using gnulib rather than my own implementations. Ulf