From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 4YI4Hq2XlmoUQxoAWB0awg (envelope-from ) for ; Tue, 01 Sep 2026 05:15:25 -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=F2WstY8U; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=F2WstY8U; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 74A3E1E166; Tue, 01 Sep 2026 05:15:25 -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=unavailable 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 115921E09B for ; Tue, 01 Sep 2026 05:15:24 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D39BC4BA23EB for ; Tue, 1 Sep 2026 09:15:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D39BC4BA23EB 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=F2WstY8U; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=F2WstY8U Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010061.outbound.protection.outlook.com [52.101.69.61]) by sourceware.org (Postfix) with ESMTPS id 1C9D04BA79BA for ; Tue, 1 Sep 2026 09:13:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1C9D04BA79BA 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 1C9D04BA79BA Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=52.101.69.61 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1788254002; cv=pass; b=nwmnBlq26Y+NBpHbIsY/dMzmrm46OjV4eIDeYNX356l5+PhLrijKp2DZ2yTZ5Dhvzah4e89lv/fTSQjoZbqzroUmFANdCXfUDDmSENx1iwoNZZKZRbmmFyd7tTp7+aVG2kAkhLrGBxVMB5+Lb3yIQhbfMB9PGFG8eC9usx+MT78= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1788254002; c=relaxed/simple; bh=yP6w3TrS7jO6kqn6O2jsjWRxaHyquQr58guCv2jXgMQ=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=rQlylJfVp15ZFcAXkzBoCgEVfmH0l8IL7UT1TAhRH0A60p3ck09EyCkzEXRs8acapqDRjXHPH5yekEmvXy8gecRsOcqc+SVHwA52g4Dl8LXsG/+rAAnYqujSpIunsWLWpTg0AhbK9IN4SVq7ron/rKNUCvNKKoG9zHNpC5jk/To= 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=F2WstY8U; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=F2WstY8U DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1C9D04BA79BA ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=MOZggpP7oHxYkbO0HPS4YxJrpOJy+YDNqjSAoY8iLHme/3I740kEk+/oCFdjg6ze0qT7WvmZ9z+4PWe+K1IPMb+t6Rabu+tN84Z+6mdfe6HRVGvfiLlqmQXn+ANCC3HwWP1QUGIR6HY0DhZbPE+bljrkBk0zRyY4GLugIVeR+rS9/KhhCor7LTv3lCd4esJThc2BVCdrlG5GLWUnlIFQszcFXg31nxO0q7Emj6KlLXfUGeAvrU6lxSoTM7JN+uBtP67unKCsEnq4gHDfcMMkayrtxBkvaM4pWUo0Xq+pW2Ajzt+xJLWh4obpt4dDRQwiyEzcT12roOv762/h8XoSEw== 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=l+sOWA2ppf+CUBobNikrgqPY3HhLoJsxJI5tfGrrHMU=; b=DNiyz3tys3d+vKqJ7kvLgjWHy3ZAgWkLlpikYH5ggrEofBRfjpVFueJB80/M9J/Gd9/5Ui94Z8xidHcgEO+EPlZk2bSQDiO6C+gD2bbPD86ANVd9D8LPMnL8TajyBhzCc0Cetk51acSSNLntj9QRhCQwxRJqlRRx7gfPLdfKK2zs6O9tPsYUyKuWmVzPIXYurG8t6aenOJ7kN/uU34C+DnBXXyHMo+okIKM4+vHEQZVa1cIKgwwZFDtc/SzoIKYFmOiXWKD6TFgcUmm0AqS8ctIyGC1JfNKttfxNk+yWOAXsk/vPQcWH5U55+f3XEo86/EHkStPEz2XSe/3DPXHdSA== 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=l+sOWA2ppf+CUBobNikrgqPY3HhLoJsxJI5tfGrrHMU=; b=F2WstY8UZ7SKWFuND3vUe2j8RWx2/UvkIr0TDmqSkJc1Hdsw+TC1K0+chzZsy9aoxc7Pa//9Jfi+VuZTlo8J8JLWVHkshGc7cHuc4XRebO8NrxdlSBh5EMzDVlzn7cn9dx52kQ8iVd7c3Xxjhii/rltqi/kKcjlFjyBmnKGEjjQ= Received: from AS9PR06CA0373.eurprd06.prod.outlook.com (2603:10a6:20b:460::8) by AM7PR08MB5317.eurprd08.prod.outlook.com (2603:10a6:20b:101::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Tue, 1 Sep 2026 09:13:14 +0000 Received: from AMS0EPF000001A4.eurprd05.prod.outlook.com (2603:10a6:20b:460:cafe::96) by AS9PR06CA0373.outlook.office365.com (2603:10a6:20b:460::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.360.13 via Frontend Transport; Tue, 1 Sep 2026 09:13:14 +0000 X-MS-Exchange-Authentication-Results: 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 AMS0EPF000001A4.mail.protection.outlook.com (10.167.16.229) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Tue, 1 Sep 2026 09:13:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lQ6JC48jPzucBEWNlU6wvgzO9H9ypbx8mPUX/5LW4KdkD1EU7wSdWfbpbnzNJXdBgkiNYtx0w9/h/Zp7maUypRho4u/4QA++23Zl2C792avxSfB2KgpgYyLF5OGq5TQ3f7yBLOorUIocXOVoxnEvJCzUeLixnCPjgMz2sQq0J2+YhHkz/yCPshzakGOpSA1Q98YppDRFfmcAV6mGvbk8IOMD9thDaa11ESEzlO2qIKTznNjqprVftZu5iQ8iM5JmQ89OKRP8cZ0B6DMB9YYU9kxaVwWbpTPnXcIF0S0tYD98UFY2Di8KmSEbO+NekPWjhe1OHjstqdmSHAxN4u84kg== 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=l+sOWA2ppf+CUBobNikrgqPY3HhLoJsxJI5tfGrrHMU=; b=fOn61KiZ8mUalvyQ2FDCgllBDyEKcyBU08iMHwxeMBCmrTBTVl2tc5KBvVKaCOhkxS+4hTorRzNks/v9c/dXtsW56x/JJ0+HVGMeDnGpvby47Phn2/zIQCVDGPDcL16cxR53ENRU1q0Ne12HaJOiby76ZKh+HdiAxrDMe5+LsYlNQ9G/yd9SFw/fhe1Lv87ISrYFYbfcKgGt3bAM9Ifpcavl3ytruKOYrkgOZkr7XJ5arTpxcLZ2Cq/r2d917VJZ7g3FBgFlZSeBJnN9HeellXRTD1Lz1cVFrkoc9+sE5P1hmjzuNyFbQ3SaNrFkyPZaat0gmG3Zkr6y0MoPVysEig== 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=l+sOWA2ppf+CUBobNikrgqPY3HhLoJsxJI5tfGrrHMU=; b=F2WstY8UZ7SKWFuND3vUe2j8RWx2/UvkIr0TDmqSkJc1Hdsw+TC1K0+chzZsy9aoxc7Pa//9Jfi+VuZTlo8J8JLWVHkshGc7cHuc4XRebO8NrxdlSBh5EMzDVlzn7cn9dx52kQ8iVd7c3Xxjhii/rltqi/kKcjlFjyBmnKGEjjQ= Received: from DB9PR01CA0025.eurprd01.prod.exchangelabs.com (2603:10a6:10:1d8::30) by DB9PR08MB7818.eurprd08.prod.outlook.com (2603:10a6:10:39a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Tue, 1 Sep 2026 09:12:37 +0000 Received: from DB5PEPF00014B8B.eurprd02.prod.outlook.com (2603:10a6:10:1d8:cafe::49) by DB9PR01CA0025.outlook.office365.com (2603:10a6:10:1d8::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.10 via Frontend Transport; Tue, 1 Sep 2026 09:12:35 +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 DB5PEPF00014B8B.mail.protection.outlook.com (10.167.8.199) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Tue, 1 Sep 2026 09:12:35 +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; Tue, 1 Sep 2026 09:12:18 +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; Tue, 1 Sep 2026 09:12:18 +0000 From: To: CC: , , , , , , , Srinath Parvathaneni Subject: [PATCH v4 5/5] gdb/testsuite: Add FEAT_S1POE testcases Date: Tue, 1 Sep 2026 09:12:16 +0000 Message-ID: <20260901091216.5711-6-srinath.parvathaneni@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260901091216.5711-1-srinath.parvathaneni@arm.com> References: <20260901091216.5711-1-srinath.parvathaneni@arm.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2.43.0" Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB5PEPF00014B8B:EE_|DB9PR08MB7818:EE_|AMS0EPF000001A4:EE_|AM7PR08MB5317:EE_ X-MS-Office365-Filtering-Correlation-Id: 13292612-d8c5-4205-7025-08df08094075 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|6049299003|376014|36860700016|23010399003|82310400026|10067099003|11063799006|56012099006|18002099003|22082099003|4053099003; X-Microsoft-Antispam-Message-Info-Original: 3ELlVvxWvo4er7aIwpG/9i7ytAbChEiLqOSW+powyAWLeIgVyitadzgYC0+JacIHyHw5DJtOwG7wz90zYSYyW679Yc5BTm0Cq1D7/bnTkNRF0OXy8685AX7yGAdo81D2Safwmc6Pl/QviSzAJ86vVW1g4vtk7jZSN4gx5zOpEDdYCtwt09KRCFHdXL9CsCiilaHaaDK3uM/zUINiKMQeNKJNfNCYiLIqAShM2qyeoUzPd4JJvLWLSfmQV6FUQbwgCUdAKTS/oPwsfqRpUstpIrawPEqYbm9jmWOp2xTi98BkDejd1x36jY1SW9CJqGZx3iANas1T6Ih+Uegqk6wyWDRrc/x40ufiYTwSdKTKp/UXIjhyvHx/FEjqniwVHkpqaAHlPwUj/iU7uEb8QdzK5vcY5Lb/sixZvgleN18VbCk5PBHyyiiE8LzdccW0qGe+CUsqdaXPV0cTIdCwxL+F8cDQvlHehu+wVKbnizc1oXJ301E8XqsRHXInpaT195msOtb+J6vnOrnnL/Cu+47FtrylnmOEFxWx8t2xG4N5nYvIltsNBVWNVkE4i2vtSVbHP99e78DdLEYMGFLjKS9jLaw2pd0JH8JL09O0wBUnRBX1bj6XSxUpdiDXkYNUPQszMLQoSgXdRFOAtg/hlFYn8CwAg8JvA75JrsEe5TSqIza3ajjVTvIV17gbj/3W5U/9kO0kJyC3rn7mrDwN1jmd6Q== 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)(1800799024)(6049299003)(376014)(36860700016)(23010399003)(82310400026)(10067099003)(11063799006)(56012099006)(18002099003)(22082099003)(4053099003); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: Kr7SnRYVYJs9ebHud5+2RTwSgmDhlfReTXqlpIpGDMphCLqnWc/mGDr+jQtXj5/NVub7XUkmLnWuGfjby7/VoXaRaFz8cdYfFuULSZZ9dR0+7ts7HHD/aBlIzIlShd+cU7xJW+HEK9s5UbBZgqUKXITOhZfvfdDUiooU+A7HrBwlSV5DlvyzELI/+PEk+oU4apjm6nbSxaP9ujx65nnVzXYVZAKbuTbEkf35lZ4athcq9cEvqBrzC8eJo1gqUU7asn3D89iMgNKJr5sdZ267zBlPE/C69niIH/tsU/ffN8a048ldnP6LVOYasYJhN/lsdGs44b3XZA1gpNq5ZefNqA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7818 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS0EPF000001A4.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c8f8eb23-d698-4898-25ac-08df080929d4 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|23010399003|35042699022|14060799003|36860700016|82310400026|1800799024|6049299003|4053099003|10067099003|11063799006|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: nftp2+Hs8YIf4TGD3a5YPqfdo6LmfyChKvPihJYJpT2QC8hZAtRjrfQiDWOXqe2WycY1EYHNif0sDMnM8zNda+4dwFahKXNjWQE03TTkppOdSw1WJcw/oJ1yEl4R2xFCyrKsttNiqN22D6TKY2aDOY6/OgRmMyBmuIIdi8n7LqatkmLoXnC/d7F45Bg0SXEgtCMgP/WIgdFjMeCL5Tih6ObgXc997+EVZpBSIdWWs5tUXFCB3xbKKCrGxXnBhBRpjehhIquxxIeZF/Ed9PwIV8arVNrxVgNIdia73CjrJ7UlHpRe6x8b0d+/9j4mH/LGoIqzl+NJgl/rk5HXUzhjytomAQWeZswva1TBqR7abHwUPyBtwCeqaaktVzZcLgC0k7dmZtQV4LtAgmlNhmwCJ+5L9yqt4DVlIepekN2yrzovF2AcBeJSkX1QLVcfmscwMXxLnNd0tQqwlJROVzjthKsqQ8BbxzbRJT7a9TsRO9VI8wPhK4khyuGXpyhNvADCv2X5kyo/yQbJoeP9/TrEj8EpLY2T9krYb2JUh4xSRe08g2LVq8mycgc0K6SxEOrZN6NLyb1pfdg7kdloaLPww1bIZyNdkExd866fL7vY8+DLph5fWz5rxgubrSbgNmNfDK1ce2YrE5l/hD+Xsac2mt5bHkk1mrouqIf3oNS7dS5h4criRkLXyQNUWq5CCN5Lx/HLB6+bsrOw4llcJXpWNA== 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)(376014)(23010399003)(35042699022)(14060799003)(36860700016)(82310400026)(1800799024)(6049299003)(4053099003)(10067099003)(11063799006)(56012099006)(18002099003)(22082099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: V4+E7VzMfXd94s/TAvm0kixxiOPgqEUC8Pqi0eksg/uHYaFXUHKVo+MOCflPG0M3fQ1vELMnlePKH/ZhF1vM8JwfddtUU45C2W6TJMe46TyjJmM2L2e5mDwdviMz/lpcydRxSjgaymAqeZ9qq6ZD4q9qIvX6LstlyIPxzwTrI1ggF1cJecDrSgNS5SmwmCKV+XQ/o4qnSR4OgW1Cjy3HOVDEZR8r/R+IEb355zStiSvxSqp1la81WZx6511DuAZGnEzWryWVeN7q+Mt6YwgcZXN/1o8Eg7LesoSbZI8nULvRGtz0EhmsZ+reAZYR/JNSt8TD9ULqJ7j6VLR0lu2venfrsOywrTrhhAuZut62fvranrwIJGfU8636W8+0demgxK2jODM8aaN1DJhJ8Kyr1cOQRcnzdwKVCfG0b/gGw4j3B1pCoSxRpxdR1Ctzq0hb X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Sep 2026 09:13:13.8054 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 13292612-d8c5-4205-7025-08df08094075 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: AMS0EPF000001A4.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5317 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 --------------2.43.0 Content-Type: text/plain; charset="UTF-8"; format=fixed Content-Transfer-Encoding: 8bit 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. --- 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 --------------2.43.0 Content-Type: text/x-patch; name="v4-0005-PATCH-5-5-gdb-testsuite-Add-FEAT_S1POE-testcases.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="v4-0005-PATCH-5-5-gdb-testsuite-Add-FEAT_S1POE-testcases.patch" 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 1eb643cdf1a..9747561b488 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -5651,6 +5651,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--