From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id UeiJOE9fqmp7zxEAWB0awg (envelope-from ) for ; Wed, 16 Sep 2026 05:20:15 -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=kOC+JySo; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=kOC+JySo; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id D81581E06B; Wed, 16 Sep 2026 05:20:15 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::32]) (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 9EE6E1E01F for ; Wed, 16 Sep 2026 05:20:12 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2D1B64BA9037 for ; Wed, 16 Sep 2026 09:20:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2D1B64BA9037 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=kOC+JySo; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=kOC+JySo Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013019.outbound.protection.outlook.com [40.107.159.19]) by sourceware.org (Postfix) with ESMTPS id 72CEA4BA2E3B for ; Wed, 16 Sep 2026 09:19:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 72CEA4BA2E3B 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 72CEA4BA2E3B Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=40.107.159.19 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1789550374; cv=pass; b=plCEBNyG4dllfHbCXeywIY+OudX+1Ro/5A46w1n2wW7d3f+1CZ44Yk93gO79XQgySWQHAaWIvqofozVs9tZvI0z6D6woDeqZwGXtySlV+CRynkmJzdWIlUmc9Ojmdb8urVOLdUoF0Xkhxx4MdliowWDVhArHBQv3ZPKw3/tsLwg= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1789550374; c=relaxed/simple; bh=DQddQsB0IxCd+R/cKMElCOwRNnvG5yFnLX6dIgin5Ow=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=sosu6feYfrcymcH/Qj0ZWPp8u18qfobpIii9hMtplR1d0rO4hnbPXBynGXy8k1J2LAlG909zLIJqLaUMj+7zS3ruA0omw0GRaUxkSdkmvNsba+qiqD80DtPrsc/E/Jf5bqOp8EZXGFjsoC/9ZunidjoNRDXx0JPTyzgMzw4gU2c= ARC-Authentication-Results: i=3; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=kOC+JySo; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=kOC+JySo DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 72CEA4BA2E3B ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=LGoA/iwVsMNpX83JasJoGLqkI9bkwLBjkd6HSsFYJJPD7WQqlB+ZlM4VrARknDSjy2TkPIW2K3d/UTEBD2/GiFIO34t4c0IW0nMXvIPqr4Ai77Bsa4W8dRk3mrWhiVXQ13k/Uyl8lGFRyZFhCJ2Mm036xevTTAuxWvUmyRRBmsLEl8QzxFLbfLzUSrFpV6cAvW2yL7Uqd1t533xAl1Ny+iq+jrMpgzBBysZdOEqbl240chpvrD+kXqNcEUl0Gs0sWX5wXrvzXo7A7zxdVWzGpNdmNFYsV0737/CuXySjGwAW3h0l1maaotfowzEuE5y95mY23vCmml8m47gN656ykw== 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=90Z6uQOuvnnrcI9EPbArZmKHQ9QShMf1WdTP/t2JFCo=; b=l4fUlh57GWa6hyqKDmmeUq9685sjh+jzr/uLm3rrt0tqwusBptGWE0i4kjxSrvkRf0DfjI6oCbL/oQeuhmTZB3bNKP7lHCbjRpP85nVFcR1UlOAJLO+/6OQ/MzXFDtDZyjc1PY7d5krhrMzYvGZW895QaY3FGi0j7YHugiXm4YnmW0ermngyklTs/xtMboCdO9NinpaF82n3sZryy4QudVUZm1my8fcX6GYJKMUPD1Lh3HeM3/OPnmZwKrUpzefaXRXC2CNMLYt/7NfwAXl0u4+ocq/JLY+sNjbGLb5AI0lICUvN7jwLrFd6PuRZ1wEjHjIBvEf09m6osq73uO8i8Q== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) 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] 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=90Z6uQOuvnnrcI9EPbArZmKHQ9QShMf1WdTP/t2JFCo=; b=kOC+JySorBc54+F+m+hRKuwSiVQrT30foHbNgpnJNfCpo1piKsVTvH4g1m3AF/Gie+SArgSeuXIV1ZyNkKZE00bmwjrZPKnM/5Y/M82u0PRDPwMo+dRqDDlRhpsD7eUQCPCXheDmq851CgvoKtXQumgdvCHzQhJamO4355l5RIw= Received: from AS4P192CA0045.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:658::25) by AS2PR08MB9643.eurprd08.prod.outlook.com (2603:10a6:20b:608::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.8; Wed, 16 Sep 2026 09:19:18 +0000 Received: from AM7PEPF00000052.EURPRD83.prod.outlook.com (2603:10a6:20b:658:cafe::82) by AS4P192CA0045.outlook.office365.com (2603:10a6:20b:658::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 09:19:17 +0000 X-MS-Exchange-Authentication-Results: mx.microsoft.com 1; spf=pass (sender IP is 4.158.2.129) 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 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by AM7PEPF00000052.mail.protection.outlook.com (10.167.242.38) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.0 via Frontend Transport; Wed, 16 Sep 2026 09:19:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SvnGERCq/rr5WevGSmvAddFfhAjw55Bkm+wXUwk9hF0NF+mFdk5gmum/N12JGRkm2zA5YMFTl3ek/CjNJN6i7qqFpcSg3wRED9PSweCVRadbdF9NL9lKFPcsZXw0uJwr7qHZJBr18vmaXJmerzUjf11XmT4W7OY1CbekQqzcE87sTw6dXa8IiQ4b/PVZPsQ9I+gCZLL4sH1VW2l8KCoTspdFNg5J6NsO/VhicXaIenoXiLIQISYe9mKSZ9+zUAYIgjjhxnkUA/O20KRLxXe1Dx+JnZahtp2QQWnN+KM6mo9NnMggCA0Mw7+eUgzimsvJk2FFvEc96k6MOJwAzvM86w== 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=90Z6uQOuvnnrcI9EPbArZmKHQ9QShMf1WdTP/t2JFCo=; b=V6c54lP2r5dwaePUWT46YdTYe5Jg0hfrK/SHnmEGpExDdhiGzCrOJs6ktoCQcPTM2QBh/YFhprXEvagrle9OpuMiCoQ7KRMSfaLfhTGGomj6X7KrSbCs2vYgZ2NeIYoKCeLAXTNiK5Lg6TIpFnhNcZZOFjFKQPjZl7Q9k1FPeXNZuUHYoWtWJpcM4NwUlmmkrNBMsPQQ8Pm/5yKYi2j1/5jJQqFVtGjvNDo6OUlyrOQ/BF4RWvi6X6X2MbR5GTkj0O08IMB+f7/+p+qyc/RmFPQIFrWRjl1TgivFe0CvYt52yCMPsH3PcSj49rR0bkOXmRJhb9w/AnADZcBOcXn2Zg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 172.205.89.229) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) 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=90Z6uQOuvnnrcI9EPbArZmKHQ9QShMf1WdTP/t2JFCo=; b=kOC+JySorBc54+F+m+hRKuwSiVQrT30foHbNgpnJNfCpo1piKsVTvH4g1m3AF/Gie+SArgSeuXIV1ZyNkKZE00bmwjrZPKnM/5Y/M82u0PRDPwMo+dRqDDlRhpsD7eUQCPCXheDmq851CgvoKtXQumgdvCHzQhJamO4355l5RIw= Received: from MA2P292CA0023.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::18) by MIWPR08MB941365.eurprd08.prod.outlook.com (2603:10a6:290:ac::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.5; Wed, 16 Sep 2026 09:18:42 +0000 Received: from MAD0EPF000008C1.eurprd05.prod.outlook.com (2603:10a6:250:0:cafe::2f) by MA2P292CA0023.outlook.office365.com (2603:10a6:250::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 09:18:42 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (172.205.89.229) by MAD0EPF000008C1.mail.protection.outlook.com (10.167.241.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 09:18:42 +0000 Received: from AZ-NEU-EX04.Arm.com (10.240.25.138) by AZ-NEU-EX04.Arm.com (10.240.25.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Wed, 16 Sep 2026 09:18:06 +0000 Received: from ip-10-249-56-67.eu-west-1.compute.internal (10.249.56.67) by mail.arm.com (10.240.25.138) with Microsoft SMTP Server id 15.2.2562.29 via Frontend Transport; Wed, 16 Sep 2026 09:18:06 +0000 From: To: CC: , , , , , , , Srinath Parvathaneni Subject: [PATCH v5 5/5] gdb/testsuite: Add FEAT_S1POE testcases Date: Wed, 16 Sep 2026 09:18:03 +0000 Message-ID: <20260916091803.110110-6-srinath.parvathaneni@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260916091803.110110-1-srinath.parvathaneni@arm.com> References: <20260916091803.110110-1-srinath.parvathaneni@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: MAD0EPF000008C1:EE_|MIWPR08MB941365:EE_|AM7PEPF00000052:EE_|AS2PR08MB9643:EE_ X-MS-Office365-Filtering-Correlation-Id: eed84100-20a0-43f2-ba10-08df13d3953e x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|376014|36860700016|1800799024|23010399003|82310400026|13003099007|6133799003|3023799007|10067099003|5023799004|11063799006|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info-Original: ccFq17SfI2nJ61kTV4IZBnfBk3fwreo9H7v37NLhaT8bW/gvZ35SZ3UVXBcvlWJnr8rEGcfGrfHL1pqLqZyZwOHuX6h2o0A0OKdxCyiyLN2zvLuqyy9pARCQEzgDueIilxw7sgGKDMYauLvnr0A0ZWAXYGgmindwLVSalr8R2lewb/J1QsEhgE7xFYkoEvPinad510Oy+vXdJAc6cnENzzBnTefVRT6XcgQhXpe+0d8IberX9MFE+yHOebrBuXOXtXE28TOl1EP7HdGjaIMedD4ukKdRPDiAlO6hog83OYIoEatxEhZeaBZj1CBHzG2H2a3Pw3Ac5Qw1V0SX5kCIZWRaW22luBM+UXMQdi7v3XfLKlaPduLvjVYf9v/48lb4eb3Iho0iyzEBHG7DU2MtNJ4sbh7r85N555YuxbM2fJIcWHZySKPe+oE19XNtJ71BVj93wovmWJyXcwBbsVKqRDLaUQEZ3iQcFo8RZK+fsx0eWWNSx9B7q2xK4WOptkjjNqcBOZWoDvKpGVhT/PDIsjWSi4Q+beWoIFwSJjMl02VPoVolDH6yPt6pmaifSXivyuaPM9YkffqVN3R9m3Q6JKYxHHyWOewS4KUxUNqjdbeMU4UeKKkeeowHg4WlyLlES1CSr+KEjBLV4LBVfVSYNr1aKImV+10PLti4PxQTJtYC0dV5EfEW/WvD1v+vD3cJQoQebL0pqvZXM9jM0Tm50w== X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(376014)(36860700016)(1800799024)(23010399003)(82310400026)(13003099007)(6133799003)(3023799007)(10067099003)(5023799004)(11063799006)(56012099006)(22082099003)(18002099003); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: CYIIFbFqJm8Lx9EtiE0eGfa/flPDysFyD3awTdu9B89gJ667o64/hC/3ZUqfhXtVCU674RFrBbE/F8u6y8YsFVM82hAC4Mcf4v3nIK0MohB2irVFTJe0WScaVRdbL00DM3vP6xyVhpKDFayPpmg9Lr5z2rPG9+DzQgOJnyQs0nY81sKqU7tlMAfsqT0Uz0iyHj+mGYYlF36bKCLmgR6AfxrubCyLl/1z4UIAs0R1X73wejZSkK1UFPLWduDwjnjaHJ2dZpxsqLTR/aiGTPjtBOhnR0Hw/EeD5NZ4ZN3EQ5Eksn/lgllhedQpID1ntmdpV6lEyi7cmIf83ObdV5N0Ow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MIWPR08MB941365 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7PEPF00000052.EURPRD83.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: e2983929-e2b6-4ffc-757e-08df13d38074 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|14060799003|23010399003|1800799024|36860700016|35042699022|376014|11063799006|5023799004|6133799003|56012099006|3023799007|10067099003|22082099003|18002099003|13003099007; X-Microsoft-Antispam-Message-Info: QTDP81fHFE5MY/sTQGT16UkxrK3OZnJYDGEV2VW9KfjQJu4zK93tNNR1nn56SktfLNcFnLsV6Q4K0KbSUHoB3dy7gBpwQjHWtsXcWNB/nY1RIVA1Tc9Or8lsLW5AI4gSKUOmp71YqaNiy2w85YWGgsBAP+T1UgbUnArRflr4hK4hGzewkKX8rISNxn5C1bZCrjbExua06owMXJalSddrVg1jOfCnxWSrgartPdJHwdbJS8Dez0uZjyP3rD8V4r8d6iyvzDi27xuJgATzJGb45WhTQFj6Xd6vrMvrzbo3sXFDQiHhAaLbmwNxoNriSyg1asDC2/5eEQfpK/loJIpNYA3ZxMmmaA28bLPGUWl/wg66ZFUM4aGLrGZfsy3toLUpHZdD2RQIjPCt6a7ZgFCM02wL6mOlHEfPgcd20XQZb9HraHcAEBQ9NiEVbmdWkoY3gQB9HHSteE2JNggAcKe4lVQuZdXPMeC6U9SHmCx5vDTf5loTrEi/kFnrYk2nqrXt+zEGErn0SG3NyzbMr6h5I7OyFzMqI04zOsBrNVEblYRqgFF+cmFlhtagRmDnldL4bkrnadRUcl7GgOGFN85TVrlgMxVRd8W3PD2KmcXlWB3q9OrqVP+pD0MM62X4hlE2i2haOpu54FsuapTlIgOOyIvGjEyOGvaKS0c8P/B396ZK3mviES08NpYEN2ULOqj3iPffGldtKdHqr2cdfzfEJQ== X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(82310400026)(14060799003)(23010399003)(1800799024)(36860700016)(35042699022)(376014)(11063799006)(5023799004)(6133799003)(56012099006)(3023799007)(10067099003)(22082099003)(18002099003)(13003099007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: kYyL2pqbbIR4vicg3wQEnkRy2Urvpm3YfVkcuDBo8ikbk4zHGmMue+H1rd4JeurO2eZDXwZ8W7z3ubC133//jvpBvFA7gzLlMVkgWQHaVxj0wDyBSqhFuUkiJhBvmgYPYKLa9bvcIyX0PBUgo+BQ+Kx1lP07udE3IdJoQajfwNJ7GxWAHvNbTthci012xZGEt3Wsbeu/lU1D2wvMKQJSxhrpr4NCKhGForSLU4j4vnvWyeYkH0TPnKIfnzn2fRXJPV/Qssx9x8RsIuoP8QRwmly6Y0rK58F7QMoAzg5HRuOENFxLzpfbps+jXA6WeNuOsvZWaHJOx5W1Ks7WR6hA18O+R/R8HPk4zYMugkLTO3xYw3jAPnRaW5jxlYkEDDW9VdVelwyKCstzl/6B2SiyVfH26T4wovJWl8F8xiUt0ymWWE+aNNi9EXFD4HLoCtMQ X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 09:19:17.1737 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eed84100-20a0-43f2-ba10-08df13d3953e X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: AM7PEPF00000052.EURPRD83.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9643 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 From: Srinath Parvathaneni Add testcases for POR_EL0 register access, POE pseudo-register access, SIGSEGV diagnostics, fix-and-continue support (updating $por_el0 after SIGSEGV and continuing with signal 0), core file support and the test for signal frame unwinding support. Approved-by: Thiago Jung Bauermann --- gdb/testsuite/gdb.arch/aarch64-poe-core.exp | 101 ++++++++++++++++++ gdb/testsuite/gdb.arch/aarch64-poe-sigframe.c | 45 ++++++++ .../gdb.arch/aarch64-poe-sigframe.exp | 55 ++++++++++ gdb/testsuite/gdb.arch/aarch64-poe-sigsegv.c | 52 +++++++++ .../gdb.arch/aarch64-poe-sigsegv.exp | 55 ++++++++++ gdb/testsuite/gdb.arch/aarch64-poe.c | 29 +++++ gdb/testsuite/gdb.arch/aarch64-poe.exp | 60 +++++++++++ gdb/testsuite/lib/gdb.exp | 55 ++++++++++ 8 files changed, 452 insertions(+) create mode 100644 gdb/testsuite/gdb.arch/aarch64-poe-core.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-poe-sigframe.c create mode 100644 gdb/testsuite/gdb.arch/aarch64-poe-sigframe.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-poe-sigsegv.c create mode 100644 gdb/testsuite/gdb.arch/aarch64-poe-sigsegv.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-poe.c create mode 100644 gdb/testsuite/gdb.arch/aarch64-poe.exp diff --git a/gdb/testsuite/gdb.arch/aarch64-poe-core.exp b/gdb/testsuite/gdb.arch/aarch64-poe-core.exp new file mode 100644 index 00000000000..22fe646ac43 --- /dev/null +++ b/gdb/testsuite/gdb.arch/aarch64-poe-core.exp @@ -0,0 +1,101 @@ +# Copyright (C) 2026 Free Software Foundation, Inc. +# +# 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 . + +# This file is part of the gdb testsuite. + +# Test generating and reading a core file with POR_EL0. + +proc check_poe_core_file {core_filename} { + # Load the core file. + if { + [gdb_test "core $core_filename" \ + [multi_line \ + "Core was generated by .*" \ + "Program terminated with signal SIGSEGV, Segmentation fault" \ + "Protection Key Violation while accessing address ${::hex} with Protection Key = ${::decimal}\\." \ + "#0 ${::hex} in main \\(.*\\) at .*" \ + ".*buf\\\[0\\\] = 42;.*"] \ + "load core file"] + } { + untested "failed to load core file" + return -1 + } + + # Check the value of POR_EL0 in the core file. + gdb_test "print/x \$por_el0" " = 0x37" \ + "por_el0 contents from core file" +} + +require allow_aarch64_poe_tests + +standard_testfile aarch64-poe-sigsegv.c + +if {[prepare_for_testing "failed to prepare" ${testfile} ${srcfile}]} { + return +} + +set binfile [standard_output_file ${testfile}] + +if {![runto_main]} { + return +} + +set poe_crash_re [multi_line \ + "Program received signal SIGSEGV, Segmentation fault" \ + "Protection Key Violation while accessing address ${::hex} with Protection Key = ${::decimal}\\." \ + ".*buf\\\[0\\\] = 42;.*"] + +gdb_test_multiple "continue" "run to POE crash" { + -re "$poe_crash_re$gdb_prompt $" { + pass $gdb_test_name + } + + -re ".*exited with code 01.*$gdb_prompt $" { + unsupported "POE userspace support unavailable" + return + } +} + +# Generate the gcore core file. +set gcore_filename [standard_output_file "${testfile}.gcore"] +set gcore_generated [gdb_gcore_cmd "$gcore_filename" "generate gcore file"] + +# Generate a native core file. +set core_filename [core_find ${binfile}] +set core_generated [expr {$core_filename != ""}] + +# At this point we have a couple core files, the gcore one generated by GDB +# and the native one generated by the Linux Kernel. Make sure GDB can read +# both correctly. + +if {$gcore_generated} { + clean_restart + gdb_load ${binfile} + with_test_prefix "gcore corefile" { + check_poe_core_file $gcore_filename + } +} else { + fail "gcore corefile not generated" +} + +if {$core_generated} { + clean_restart + gdb_load ${binfile} + with_test_prefix "native corefile" { + check_poe_core_file $core_filename + } +} else { + untested "native corefile not generated" +} diff --git a/gdb/testsuite/gdb.arch/aarch64-poe-sigframe.c b/gdb/testsuite/gdb.arch/aarch64-poe-sigframe.c new file mode 100644 index 00000000000..dd72f560c87 --- /dev/null +++ b/gdb/testsuite/gdb.arch/aarch64-poe-sigframe.c @@ -0,0 +1,45 @@ +/* This test program is part of GDB, the GNU debugger. + + Copyright 2026 Free Software Foundation, Inc. + + 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 . */ + +/* Exercise AArch64's POE Extension signal frame unwinding. */ + +/* This test is based on the Linux kernel documentation for Memory + Protection Keys, including the arm64 Permission Overlay Extension + (FEAT_S1POE) support described in + Documentation/core-api/protection-keys.rst. */ + +#include +#include +#include + +static int count = 0; + +static void +handler (int sig) +{ + count++; +} + +int +main (int argc, char **argv) +{ + signal (SIGUSR1, handler); + + raise (SIGUSR1); + + return 0; +} diff --git a/gdb/testsuite/gdb.arch/aarch64-poe-sigframe.exp b/gdb/testsuite/gdb.arch/aarch64-poe-sigframe.exp new file mode 100644 index 00000000000..349c3a84ce0 --- /dev/null +++ b/gdb/testsuite/gdb.arch/aarch64-poe-sigframe.exp @@ -0,0 +1,55 @@ +# Copyright (C) 2026 Free Software Foundation, Inc. + +# 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 . + +# Test a binary that uses POE to unwind POR_EL0 from the signal frame context. + +global hex +global decimal + +require allow_aarch64_poe_tests + +standard_testfile +if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } { + return +} + +if {![runto_main]} { + return +} + +# Set POR_EL0 register in main. +gdb_test_no_output "set \$por_el0=0x777" + +gdb_breakpoint "handler" + +gdb_test "handle SIGUSR1 nostop" \ + ".*SIGUSR1.*No.*Yes.*Yes.*" + +gdb_test "continue" \ + ".*Breakpoint ${::decimal}, handler \\(sig=10\\).*" + +# Update POR_EL0 in the current signal handler frame. +gdb_test_no_output "set \$por_el0=0x007" + +# Select the frame above the signal handler frame, which makes GDB unwind the +# POR_EL0 from the signal frame POE context. +gdb_test "frame 2" "#2 ($hex in )?\\S+ \\(.*\\) (at|from) \\S+.*" \ + "reached frame 2" + +# Print POR_EL0 and verify that it reflects the value from frame above the +# signal handler frame. +gdb_test "p/x \$por_el0" \ + "\\$\[0-9\]+ = 0x777" \ + "print/x por_el0 from the frame before the signal handler" diff --git a/gdb/testsuite/gdb.arch/aarch64-poe-sigsegv.c b/gdb/testsuite/gdb.arch/aarch64-poe-sigsegv.c new file mode 100644 index 00000000000..5346e51dbba --- /dev/null +++ b/gdb/testsuite/gdb.arch/aarch64-poe-sigsegv.c @@ -0,0 +1,52 @@ +/* This test program is part of GDB, the GNU debugger. + + Copyright 2026 Free Software Foundation, Inc. + + 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 . */ + +/* Exercise AArch64's POE Extension. */ + +/* This test is based on the Linux kernel documentation for Memory + Protection Keys, including the arm64 Permission Overlay Extension + (FEAT_S1POE) support described in + Documentation/core-api/protection-keys.rst. */ + +#define _GNU_SOURCE +#include +#include + +int +main (void) +{ + long pagesize = sysconf (_SC_PAGESIZE); + + int *buf = mmap (NULL, pagesize, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + if (buf == MAP_FAILED) + return 1; + + int pkey = pkey_alloc (0, 0); + if (pkey == -1) + return 1; + + if (pkey_mprotect (buf, pagesize, PROT_READ | PROT_WRITE, pkey) == -1) + return 1; + + if (pkey_set (pkey, PKEY_DISABLE_WRITE) == -1) + return 1; + + buf[0] = 42; /* Expect SIGSEGV POE violation. */ + + return 0; +} diff --git a/gdb/testsuite/gdb.arch/aarch64-poe-sigsegv.exp b/gdb/testsuite/gdb.arch/aarch64-poe-sigsegv.exp new file mode 100644 index 00000000000..e8bd0c0f22f --- /dev/null +++ b/gdb/testsuite/gdb.arch/aarch64-poe-sigsegv.exp @@ -0,0 +1,55 @@ +# Copyright (C) 2026 Free Software Foundation, Inc. + +# 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 . + +# Test a binary that supports FEAT_S1POE and exposes POR_EL0 register. + +global hex +global decimal + +require allow_aarch64_poe_tests + +standard_testfile +if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } { + return +} + +if {![runto_main]} { + return +} + +# Display POE violation SIGSEGV error message. +set poe_sigsegv_re [multi_line \ + "Program received signal SIGSEGV, Segmentation fault" \ + "Protection Key Violation while accessing address ${hex} with Protection Key = ${decimal}"] + +gdb_test_multiple "continue" "display POE violation information" { + -re "$poe_sigsegv_re.*$gdb_prompt $" { + pass $gdb_test_name + } + -re ".*exited with code 01.*$gdb_prompt $" { + unsupported "POE userspace support unavailable" + return + } +} + +# Fix the POE permissions (set $por_el0) and continue without delivering SIGSEGV. +gdb_test_no_output "set \$por_el0 = 0x57" \ + "allow write access by updating POR_EL0" + +gdb_test_multiple "signal 0" "continue after fixing POE fault" { + -re ".*exited normally.*$gdb_prompt $" { + pass $gdb_test_name + } +} diff --git a/gdb/testsuite/gdb.arch/aarch64-poe.c b/gdb/testsuite/gdb.arch/aarch64-poe.c new file mode 100644 index 00000000000..2c95dc2a99b --- /dev/null +++ b/gdb/testsuite/gdb.arch/aarch64-poe.c @@ -0,0 +1,29 @@ +/* This test program is part of GDB, the GNU debugger. + + Copyright 2026 Free Software Foundation, Inc. + + 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 . */ + +/* Exercise AArch64's POE Extension. */ + +/* This test is based on the Linux kernel documentation for Memory + Protection Keys, including the arm64 Permission Overlay Extension + (FEAT_S1POE) support described in + Documentation/core-api/protection-keys.rst. */ + +int +main (void) +{ + return 0; +} diff --git a/gdb/testsuite/gdb.arch/aarch64-poe.exp b/gdb/testsuite/gdb.arch/aarch64-poe.exp new file mode 100644 index 00000000000..9d8c472409c --- /dev/null +++ b/gdb/testsuite/gdb.arch/aarch64-poe.exp @@ -0,0 +1,60 @@ +# Copyright (C) 2026 Free Software Foundation, Inc. + +# 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 . + +# Test a binary that uses POE and exposed POR_EL0 register. + +global hex +global decimal + +require allow_aarch64_poe_tests + +standard_testfile +if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } { + return +} + +if {![runto_main]} { + return +} + +# Validate the presence of the POE register. +gdb_test "info registers por_el0" \ + "por_el0\[ \t\]+$hex.*" \ + "info register por_el0 available" + +gdb_test "p \$por_el0" \ + "\\$\[0-9\]+ = .*" \ + "print por_el0 available" + +gdb_test "p/x \$por_el0" \ + "\\$\[0-9\]+ = ${hex}" \ + "print/x por_el0 available" + +gdb_test "info registers por" \ + "por_el0\[ \t\]+$hex.*por_p\[0-9\]+\[ \t\]+$hex.*" \ + "info registers por group available" + +gdb_test_no_output "set \$por_el0 = 0x007" \ + "initialize POR_EL0" + +gdb_test_no_output "set \$por_p1 = 0x07" \ + "write por_p1 pseudo-register" + +gdb_test_no_output "set \$por_p3 = 0x07" \ + "write por_p3 pseudo-register" + +gdb_test "p/x \$por_el0" \ + "\\$\[0-9\]+ = 0x7077" \ + "POE pseudo-register writes reflected in POR_EL0" diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 1ebdaf6ba10..9b007d9b130 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -5691,6 +5691,61 @@ gdb_caching_proc allow_aarch64_gcs_tests {} { return $allow_gcs_tests } +# Run a test on the target to see if it supports AArch64 POE extensions. +# Return 1 if so, 0 if it does not. Note this causes a restart of GDB. + +gdb_caching_proc allow_aarch64_poe_tests {} { + global srcdir subdir gdb_prompt inferior_exited_re + + set me "allow_aarch64_poe_tests" + + if {![is_aarch64_target]} { + return 0 + } + + # Compile a program that tests the POE feature. + set src { + #include + #include + + /* Feature check for POE feature. */ + #ifndef HWCAP2_POE + #define HWCAP2_POE (1ULL << 63) + #endif + + int main (void) { + bool poe_supported = getauxval (AT_HWCAP2) & HWCAP2_POE; + + /* Return success if POE is supported. */ + return !poe_supported; + } + } + + if {![gdb_simple_compile $me $src executable]} { + return 0 + } + + # Compilation succeeded so now run it via gdb. + set allow_poe_tests 0 + clean_restart + gdb_load $obj + gdb_run_cmd + gdb_expect { + -re ".*$inferior_exited_re normally.*${gdb_prompt} $" { + verbose -log "\n$me: poe support detected" + set allow_poe_tests 1 + } + -re ".*$inferior_exited_re with code 01.*${gdb_prompt} $" { + verbose -log "\n$me: poe support not detected" + } + } + gdb_exit + + remote_file build delete $obj + verbose "$me: returning $allow_poe_tests" 2 + return $allow_poe_tests +} + # A helper that compiles a test case to see if __int128 is supported. proc gdb_int128_helper {lang} { return [gdb_can_simple_compile "i128-for-$lang" { -- 2.43.0