From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id llXRJf4sBmdmGwcAWB0awg (envelope-from ) for ; Wed, 09 Oct 2024 03:13:02 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=qw8pHgww; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=qw8pHgww; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 74D3F1E356; Wed, 9 Oct 2024 03:13:02 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.8 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL, RCVD_IN_VALIDITY_SAFE,UNPARSEABLE_RELAY,URIBL_BLOCKED, URIBL_DBL_BLOCKED_OPENDNS autolearn=ham autolearn_force=no version=4.0.0 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 9E71F1E355 for ; Wed, 9 Oct 2024 03:12:58 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2F3EA38650D6 for ; Wed, 9 Oct 2024 07:12:58 +0000 (GMT) Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on20609.outbound.protection.outlook.com [IPv6:2a01:111:f403:2607::609]) by sourceware.org (Postfix) with ESMTPS id C297C3858D37 for ; Wed, 9 Oct 2024 07:12:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C297C3858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C297C3858D37 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2607::609 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1728457951; cv=pass; b=cTGQd11EHy8uN22Gchq4nCD8qUGa1MztwRhiD4rlsNt98xET+LI803gMTMP1kfqEiGPyYqGeDHJsmEmALCkzOYGeKKZ+jBRUWmbhnxo+fiVsdDjxgDz3MAxnWxEeIZIbxCop/2ZQTxkaB6J61rvGwKZY4kJg2FPRk/0AUIrrfS8= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1728457951; c=relaxed/simple; bh=XrPtoH3GPia60+h4o0/1J4GIYwuHlGPIPaIb/xD2cU0=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:To:From: MIME-Version; b=G6ixWX90nBeMC3pEImMi+54BXVl6xcEb+68GNIguDzVXExKEkjhuxN27X5FTeKKdRQTmmZy/vETCCsUfqolloFr2Mbi+Y3tiRI5nNvEDAG7lhrBZ5JljcAj8wnT9md2IanJko36pTOgvp++Uv4tcO4a0HA0B0tq5Sc70UxRZCao= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=F0n1KFyjL4Bzyh8wpKELn5Ng3bOMFE1rsNuTlDAiKz2k+7oKxdU0Np9B77OuSmdeZZSY6xeRAx7PYnC+o8121MbV+KdY9tyhkVQUmEN+PDOgGm3AwGFzsFWZr+Vw3I/uVFZ3/lpf7OH1ovAMdNwO9nrYbYtuIbGNf4h5oyXWP8YiIQBA9i1xM9bblxYldCbWNFlrpoFZGZnBbcviaCH/dPFZskftHRAKZP7QxpGMGnGsffyeNOIa39aVKnYJuz82SPxJyNk8AtzFqro8yavWTEPObCJ05fOMMOQB+X50LAzySWQvZQ/a6VofuFkPDkjFYMY0oWN8JQ5g7xBOZwH6aQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=+pbCNU75sH++YmQgpvJar1X6A2eTm5Pc81lBJj3XoTs=; b=LzPpie2DANcZR1xy8OFL/NV3j0eSzMP+aCo5JzGk/IDsaage3oOigoS6Ky8h3dj7Ge/N0ntJTwbyFhGDbx+pIdRlm90d7CthO8dQJ5Gv9j9gfUN7QdbUDO/ZjBPj1ykV7RLgIY3B5UNVc0H5nZ9CjJwQjK/Tgx5Eur1cceT96/VVtSswP++bGZ3Wv5JmECumLW0gC6895FpRrOqd85tjtxzhBryBFsVSHYXgDqcUp3MCzOpXQEQ58RiAOmCmvxZQKaHeE076zTtn0+6Z7umPSO3OOrlnCuzO3WP2W7LJvnkV8O53vexFl1d3z8JjFSX+/F2RKHxEMndJ+HV5QNoIXg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+pbCNU75sH++YmQgpvJar1X6A2eTm5Pc81lBJj3XoTs=; b=qw8pHgwwJLWCooBsZEPzNjYJ/rqxJMiLWaGpst4mt3Yo5jG4QsZyNWhsGcioQ/nnC3mcoEPJhB5JVnQTNaE64/7uXmFP4UqB5SHHh5f4QscldMXTVA13OTSQWHj/AHvBvJ/5C2avE2tGmNag9AN9ZrmPzEgDg7H/+8SY/fXPiAM= Received: from DUZPR01CA0297.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b7::8) by PAWPR08MB10184.eurprd08.prod.outlook.com (2603:10a6:102:364::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8026.22; Wed, 9 Oct 2024 07:12:21 +0000 Received: from DU2PEPF00028D01.eurprd03.prod.outlook.com (2603:10a6:10:4b7:cafe::4d) by DUZPR01CA0297.outlook.office365.com (2603:10a6:10:4b7::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.17 via Frontend Transport; Wed, 9 Oct 2024 07:12:21 +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=arm.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 DU2PEPF00028D01.mail.protection.outlook.com (10.167.242.185) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8048.13 via Frontend Transport; Wed, 9 Oct 2024 07:12:21 +0000 Received: ("Tessian outbound 0362136859cb:v473"); Wed, 09 Oct 2024 07:12:21 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: b34b8fdca70bd90c X-TessianGatewayMetadata: Y/NUsfqa8zZYlgej4F0JZ0XrPw4pYLElP9jAr/Bglbx3tD160fY+TjNAY6ZpGIQE0Jw9Hb7X0ZBUi6dx/PIxXqGbfKiG4w6vP722Z9IkE7XcnIjMQB4VFcujBLYXD4gkwE1rdR4oN0YJxLt2LOpeOblF6fmOo6tpVotLICQmMQM= X-CR-MTA-TID: 64aa7808 Received: from L881e6c6f7c7d.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 2CCEE574-0270-40E9-9539-A8E9FE7E9287.1; Wed, 09 Oct 2024 07:12:14 +0000 Received: from EUR03-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L881e6c6f7c7d.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 09 Oct 2024 07:12:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aTKBl9mcQSa43D6YWSgJ5GqfABknVURw0q5XETtqtvF9S9SzYOPNR07kwUNVTOrNnionvGjP3r2uGH1wqdPejkzq/MOFx4K1OyoEDv7okof+vb+ITmlZ+g6bWQA3A8izujTnxTW7LPFZ5sNCzvPZhVB5zt9Y0mXzfKpGl/4LqbgrsTrjTGrQAH8M4qbhmicUU8KGqvpr0wivVF75UqFMdLureXL9qLJOUNaN9WyMo6T4z+pHuQFeYnM4j5JYm1cTQxOTrvt5o7m4OhaXw4sSRf//0YSHA5L/KlJex1+1cIkIQnS086/mDwbSlMIZYqhKvGeXiECH0klCqfW0dQ9+Zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=+pbCNU75sH++YmQgpvJar1X6A2eTm5Pc81lBJj3XoTs=; b=l+Jwz/1W9Eg7+Wpox9XE3kvV8ltuma/+39pjmXHAyq9Twq3xorq5STLCuwU3yadP1tS3JhGp+HedbknxCd4Jog7PrPDU7wHfO7V3klOksUIymEt7GfFLZ7qbgrajWOf7p0EfdgahYswNrIKESNyrYGjPPqcOJDlqXF59AcrlWJXuIPUnZdEQfBOc8pkx7BUpUhgk+VN7NVS6gF4Isqp0LMKUzwLWFe4Dm04bpqiRr42Jt5GOX15HU+HuU+bMLArK/5dxh0fm3hCqWSsOyHJYaF/i/qLQA8DKpZWzYwoKMxo2F/1KWaPusI97cEcw5XDVRTHoeY2AyUEIwE7m1NiO3Q== 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=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+pbCNU75sH++YmQgpvJar1X6A2eTm5Pc81lBJj3XoTs=; b=qw8pHgwwJLWCooBsZEPzNjYJ/rqxJMiLWaGpst4mt3Yo5jG4QsZyNWhsGcioQ/nnC3mcoEPJhB5JVnQTNaE64/7uXmFP4UqB5SHHh5f4QscldMXTVA13OTSQWHj/AHvBvJ/5C2avE2tGmNag9AN9ZrmPzEgDg7H/+8SY/fXPiAM= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from PR3PR08MB5852.eurprd08.prod.outlook.com (2603:10a6:102:8e::21) by DB9PR08MB7583.eurprd08.prod.outlook.com (2603:10a6:10:307::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.16; Wed, 9 Oct 2024 07:12:09 +0000 Received: from PR3PR08MB5852.eurprd08.prod.outlook.com ([fe80::f44:d113:1c29:825d]) by PR3PR08MB5852.eurprd08.prod.outlook.com ([fe80::f44:d113:1c29:825d%5]) with mapi id 15.20.8026.017; Wed, 9 Oct 2024 07:12:08 +0000 Message-ID: <9fec497e-1f8a-40ad-ab5b-436c648d4a8d@arm.com> Date: Wed, 9 Oct 2024 08:12:06 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 3/5] gdb: split osabi support between gdb/ and gdbsupport/ directories Content-Language: en-US To: Andrew Burgess , gdb-patches@sourceware.org References: <63b58681b3abc4ef52c2b17c10bcb26a1a5033ea.1728407374.git.aburgess@redhat.com> From: Luis Machado In-Reply-To: <63b58681b3abc4ef52c2b17c10bcb26a1a5033ea.1728407374.git.aburgess@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO6P265CA0011.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:339::17) To PR3PR08MB5852.eurprd08.prod.outlook.com (2603:10a6:102:8e::21) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: PR3PR08MB5852:EE_|DB9PR08MB7583:EE_|DU2PEPF00028D01:EE_|PAWPR08MB10184:EE_ X-MS-Office365-Filtering-Correlation-Id: 5121be55-2705-45e0-6319-08dce831b7c9 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info-Original: =?utf-8?B?TjFHajIrWEVFc2VqNHg2OUJyZXc1dXJrY2ZScXJrN1krWEZtQ29pcllhazI3?= =?utf-8?B?OHc5SkhGWVdFNW5IQzVzUzZhRHlmek1vUSt6K1dTbHRmSm0ydGFNdHlyNnpO?= =?utf-8?B?MFEvQ0U0SjdvU2FFQVVncXNobDB4b2p4VW9rMTRkMmRlSXdnT0gvZldzYmd5?= =?utf-8?B?Y2Q3NGpsb0l5UldNdVczZjJUOTM0YU5JRDlucDhPQWlRVXZzek5welJSRUJz?= =?utf-8?B?bU9aeXovN2htSzN5NU81dFdsM1NFK2RsMkNPWWkxMjR5WnBGRlJ3Y291Q0hk?= =?utf-8?B?ZmFjRDI5OVdFMExKbzVzclpMNnYycmNFRlgwTnRyN1N0R0hleVFNTFNkS3Bm?= =?utf-8?B?eW9wb2x0V252RDNhdnA3bWRjMWRMejZUU0Rkc3A0dmJvYzRiQUNZYUJFUXc5?= =?utf-8?B?RjFkdzBmOHN2dnhERHE4YjZ2d25MUnNKRS9meGo2NHUvVDIwekNPZDhJaWtQ?= =?utf-8?B?VElXZzhMcTZhdmNreDNGdU1XNitCT0FrNzZweVU3Zm9teEswRlNEQXZtZHNS?= =?utf-8?B?cGViWjZDUTRWRFVMNEVyTExDdVJoMGlJSGREeVQ2NU5haDBRaVdQYjRZZTR6?= =?utf-8?B?OWRINlZYai9GOGovdmtkY3ZUQkltUHpSWW80K2VOWm5iaWVGV2lQVGk1UGd2?= =?utf-8?B?VVJ0TDZXL2Z2SnhSUUMrbHRqR0dQYmZzd2hPNVFqQTlqS2s3Mk05VXpOa01F?= =?utf-8?B?dVZ5OWxjOVoyTWV2NmkzdC9zR1FHV0JaSDRoN1BRdDdBTjl3WkcvRlphU1Zo?= =?utf-8?B?aGNleDVRcC9tMi80ekVrREVpSHhTSFRwenpFTU5MaFlGMk82UW40bFZvekVE?= =?utf-8?B?dm1DRllGZnYxYVJScHliQU1TSUk2UFZTdlUyRkkrZSs0VnduV1BLVHNwR0tJ?= =?utf-8?B?c1JBWjVqSnZQcXR2UXptdGgyWVpoWVB0akVGelY0eVJDaE5PZSt3bzFVSVVs?= =?utf-8?B?S3UwN0FxbDk5NFlEVW4rSHU3U2NFbU1nT0ZVZm04TkhmamNiSmgvMVZXMTFX?= =?utf-8?B?NTZnY0Q0N2VmdFM1YzA0K1Y0SUtaWVFYcStSMi92V25vUzFTUUFaeVlvaVFw?= =?utf-8?B?VWRYR0xRSWlHL08vUU5JNHQyejlIVzAzTzJ5QkNzdEMvKzFhdXVXWk44NzZB?= =?utf-8?B?SzNrSk1FeW0ySUE2eFM2T0ZwbFNKOEE2aWlhUlp4T0FsTTZBUFBNd0xhc0VV?= =?utf-8?B?dXFsSnlKd2tteXkxTUh3U01KT0h0RFVHalh3UkRrcjJ6alF1R1RqZWhNR3Mv?= =?utf-8?B?bS8vMEFVRGpTYmZKWmY5aVgyb3hISmwrWjBIZ0ZqT2hxaUJ1MTVKRUl4ZlY2?= =?utf-8?B?dlN5TkFVdmQrSm9SbVFXWFk4bFBabzVLUE82SzBodmcrL0JKTFV2cnZvbWRy?= =?utf-8?B?bjBqcnRFYmJCOEgxMkdBRy9ldzF4WkpJUUJBL29jYXk1UFBnSFRKNWFOYkdN?= =?utf-8?B?T2JmWnNGT243M0svYXhPOVRWejJiYnRiT25TNlJVOEgvalZzRTUxOG41bG5o?= =?utf-8?B?bTVZM0hQNWVpN0hyM3czN0ZEeGVyek94Q0t6OE9BWVhjK29TTUVoNWJRMnJM?= =?utf-8?B?NkdqRjhBMUdWUzdPUjRmS1I0d2ZzVFFrdlBDWmpkd2lES2M3NHduaEpEdzBz?= =?utf-8?B?bWNLbzl2UHBXRnIyZVBTNEo0RTVpekRBanZacklqZmlHNU9CWXB0cW10VXU1?= =?utf-8?B?QXd3b1l6UkNOVUsveHFqcUJtWHZsRnQrcEd1L3h3TWhYZGkrTEJkSm9RPT0=?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PR3PR08MB5852.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(366016); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7583 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-SkipListedInternetSender: ip=[2603:10a6:102:8e::21]; domain=PR3PR08MB5852.eurprd08.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU2PEPF00028D01.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 301c75f9-3f72-43d7-18e2-08dce831b034 X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|36860700013|376014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?a1BJYjFSWGZLVHoyOWVMMmZ2UjhnVEsxZmhPeG5BdGEvNXdMeWxFbkZsUWV3?= =?utf-8?B?YU94dkg2OWtBVkxvZ0ZzcUQ3Q0lGVWtodlhia3dmTGZ1NitJWHM0RCthcmJq?= =?utf-8?B?SEJJZUw3bU5NVVdYVGJMczhGUWhsTnpIYkcxOUlvUVVuMmpCY0NNRjhGWjl0?= =?utf-8?B?N3ZFL3BuN3lkUUw2Sm5wQXJHbk9vNmEvazA3WDZFZWpoYTVmVURqZEdiclF6?= =?utf-8?B?WElkQzNGOFg5dW9FS0tCQkk5U3hNL1Erb1dKREhuenNDeDZxRmRQY1ZwWGEy?= =?utf-8?B?QkU1WXpHS0NlL0plWUt5U2x1N1lUYVdEc1Q2Nmx1R292NmhkUWZrM0k4Qklq?= =?utf-8?B?YXdHbHlzSWpkbHBKdTZyckRQS0hYNGlzQU9pOUloeDRTbmFYU1JTaVpnWE5J?= =?utf-8?B?RlVPK1lYd2ZvS1JuajV6QXJuQlhJcmVxcG5TRDR3U3MvZEFobEFtM1Q5Wk5n?= =?utf-8?B?cmFIcVpwMzlXL0grNEVteGYzK3V5cTNBK3FlbXBWQ2grTjlqZjlyVzEwSWs5?= =?utf-8?B?WjVBaVlUS3ZLMkgwTTJickkvekJNNnpNNWc1V1NiSVpuMElFYitLQk4rblVy?= =?utf-8?B?TG4rN29OUTJHbG16SEVneUU0SWYyZnFvSWptdFNyQ043U1lUdmR6TW11bVFv?= =?utf-8?B?Umw3M1o5cGZWUTRNRnpycFhpSHBJeGNEczZFMmdZM1ZGVzQrRWkxOWJONlFZ?= =?utf-8?B?MnlNb1lPRWtmTW4vZEVQUHhnWk5HUDBqYy9qaTR4RmRlUUx2TVk0T3JLUzF3?= =?utf-8?B?c1hZRWRPb21BSFNhTGNYd1YxVUlMcXNucUJ6UngxY05reVM2SnFJdXdKZmVI?= =?utf-8?B?T2FkeHZSNUZHTnhLb2NUY0p0NVlPelRvWVhwY0lDSTN0RU4vWVpwVWRjanFa?= =?utf-8?B?bTVFUU5pK0tNYXgxK2J5TXFQN1hXaDUzaS9WLzJnVEtmNmxvSkF1Mmk5ZUJN?= =?utf-8?B?WCtxVHMzcGJMMGlyNFNmVGFmdndIOXJhN0ZmbEhVT0FPOW5yWkxpQzg5VjRC?= =?utf-8?B?TXM3OXVEL1hNRlYwOHROVXp5Nll6QVVEVUEvQkdwWFdqSnNhTE5icUFMNEg4?= =?utf-8?B?WmF0dkt2NGFhNWVDNHFyQmd5Y3FNcG9sYmlKOXdSRlhqMUVqNVpZdmpCUWNF?= =?utf-8?B?QkE0UVVWNGtaUWpIWjJUNEE4K3FZZnYyams1VDkrSlEwQmhob0RURDM5RTZX?= =?utf-8?B?eVFJcUZyRm1iTnNuUnlrY2lnT1FGbDNUZUZuWU5aTGJpbTZMVjVidERsS29m?= =?utf-8?B?bW0rR2VMU05MZWRHMU9mK1RNdXRPYTlreXhxTllsRDhqRlRtSW16ZFN2RzN4?= =?utf-8?B?NGgyQU50UlpTYUdZeHBsYS9mK2pCNkF3VW5JaEczMzVIUlhxc0ZqNHRUTHg5?= =?utf-8?B?V2hoSUI1Wjl4WU1WVmR1RjBTaU1mVGlnd0FiYldLUjhrRmZ0QXBrQ29zMXA0?= =?utf-8?B?Y2lQaW9NcVhDckNDWUk3eDhXSFpVdmZWZHNtR29nR1VER294ME9rTFRmcDc0?= =?utf-8?B?SG9KRG8yS3BqdzJGQmVBWDNZQVhCY1lGdEJiNVpOMVdXcW1jOG4yZHg1bGtq?= =?utf-8?B?eHMxQjNEOXNnOUl5d21Bem5KdmRQUnl3N3RiOTFqYUU2bnh3SWJIVjdnOHF0?= =?utf-8?B?S1ZLQzBwakNWLzR4THNTdEx6VUdoblZ2MGpZWERiT3hsaFdoTWFGUjZRUVFL?= =?utf-8?B?dnB6VEZWdXJUTGhhTFppWFZFaUZjWGh2RHdEeGd6MGt4cDRqd2RYSmh0clpj?= =?utf-8?B?THZVblpSa3hpOG8yRFJFZ20xcGtaTG5yQVkzYitDOVFNWXNrSTNyRFdqMlZU?= =?utf-8?B?MlFzdmkrUTFBcTBhYTdYbWVuWWhBTWVmaUZ5Q292cjFSdmY0QmpBbzAyMDBs?= =?utf-8?Q?MMDCBQ2Q6UlG1?= 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:(13230040)(35042699022)(36860700013)(376014)(82310400026)(1800799024); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Oct 2024 07:12:21.4081 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5121be55-2705-45e0-6319-08dce831b7c9 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: DU2PEPF00028D01.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB10184 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org On 10/8/24 18:11, Andrew Burgess wrote: > In future commits I want to call set_tdesc_osabi from gdbserver/ > code. Currently the only version of set_tdesc_osabi available to > gdbserver takes a string representing the osabi. > > The problem with this is that, having lots of calls to set_tdesc_osabi > which all take a string is an invite for a typo to slip in. This typo > could potentially go unnoticed until someone tries to debug the wrong > combination of GDB and gdbserver, at which point GDB will fail to find > the correct gdbarch because it doesn't understand the osabi string. > > It would be better if the set_tdesc_osabi calls in gdbserver could > take an 'enum gdb_osabi' value and then convert this to the "correct" > string internally. In this was we are guaranteed to always have a > valid, known, osabi string. > > This commit splits the osabi related code, which currently lives > entirely on the GDB wide, between gdb/ and gdbsupport/. I've moved > the enum definition along with the array of osabi names into > gdbsupport/. Then all the functions that access the names list, and > which convert between names and enum values are also moved. > > I've taken the opportunity of this move to add a '.def' file which > contains all the enum names along with the name strings. This '.def' > file is then used to create 'enum gdb_osabi' as well as the array of > osabi name strings. By using a '.def' file we know that the enum > order will always match the name string array. > > This commit is just a refactor, there are no user visible changes > after this commit. This commit doesn't change how gdbserver sets the > target description osabi string, that will come in the next commit. > --- > gdb/osabi.c | 91 ---------------------------------- > gdb/osabi.h | 41 +--------------- > gdbsupport/Makefile.am | 1 + > gdbsupport/Makefile.in | 15 +++--- > gdbsupport/osabi-common.cc | 98 +++++++++++++++++++++++++++++++++++++ > gdbsupport/osabi-common.def | 57 +++++++++++++++++++++ > gdbsupport/osabi-common.h | 54 ++++++++++++++++++++ > 7 files changed, 220 insertions(+), 137 deletions(-) > create mode 100644 gdbsupport/osabi-common.cc > create mode 100644 gdbsupport/osabi-common.def > create mode 100644 gdbsupport/osabi-common.h > > diff --git a/gdb/osabi.c b/gdb/osabi.c > index 8a1efce4599..6c00228fb4a 100644 > --- a/gdb/osabi.c > +++ b/gdb/osabi.c > @@ -42,93 +42,6 @@ static const char *gdb_osabi_available_names[GDB_OSABI_INVALID + 3] = { > }; > static const char *set_osabi_string; > > -/* Names associated with each osabi. */ > - > -struct osabi_names > -{ > - /* The "pretty" name. */ > - > - const char *pretty; > - > - /* The triplet regexp, or NULL if not known. */ > - > - const char *regexp; > -}; > - > -/* This table matches the indices assigned to enum gdb_osabi. Keep > - them in sync. */ > -static const struct osabi_names gdb_osabi_names[] = > -{ > - { "unknown", NULL }, > - { "none", NULL }, > - > - { "SVR4", NULL }, > - { "GNU/Hurd", NULL }, > - { "Solaris", NULL }, > - { "GNU/Linux", "linux(-gnu[^-]*)?" }, > - { "FreeBSD", NULL }, > - { "NetBSD", NULL }, > - { "OpenBSD", NULL }, > - { "WindowsCE", NULL }, > - { "DJGPP", NULL }, > - { "Cygwin", NULL }, > - { "Windows", NULL }, > - { "AIX", NULL }, > - { "DICOS", NULL }, > - { "Darwin", NULL }, > - { "OpenVMS", NULL }, > - { "LynxOS178", NULL }, > - { "Newlib", NULL }, > - { "SDE", NULL }, > - { "PikeOS", NULL }, > - > - { "", NULL } > -}; > - > -const char * > -gdbarch_osabi_name (enum gdb_osabi osabi) > -{ > - if (osabi >= GDB_OSABI_UNKNOWN && osabi < GDB_OSABI_INVALID) > - return gdb_osabi_names[osabi].pretty; > - > - return gdb_osabi_names[GDB_OSABI_INVALID].pretty; > -} > - > -/* See osabi.h. */ > - > -const char * > -osabi_triplet_regexp (enum gdb_osabi osabi) > -{ > - if (osabi >= GDB_OSABI_UNKNOWN && osabi < GDB_OSABI_INVALID) > - return gdb_osabi_names[osabi].regexp; > - > - return gdb_osabi_names[GDB_OSABI_INVALID].regexp; > -} > - > -/* Lookup the OS ABI corresponding to the specified target description > - string. */ > - > -enum gdb_osabi > -osabi_from_tdesc_string (const char *name) > -{ > - int i; > - > - for (i = 0; i < ARRAY_SIZE (gdb_osabi_names); i++) > - if (strcmp (name, gdb_osabi_names[i].pretty) == 0) > - { > - /* See note above: the name table matches the indices assigned > - to enum gdb_osabi. */ > - enum gdb_osabi osabi = (enum gdb_osabi) i; > - > - if (osabi == GDB_OSABI_INVALID) > - return GDB_OSABI_UNKNOWN; > - else > - return osabi; > - } > - > - return GDB_OSABI_UNKNOWN; > -} > - > /* Handler for a given architecture/OS ABI pair. There should be only > one handler for a given OS ABI each architecture family. */ > struct gdb_osabi_handler > @@ -671,10 +584,6 @@ void _initialize_gdb_osabi (); > void > _initialize_gdb_osabi () > { > - if (strcmp (gdb_osabi_names[GDB_OSABI_INVALID].pretty, "") != 0) > - internal_error > - (_("_initialize_gdb_osabi: gdb_osabi_names[] is inconsistent")); > - > /* Register a generic sniffer for ELF flavoured files. */ > gdbarch_register_osabi_sniffer (bfd_arch_unknown, > bfd_target_elf_flavour, > diff --git a/gdb/osabi.h b/gdb/osabi.h > index d2b1a359098..984bdd4e5dc 100644 > --- a/gdb/osabi.h > +++ b/gdb/osabi.h > @@ -19,35 +19,7 @@ > #ifndef OSABI_H > #define OSABI_H > > -/* * List of known OS ABIs. If you change this, make sure to update the > - table in osabi.c. */ > -enum gdb_osabi > -{ > - GDB_OSABI_UNKNOWN = 0, /* keep this zero */ > - GDB_OSABI_NONE, > - > - GDB_OSABI_SVR4, > - GDB_OSABI_HURD, > - GDB_OSABI_SOLARIS, > - GDB_OSABI_LINUX, > - GDB_OSABI_FREEBSD, > - GDB_OSABI_NETBSD, > - GDB_OSABI_OPENBSD, > - GDB_OSABI_WINCE, > - GDB_OSABI_GO32, > - GDB_OSABI_CYGWIN, > - GDB_OSABI_WINDOWS, > - GDB_OSABI_AIX, > - GDB_OSABI_DICOS, > - GDB_OSABI_DARWIN, > - GDB_OSABI_OPENVMS, > - GDB_OSABI_LYNXOS178, > - GDB_OSABI_NEWLIB, > - GDB_OSABI_SDE, > - GDB_OSABI_PIKEOS, > - > - GDB_OSABI_INVALID /* keep this last */ > -}; > +#include "gdbsupport/osabi-common.h" > > /* Register an OS ABI sniffer. Each arch/flavour may have more than > one sniffer. This is used to e.g. differentiate one OS's a.out from > @@ -69,23 +41,12 @@ void gdbarch_register_osabi (enum bfd_architecture, unsigned long, > /* Lookup the OS ABI corresponding to the specified BFD. */ > enum gdb_osabi gdbarch_lookup_osabi (bfd *); > > -/* Lookup the OS ABI corresponding to the specified target description > - string. */ > -enum gdb_osabi osabi_from_tdesc_string (const char *text); > - > /* Return true if there's an OS ABI handler for INFO. */ > bool has_gdb_osabi_handler (struct gdbarch_info info); > > /* Initialize the gdbarch for the specified OS ABI variant. */ > void gdbarch_init_osabi (struct gdbarch_info, struct gdbarch *); > > -/* Return the name of the specified OS ABI. */ > -const char *gdbarch_osabi_name (enum gdb_osabi); > - > -/* Return a regular expression that matches the OS part of a GNU > - configury triplet for the given OSABI. */ > -const char *osabi_triplet_regexp (enum gdb_osabi osabi); > - > /* Helper routine for ELF file sniffers. This looks at ABI tag note > sections to determine the OS ABI from the note. */ > void generic_elf_osabi_sniff_abi_tag_sections (bfd *, asection *, > diff --git a/gdbsupport/Makefile.am b/gdbsupport/Makefile.am > index 36e561e015d..d2e2299cc3f 100644 > --- a/gdbsupport/Makefile.am > +++ b/gdbsupport/Makefile.am > @@ -76,6 +76,7 @@ libgdbsupport_a_SOURCES = \ > job-control.cc \ > netstuff.cc \ > new-op.cc \ > + osabi-common.cc \ > pathstuff.cc \ > print-utils.cc \ > ptid.cc \ > diff --git a/gdbsupport/Makefile.in b/gdbsupport/Makefile.in > index 9cff86bd987..c0d406c3a35 100644 > --- a/gdbsupport/Makefile.in > +++ b/gdbsupport/Makefile.in > @@ -162,12 +162,13 @@ am_libgdbsupport_a_OBJECTS = agent.$(OBJEXT) btrace-common.$(OBJEXT) \ > gdb-dlfcn.$(OBJEXT) gdb_obstack.$(OBJEXT) gdb_regex.$(OBJEXT) \ > gdb_tilde_expand.$(OBJEXT) gdb_wait.$(OBJEXT) \ > gdb_vecs.$(OBJEXT) job-control.$(OBJEXT) netstuff.$(OBJEXT) \ > - new-op.$(OBJEXT) pathstuff.$(OBJEXT) print-utils.$(OBJEXT) \ > - ptid.$(OBJEXT) rsp-low.$(OBJEXT) run-time-clock.$(OBJEXT) \ > - safe-strerror.$(OBJEXT) scoped_mmap.$(OBJEXT) search.$(OBJEXT) \ > - signals.$(OBJEXT) signals-state-save-restore.$(OBJEXT) \ > - task-group.$(OBJEXT) tdesc.$(OBJEXT) thread-pool.$(OBJEXT) \ > - xml-utils.$(OBJEXT) $(am__objects_1) $(am__objects_2) > + new-op.$(OBJEXT) osabi-common.$(OBJEXT) pathstuff.$(OBJEXT) \ > + print-utils.$(OBJEXT) ptid.$(OBJEXT) rsp-low.$(OBJEXT) \ > + run-time-clock.$(OBJEXT) safe-strerror.$(OBJEXT) \ > + scoped_mmap.$(OBJEXT) search.$(OBJEXT) signals.$(OBJEXT) \ > + signals-state-save-restore.$(OBJEXT) task-group.$(OBJEXT) \ > + tdesc.$(OBJEXT) thread-pool.$(OBJEXT) xml-utils.$(OBJEXT) \ > + $(am__objects_1) $(am__objects_2) > libgdbsupport_a_OBJECTS = $(am_libgdbsupport_a_OBJECTS) > AM_V_P = $(am__v_P_@AM_V@) > am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) > @@ -433,6 +434,7 @@ libgdbsupport_a_SOURCES = \ > job-control.cc \ > netstuff.cc \ > new-op.cc \ > + osabi-common.cc \ > pathstuff.cc \ > print-utils.cc \ > ptid.cc \ > @@ -542,6 +544,7 @@ distclean-compile: > @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/job-control.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netstuff.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/new-op.Po@am__quote@ > +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osabi-common.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pathstuff.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print-utils.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ptid.Po@am__quote@ > diff --git a/gdbsupport/osabi-common.cc b/gdbsupport/osabi-common.cc > new file mode 100644 > index 00000000000..785eb478664 > --- /dev/null > +++ b/gdbsupport/osabi-common.cc > @@ -0,0 +1,98 @@ > +/* OS ABI variant handling for GDB and gdbserver. > + > + Copyright (C) 2001-2024 Free Software Foundation, Inc. > + > + This file is part of GDB. > + > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program. If not, see . */ > + > +#include "gdbsupport/osabi-common.h" > + > +/* Names associated with each osabi. */ > + > +struct osabi_names > +{ > + /* The "pretty" name. */ > + > + const char *pretty; > + > + /* The triplet regexp, or NULL if not known. */ > + > + const char *regexp; > +}; > + > +/* This table matches the indices assigned to enum gdb_osabi. Keep > + them in sync. */ > +static const struct osabi_names gdb_osabi_names[] = > +{ > +#define GDB_OSABI_DEF_FIRST(Enum, Name, Regex) \ > + { Name, Regex }, > + > +#define GDB_OSABI_DEF(Enum, Name, Regex) \ > + { Name, Regex }, > + > +#define GDB_OSABI_DEF_LAST(Enum, Name, Regex) \ > + { Name, Regex } > + > +#include "gdbsupport/osabi-common.def" > + > +#undef GDB_OSABI_DEF_LAST > +#undef GDB_OSABI_DEF > +#undef GDB_OSABI_DEF_FIRST > +}; > + > +/* See gdbsupport/osabi-common.h. */ > + > +const char * > +gdbarch_osabi_name (enum gdb_osabi osabi) > +{ > + if (osabi >= GDB_OSABI_UNKNOWN && osabi < GDB_OSABI_INVALID) > + return gdb_osabi_names[osabi].pretty; > + > + return gdb_osabi_names[GDB_OSABI_INVALID].pretty; > +} > + > +/* See gdbsupport/osabi-commomn.h. */ > + > +enum gdb_osabi > +osabi_from_tdesc_string (const char *name) > +{ > + int i; > + > + for (i = 0; i < ARRAY_SIZE (gdb_osabi_names); i++) > + if (strcmp (name, gdb_osabi_names[i].pretty) == 0) > + { > + /* See note above: the name table matches the indices assigned > + to enum gdb_osabi. */ > + enum gdb_osabi osabi = (enum gdb_osabi) i; > + > + if (osabi == GDB_OSABI_INVALID) > + return GDB_OSABI_UNKNOWN; > + else > + return osabi; > + } > + > + return GDB_OSABI_UNKNOWN; > +} > + > +/* See gdbsupport/osabi-common.h. */ > + > +const char * > +osabi_triplet_regexp (enum gdb_osabi osabi) > +{ > + if (osabi >= GDB_OSABI_UNKNOWN && osabi < GDB_OSABI_INVALID) > + return gdb_osabi_names[osabi].regexp; > + > + return gdb_osabi_names[GDB_OSABI_INVALID].regexp; > +} > diff --git a/gdbsupport/osabi-common.def b/gdbsupport/osabi-common.def > new file mode 100644 > index 00000000000..637da26a050 > --- /dev/null > +++ b/gdbsupport/osabi-common.def > @@ -0,0 +1,57 @@ > +/* OS ABI variant definitions for GDB and gdbserver. > + > + Copyright (C) 2001-2024 Free Software Foundation, Inc. > + > + This file is part of GDB. > + > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program. If not, see . */ > + > +/* Each definition in this file is an osabi known to GDB. > + > + The first argument is used to create the enum name and is appended > + to 'GDB_OSABI_'. > + > + The second argument is the osabi name. These strings can't be > + changed _ever_ as gdbserver will emit these. Changing these > + strings would break compatibility with already released versions of > + GDB and/or gdbserver. > + > + The third argument is a regexp which matches against a target > + triplet. */ > + > +GDB_OSABI_DEF_FIRST (UNKNOWN, "unknown", nullptr) > + > +GDB_OSABI_DEF (NONE, "none", nullptr) > + > +GDB_OSABI_DEF (SVR4, "SVR4", nullptr) > +GDB_OSABI_DEF (HURD, "GNU/Hurd", nullptr) > +GDB_OSABI_DEF (SOLARIS, "Solaris", nullptr) > +GDB_OSABI_DEF (LINUX, "GNU/Linux", "linux(-gnu[^-]*)?") > +GDB_OSABI_DEF (FREEBSD, "FreeBSD", nullptr) > +GDB_OSABI_DEF (NETBSD, "NetBSD", nullptr) > +GDB_OSABI_DEF (OPENBSD, "OpenBSD", nullptr) > +GDB_OSABI_DEF (WINCE, "WindowsCE", nullptr) > +GDB_OSABI_DEF (GO32, "DJGPP", nullptr) > +GDB_OSABI_DEF (CYGWIN, "Cygwin", nullptr) > +GDB_OSABI_DEF (WINDOWS, "Windows", nullptr) > +GDB_OSABI_DEF (AIX, "AIX", nullptr) > +GDB_OSABI_DEF (DICOS, "DICOS", nullptr) > +GDB_OSABI_DEF (DARWIN, "Darwin", nullptr) > +GDB_OSABI_DEF (OPENVMS, "OpenVMS", nullptr) > +GDB_OSABI_DEF (LYNXOS178, "LynxOS178", nullptr) > +GDB_OSABI_DEF (NEWLIB, "Newlib", nullptr) > +GDB_OSABI_DEF (SDE, "SDE", nullptr) > +GDB_OSABI_DEF (PIKEOS, "PikeOS", nullptr) > + > +GDB_OSABI_DEF_LAST (INVALID, "", nullptr) > diff --git a/gdbsupport/osabi-common.h b/gdbsupport/osabi-common.h > new file mode 100644 > index 00000000000..99318eb0ca7 > --- /dev/null > +++ b/gdbsupport/osabi-common.h > @@ -0,0 +1,54 @@ > +/* OS ABI variant handling for GDB and gdbserver. > + > + Copyright (C) 2001-2024 Free Software Foundation, Inc. > + > + This file is part of GDB. > + > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program. If not, see . */ > + > +#ifndef OSABI_COMMON_H > +#define OSABI_COMMON_H > + > +/* List of known OS ABIs. If you change this, make sure to update the > + table in osabi-common.cc. */ > +enum gdb_osabi > +{ > +#define GDB_OSABI_DEF_FIRST(Enum, Name, Regex) \ > + GDB_OSABI_ ## Enum = 0, > + > +#define GDB_OSABI_DEF(Enum, Name, Regex) \ > + GDB_OSABI_ ## Enum, > + > +#define GDB_OSABI_DEF_LAST(Enum, Name, Regex) \ > + GDB_OSABI_ ## Enum > + > +#include "gdbsupport/osabi-common.def" > + > +#undef GDB_OSABI_DEF_LAST > +#undef GDB_OSABI_DEF > +#undef GDB_OSABI_DEF_FIRST > +}; > + > +/* Lookup the OS ABI corresponding to the specified target description > + string. */ > +enum gdb_osabi osabi_from_tdesc_string (const char *text); > + > +/* Return the name of the specified OS ABI. */ > +const char *gdbarch_osabi_name (enum gdb_osabi); > + > +/* Return a regular expression that matches the OS part of a GNU > + configury triplet for the given OSABI. */ > +const char *osabi_triplet_regexp (enum gdb_osabi osabi); > + > +#endif /* OSABI_COMMON_H */ Looks good. Thanks for making the change. Approved-By: Luis Machado