From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from CAN01-YT3-obe.outbound.protection.outlook.com (mail-yt3can01on2135.outbound.protection.outlook.com [40.107.115.135]) by sourceware.org (Postfix) with ESMTPS id B752C3858C53 for ; Thu, 29 Feb 2024 20:21:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B752C3858C53 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B752C3858C53 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.115.135 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1709238095; cv=pass; b=CXvwo/7BDFXu6SGV+SQB/+hCrHKJHSToMUWmYfatF2ZNxS3BEgYkFyDSk9LsHDcOjgqd4yrecpbVHJgEpXh6NLWoDqgVSNHf+X9hm+AvTW5QqPRK0XmYoPJMoE5oSO1r1iVXeYajX26FD4J54v7MQCAi5rOIJVAVwjR2HSi39Xg= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1709238095; c=relaxed/simple; bh=xoJkF41mXpPLlLaiSNRwNycK7c9irlyXo8IbwMozKdw=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=hsWOfNMcRfp7Hc33jAc/TZAPCuxVw60nh+7XRn3cFa3yd26rtLI4gp0vFEnCusQc4gAa8tSWTqVjwDIBdkK5WZwwq+caxH80RBbwgahNbufBnDYmvU7ygkgAVO0PRYLPJer1s4mIHjjgutYx6HiMiboKUxTYf73ySHOITd9+7Qg= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V5H7HB9l9PDUfuc87ME7c+2j8EUc7C/Gl4ZGFEDOs7Y78zP7u4YoGViaDuFNPY5GmvbILOI/3BkCcvZHOF5mU/8+X5M8Yf1cf/sqfPYrbTchwLHMAKBYLUtqXJHm3wJBvpd4DweRto/LrItUvU9ycxq1aFUgOMgq4DVRnqzVXo5PTZA3918aVHGcSgyj7xDYF8LV6grTnXMuJALFgmVOuBmgvpLdDPz8UiSg0z9pJJ3Xqfs//Pebs3o1t/QzgQ3DN2npGEM8eEEClth56GpmyZHfYoKjCGgTkOaYa2WvJERMc/ycYzuoIcgotqSROZ/ikzhRBcDHERnHG1xPbn4GEw== 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=Tulwu/5wVbNqCgeAIOw3W9pRN5n/M0X+KEpSgyn/6BI=; b=ZzpMQm/1wKRZhicMB0u1nyxYsyWhBZHQUjDWV5g8B6zjuer+Q248mU4NoTlHGNN+zSHhnHTHMt8F/0Hjq7IosWxjg+Tuu6lD/X2aE98IDMx1B74cG54EtPAuYRLLuugw4sTQ/Gtg4eQW5Zb6QtYWUeHQk0DgqHRxegtdVTJUU3DqZlzinkXZQNEwlXzms/W2aNsimE++UXZlpEedWyxF+i9kpl3EbGJDixQM5FtBnhNjXaMdnbL34OFBCCLpDhyvYr9v3DDjhIOQCz280PYkvXuFxCahQkC1FBAosSKvDcwV65mx7d1vDpqla9w0/AQR9BjdU/H+Azp/FdkNepjuDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=efficios.com; dmarc=pass action=none header.from=efficios.com; dkim=pass header.d=efficios.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficios.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Tulwu/5wVbNqCgeAIOw3W9pRN5n/M0X+KEpSgyn/6BI=; b=N75gqe1c3+EY9nPvs6el4o2EssjSI5vo0RikKtb2c5dcWv6qJ+liaowq2FpSbXd4pZbN57vWty6ihrez4GFMsL7BfCixyx8UL+TiybS7wjO9/gXS8uMF07b6OzZAejeoSTVB2GkqLXwirTtW/BeAEtx/QbdZs5POV059JdpJ5gc+vo/LI1G9rWx76RmJYi0VAnOPxDx1lf7w3NIRuPwey84yGc4d4gLBrfPN+AaSvIwNTM8BQNFYbQvH5TFHmjRBu3C3p/kuX4EtUk2xtZ8JywWzLlOFFSIzlZYSt1MkwBLQbdjJHhn+2uogBNgQ73YCwJH3/8tEseLmkCQZd3V1Ew== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=efficios.com; Received: from YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2e::17) by YT3PR01MB5922.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:67::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.12; Thu, 29 Feb 2024 20:21:19 +0000 Received: from YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM ([fe80::3f0e:8077:5724:81b1]) by YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM ([fe80::3f0e:8077:5724:81b1%4]) with mapi id 15.20.7339.023; Thu, 29 Feb 2024 20:21:19 +0000 Message-ID: Date: Thu, 29 Feb 2024 15:21:18 -0500 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] gdbserver/linux: probe for libiconv in configure Content-Language: fr To: Tom Tromey , Simon Marchi Cc: gdb-patches@sourceware.org References: <20240228231719.238741-1-simon.marchi@polymtl.ca> <87jzmntbif.fsf@tromey.com> From: Simon Marchi In-Reply-To: <87jzmntbif.fsf@tromey.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQXPR0101CA0060.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c00:14::37) To YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2e::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YQXPR01MB5520:EE_|YT3PR01MB5922:EE_ X-MS-Office365-Filtering-Correlation-Id: f821ef18-b0cf-4ef6-1a9a-08dc3963fd6e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5K0H22SuHIyBkxDIj0zuly9IsSx3J4O0hor8Lv3bsE4LWYBJqcZfQAAHT9UI/HrDORMbCD5ISH76lmVk8DbPLyAEk25qqPr8j7Mbv/zCnD4O90SWS89MV/GmIX/wO/oPvS0fyXfnuGcDiaKtFGYcbNHiPZw9mq9PkVcward16KKQZMyW0cAm3VCrsZVZwrJLOxie+4m9b0gBWYoMVTohM5aq+fywlKKz0GtYd8jS7koym2ciSm3D7BXO0reRTdJLCH1qsneMykaJ0k8BfPbU94OPQA5FSV6kfwUuJYJvs0RbxR8mhkgiCmAG2/YjjGVByYnqP94i/NRkYmTlLfIJsUhrTmUCf8ulqSVa+fqXOYICLmX+WkpJ/arvGQ/anGk6SWjr4YmsA4/PBu9GcLydxhAXRcuPlh5xDq+ak4EWesvZO9B9P1SE+ebkty94i7pIv3QSK4Le65I7vzJs9RUvarTZuihF6TY8g/eU9XXFlGlJyLD94qZDhCXSbFPK5xF9wj3kcCNp1tzvRg7qEA1HWqwBPNBFF9ieSxy9JcbON0Uxd1CmFz2yulXQ+L6BDsElUDPsJkl4XMBk0oE+u5oBaUV0qJFkfQspPov3WmqSwqk1RXHqLXR/AHsyOKzFihnKSUx2cIoiZLlHtyf8aHlHZQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VDV5MmFsR1Y2QUZSTEtNU2laWW1CZEtCR0xNeW95MTZ0ZTAwemNERjBCV25T?= =?utf-8?B?RGIxR2N3YkJwQkNaK2JPU2xheUdTUFRNZEJiSzkrZjNUL0ozMTQyb0dncmpO?= =?utf-8?B?THJlMlQ4VUNGQk5jTThLTThReEZqSDc5Rnk4UGNheGRLdFNRN2NvZ3kwa1R4?= =?utf-8?B?bkNtTVlYMjJEUWdTREczWnJkSlN3NDJ0M0gxejFlMGQvbjNNVkk2SUxxMjNN?= =?utf-8?B?QVVnM0ttOC83L1FnRHhEV1Y4anQ1OC8xUHJ3ak8zQTQvVFVwK1RYMEZYajdE?= =?utf-8?B?MENEZDZyOWNPRk1jSkV3Y2d1a2grd1doTEI1Y3hZaklsMWpvT2FLOCtPU2FE?= =?utf-8?B?TDd0OGZFQVZ2aUxnS1RzMnYxQ1JNMFVaS3lQR21wZ0htS3pjQlpMVXVqUkNT?= =?utf-8?B?dVM3dy9BQTZjMFdoZ3FjcGlMc0lvQ21DMFlXOUpzblBVYk5wdlBUN29kWkVo?= =?utf-8?B?L2cwekR6a2pKVnpwZWFJeHpjWEhjSFlYZ3o3dFR5c1Zib2p0UlZlckhMN0lX?= =?utf-8?B?dHArbHowd1pPOXNyaTVrRUg5MlFXNy9aZUtZeVkyRXNKQkpwRXh2K0hicHZo?= =?utf-8?B?R2FNb2MvTDlSckVMVXBFZU82OXhSSkRpTmxKa2E0NDN2dzZZR0xWallmVjFU?= =?utf-8?B?RXRwUEZBR2dXLzNvWng0U2JaWk56S2F0dVJmanhQcHZGaVRWc0tJMDV1VzhI?= =?utf-8?B?NFRTanRFWTdrSkxLTS9pb1JVVkRQRHp1eHA1NDVBdG9aUHNsdXdTRmsxTWNK?= =?utf-8?B?TGJEbWlhRHhNa3pJMTJWTzg1N3FMQVltRDNBblpaekRLeGl0NXRZajlscnBO?= =?utf-8?B?SSsxRGFQRTh0eW9hZWRxRTR3ams2TW0xOUpYQnlMQkhyZ2JFQTVYbnN0N3dF?= =?utf-8?B?WGk4WG5hWEJCa1dHeXAzRVQ1a2gycmhzRkd4eUswQVFaeXZsc0FEOFVBSm01?= =?utf-8?B?N3BXUmhJNTQ5ZmUrUDBnMXYzUng5aWo5NE5KY3NuMjhZbCtaai9ETDB4NHp5?= =?utf-8?B?UUwvcDQ5Z3E4MW00bnMrT2FqRVRiRXY3eCtzLy8zMTNBRmdDMWh4SWlrTlVM?= =?utf-8?B?SGJ6RGo5OWhkaXNBeG1XMjFITnpFOHBzYWdvNnBOQUI1M0NwTDNveFdKMFJk?= =?utf-8?B?Q04wY2FxR3I2SWtJU1FlOERocmEwaDdDTVpzZnlQR1BGVjc5amFoazJYTTlm?= =?utf-8?B?K3RMbUN5cjZrOWN0b0Z0bnRMODVLaSsybDFpWDlETGF5d3g3OGlFRnJ0Tmg2?= =?utf-8?B?bUJRd1dLNHNTallQVDFzWm9Kem9uL2hIM1lCVEVxVkRMVEpTUjBJNlNOQ1BG?= =?utf-8?B?VVA2Y1o1ZXBmRkxGc3V5MzZmWGtGUDZZRmVndTB3NzhnanBaejVHR2V1akF1?= =?utf-8?B?bUxiVk9hSmtBazhPUDM0MDg1Zk8rMTRGeXZXcDVOaGI2K0IyTWc0YU0yVUhQ?= =?utf-8?B?bTVxT3JpY1Q3NnUyaWFyMEtwWWFwYjZhK3NGc21rb2J1WWxQQkorZ1EvUDhF?= =?utf-8?B?ZVhkMGN3UzRBK1kwV2h5WHdza1FJTVRxWlY4bDNGdFYyMVpMV1RFenIrUnMy?= =?utf-8?B?aVdCWk1lODVHV1pxWUJCdjA5UDN0Y0xVd00zUGdseEZydHZFVU9meVl6S1dM?= =?utf-8?B?TjFRWHUyMkh5aDBGMlJ3SWFyM2N6akpteUFaMmd3d3FqMW1hNXZBcWpjeWxG?= =?utf-8?B?dEpIbStHTXQ5eDdVdCtNSUVkUVlCcnpvWjZub21GczVjNlZGR09NOC9SeGZa?= =?utf-8?B?R0Z2UFEySEUvaXZhaU56TkJrMWhXcTI4UGZTaUhKUWM3eUdOVm51VUVnWXdo?= =?utf-8?B?cWxQQWVyK05FcnJMa3hqME5VS2lXenFxeWRGankrMCtJTElSVFpCSVlBVzJY?= =?utf-8?B?Ynh0L01iZmJmdmhHK3BSZ0oyNGFvc1RkQkZtc3htaTVqYXpvMG5hTXd4cUFR?= =?utf-8?B?bnNxd2VkNnJwbWU5MHpvOXZGbXJ0Y3FWN3A2T1pKTWZ3QXNRUHFJT0sySUFU?= =?utf-8?B?UERYTkFhVEhsZmhEN0NFdGRyN3hCZnJTQTZVd1F2dHlyamprSGdRSzdHTFA0?= =?utf-8?B?WVJEelUydm5Gd2FEU2J1aWNMclNWZ09YVzg4QmIyMDdtT1NmOTB0MUFtTFJB?= =?utf-8?Q?uesHjWFYEYzdNTOBS1DnZN7/l?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: f821ef18-b0cf-4ef6-1a9a-08dc3963fd6e X-MS-Exchange-CrossTenant-AuthSource: YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Feb 2024 20:21:19.8222 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4f278736-4ab6-415c-957e-1f55336bd31e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ePyBHoeEEl7PB07qVx8Y5EajvI5j7iglNR7pJ9xdtBTJy2+q7I60TJ9oVje0/X++YRwPm67wJRl7kgdG4SF1kA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT3PR01MB5922 X-Spam-Status: No, score=-3032.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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 2/29/24 12:40, Tom Tromey wrote: >>>>>> "Simon" == Simon Marchi writes: > > Simon> I downloaded GNU libiconv, built it for that host, and installed it in > Simon> an arbitrary directory. To make gdbserver use it, I had to modify the > Simon> gdbserver build system to locate libiconv and use it, the result is this > Simon> patch. > > Simon> I eventually found that crosstool-ng has an config option to make uclibc > Simon> provide an implementation of iconv, which is of course much easier. But > Simon> given that this patch is now written, I think it would be worth merging > Simon> it. It could help some people who do not have iconv built in their libc > Simon> and may not have the luxury of rebuilding their libc like I do. > > gdb also supports in-tree building of libiconv. To support this case, > you have to patch the top-level to add dependencies on libiconv to > gdbserver. I think it's safe to just copy the gdb code there. Ok, done. > Simon> To avoid unnecessarily linking against libiconv on hosts that don't need > Simon> it, set `MAYBE_LIBICONV` with the contents of `LIBICONV` only if the > Simon> host is Linux, and use `MAYBE_LIBICONV` in `Makefile.in`. I considered > Simon> putting `AM_ICONV` in the case, to avoid unnecessarily doing the > Simon> configure checks for the hosts that don't need libiconv, but I'm not > Simon> sure it's safe. > > IIRC the way it's supposed to work is that the LIBICONV substitution > variable is just set to the empty string in the case that iconv is > available in libc. > > So, just calling AM_ICONV should be sufficient on the configure side. > I don't think adding some more checks to all hosts is a big enough deal > to bother with the 'case'. The case is not to avoid the configure check, but to avoid linking against libiconv on hosts where gdbserver doesn't need libiconv. Let's say you're on freebsd and that on freebsd libiconv is a separate library, not built into libc. gdbserver on freebsd doesn't need libiconv. So even if libiconv is found by AM_ICONV, I don't want to pass those flags ($LIBICONV) to the linker, on freebsd. That's why I introduced the MAYBE_LIBICONV variable, which is only set for Linux hosts But if you tell me that linking against libiconv even if not necessary is not a big deal, I can simplify it. > Probably the source has to be updated to check HAVE_ICONV and do > something sensible if it isn't found. One option would be to just > replace problem characters... the underlying problem being solved here > is that a thread name is a limited number of bytes, so a UTF-8 thread > name might be truncated mid-character. The way I made it is that for hosts where we use libiconv (just Linux for the time being), libiconv is a hard dependency (configure errors out if libiconv is not found). So, no need to change the code itself. Simon