Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2220856/?format=api
{ "id": 2220856, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2220856/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260408091202.13538-2-muhammad.kamran@arm.com/", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/1.1/projects/17/?format=api", "name": "GNU Compiler Collection", "link_name": "gcc", "list_id": "gcc-patches.gcc.gnu.org", "list_email": "gcc-patches@gcc.gnu.org", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20260408091202.13538-2-muhammad.kamran@arm.com>", "date": "2026-04-08T09:12:01", "name": "[1/2] testsuite: Extend object-readelf beyond attributes", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "9d3e2d7095b6c599b3bf41517cef3c82b37450d2", "submitter": { "id": 92852, "url": "http://patchwork.ozlabs.org/api/1.1/people/92852/?format=api", "name": "Muhammad Kamran", "email": "muhammad.kamran@arm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260408091202.13538-2-muhammad.kamran@arm.com/mbox/", "series": [ { "id": 499105, "url": "http://patchwork.ozlabs.org/api/1.1/series/499105/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=499105", "date": "2026-04-08T09:12:00", "name": "aarch64/testsuite: improve object-readelf and add LTO branch-protection tests", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/499105/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2220856/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2220856/checks/", "tags": {}, "headers": { "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=selector1 header.b=NIkG91if;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=NIkG91if;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)", "sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=selector1 header.b=NIkG91if;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=NIkG91if", "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=arm.com", "sourceware.org; spf=pass smtp.mailfrom=arm.com", "server2.sourceware.org;\n arc=pass smtp.remote-ip=40.107.159.11" ], "Received": [ "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4frHSH68R7z1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 08 Apr 2026 19:14:07 +1000 (AEST)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 073594BA2E14\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 8 Apr 2026 09:14:06 +0000 (GMT)", "from OSPPR02CU001.outbound.protection.outlook.com\n (mail-norwayeastazon11013011.outbound.protection.outlook.com [40.107.159.11])\n by sourceware.org (Postfix) with ESMTPS id 18D8C4BA2E10\n for <gcc-patches@gcc.gnu.org>; Wed, 8 Apr 2026 09:13:27 +0000 (GMT)", "from DU2P251CA0028.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:230::32)\n by PAWPR08MB9591.eurprd08.prod.outlook.com (2603:10a6:102:2ef::13) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Wed, 8 Apr\n 2026 09:13:22 +0000", "from DB1PEPF00050A00.eurprd03.prod.outlook.com\n (2603:10a6:10:230:cafe::2c) by DU2P251CA0028.outlook.office365.com\n (2603:10a6:10:230::32) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.35 via Frontend Transport; Wed,\n 8 Apr 2026 09:12:58 +0000", "from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by\n DB1PEPF00050A00.mail.protection.outlook.com (10.167.242.42) with Microsoft\n SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.21\n via Frontend Transport; Wed, 8 Apr 2026 09:13:21 +0000", "from DU2PR04CA0341.eurprd04.prod.outlook.com (2603:10a6:10:2b4::30)\n by DB9PR08MB11338.eurprd08.prod.outlook.com (2603:10a6:10:60c::9)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Wed, 8 Apr\n 2026 09:12:16 +0000", "from DB3PEPF00008859.eurprd02.prod.outlook.com\n (2603:10a6:10:2b4:cafe::d5) by DU2PR04CA0341.outlook.office365.com\n (2603:10a6:10:2b4::30) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.37 via Frontend Transport; Wed,\n 8 Apr 2026 09:12:16 +0000", "from nebula.arm.com (172.205.89.229) by\n DB3PEPF00008859.mail.protection.outlook.com (10.167.242.4) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9769.17 via Frontend Transport; Wed, 8 Apr 2026 09:12:16 +0000", "from AZ-NEU-EX03.Arm.com (10.240.25.137) by AZ-NEU-EX04.Arm.com\n (10.240.25.138) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Wed, 8 Apr\n 2026 09:12:13 +0000", "from ip-10-249-57-232.eu-west-1.compute.internal (10.249.57.232) by\n mail.arm.com (10.240.25.137) with Microsoft SMTP Server\n (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29 via Frontend\n Transport; Wed, 8 Apr 2026 09:12:13 +0000" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 073594BA2E14", "OpenDKIM Filter v2.11.0 sourceware.org 18D8C4BA2E10" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 18D8C4BA2E10", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 18D8C4BA2E10", "ARC-Seal": [ "i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1775639607; cv=pass;\n b=HorELNIQ/7QOCzxGp7Ua5zafJ9yHDm6W7tqlGAKQ6A4ZJITCZT47ne+HTlz7O9mzQTIQIiJaF1Ln/VsYDZ7NDVHd6MX07gTW2D56T0X90WAto/14PUmSq9CsthUoWgEa5REKIjZjGAwzDjiH+mE+DPTzjBvO7yjHRdGsUb8kiaQ=", "i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;\n b=RWmzcaP3GNOcK1j6dVIt1wA7igRNHKvXHaoWjhFHX0KudTnWaYU1w3lmyT76H8laGHDxAVXId+H+hI+zMfqkMeMcLoik0G13HpkBfjdd22xft5CchiSNfYThi0EiRQdpnDbk83a5irNIWMsH74rfUF0bvneF/N6UboU+wLs9KfnOyn41A/sLVPoa68X+WUdg1LUVmBMGt+JkpUEcLPKR3sUgZmUPA2KlJfGeEVg46hzBhdJgz9sgAckXRZNDp9nILYs1ofQKx5smoOnd+e5rYd1+3ZVuZtjwaj5HUD/DO0lQ9wsxM5/KKLxGmm/Qj3TN+EjR3l2qO4ofmqwN4R2WLA==", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=Ela2pDIZG2ek5wo8wFZCzKnlnbKa6D5J3AK6JUiROE3T4a0M8tJilDzaQliheFCw1b2OxW2sB8Retiq4iVmn4g5bsc6qHdq+kvXp/dGW3cKnW2Q7ldBs4srwa6lzJC4m0qfdo0IIV9Do5r8bplzvH0ZFOoha2N9heEKZzEY2DjQKapKaV8CQvEKckS0CCR5QLlJmhgxsSjeEKGIm3cXBtKKumNxL+xwCQWzrxQZRdz4jfbDd6Whc42l0LJIeW+XLRef/79JEDKWj1TmJd+X/gB9p6/Q0SN+XXxnhSG6B7pyq7bcCfJloBSsxWXpeOb17Vrf/5aRJAgKbvEawBFt4LQ==" ], "ARC-Message-Signature": [ "i=3; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775639607; c=relaxed/simple;\n bh=szKUTAVzfDufWWjWvYuhJz5zlV92/yWjiN+8xIJNy7o=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=twyY15GhfjY+C5nszX0fO5b8926na3RI88tyW6pKXaHuuURJtlQjYUzLytfMi3XdnxwZXDwGNqz5mTPFQe9gOfKIEGfRHMkXlpuSSx2C1ExVTriMq8EM38AsWA6gfXGy0lU5pNluMMzSGzKGskZWMnjrc0IAqgBR+CtpOSV9Z0Y=", "i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=frzu8h5iWOwjOjEiWGHIb2o7fhXQ6Vn40ztzk6U+VIo=;\n b=GPequSmsy9tGFNG7nAEiuu7xpvqHj6ByoA9YyaJxZRft7rYdkNIRsxngahk+njCVGLkURQ41Y08litp+dRN/ohPgaqKgEkm2XejllFILZ9xWctsso9ScHJvoeIqIkSwJSLXf5bie06l4E9CWJyiCrZ6bHZg4WkGACTsNjC//hUDtP8x0Tp0dWPaKpzsCVz4IJ6fVvzgM+8vUPOp1j3T7tRCc5vlCqme+W+8VVDPfaCpJtyN56strEqrMTqb42GGFWfGxABBAXXlfhhDenq04YMH5ahpHssJZpp0R/RohUmIU2LMGAWjqc4LIt+9G4Gi+xUl4v8xKyoYzUvC0lnJ9aQ==", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=frzu8h5iWOwjOjEiWGHIb2o7fhXQ6Vn40ztzk6U+VIo=;\n b=PKy6iKfciBmVJOU6IM59tSeqUgNSjzakWxIGIKxuXdYDHr8kMTcudw2GZGl6liF1qf52gPi13OM/jIO13ghDJR1Die/6LopwYFC3GBvpctBk3q0y1ecvDSDxb91e20k4CsWKZfhW0O/ojxPnJrJ0jJs+bb0w5qhf37hndjwF02QZsNKzwB6tnvWI3GAq4oLT5WyOIC0mUSY/AWEwWLvkmmlN0wK2Fv+ymsWkHm8GjzKz9JEJnp4+Iow73WGYjRDwDxy/k0SY2GILa9aXVJLM5Wu3p50j0ljsU+qn1RY+RZaJzpGSabkvlM2LN23zFb7tIk74V80AXNe/A+8+em51FQ==" ], "ARC-Authentication-Results": [ "i=3; server2.sourceware.org", "i=2; mx.microsoft.com 1; spf=pass (sender ip is\n 4.158.2.129) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass\n (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass\n (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1\n spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com])", "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com;\n dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;\n dkim=none (message not signed); arc=none (0)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=frzu8h5iWOwjOjEiWGHIb2o7fhXQ6Vn40ztzk6U+VIo=;\n b=NIkG91ifdpF7olJpQ0MpTbDkLMoiSvSCS1dCopeoyu3XmJrAhBJdKkHSKbunmtjZRgr2ObM6vb5JIVWHGj8mtZbWQIeeHTe/6LFYbc7Y+ef3gKyq+/AQI74hbMO9R90JgEbQNKdaYnI+BKw64I7j4fBQ4Fw/L1xkvXp/4Q9dVe0=", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=frzu8h5iWOwjOjEiWGHIb2o7fhXQ6Vn40ztzk6U+VIo=;\n b=NIkG91ifdpF7olJpQ0MpTbDkLMoiSvSCS1dCopeoyu3XmJrAhBJdKkHSKbunmtjZRgr2ObM6vb5JIVWHGj8mtZbWQIeeHTe/6LFYbc7Y+ef3gKyq+/AQI74hbMO9R90JgEbQNKdaYnI+BKw64I7j4fBQ4Fw/L1xkvXp/4Q9dVe0=" ], "X-MS-Exchange-Authentication-Results": [ "spf=pass (sender IP is 4.158.2.129)\n smtp.mailfrom=arm.com; dkim=pass (signature was verified)\n header.d=arm.com;dmarc=pass action=none header.from=arm.com;", "spf=pass (sender IP is 172.205.89.229)\n smtp.mailfrom=arm.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=arm.com;" ], "Received-SPF": [ "Pass (protection.outlook.com: domain of arm.com designates\n 4.158.2.129 as permitted sender) receiver=protection.outlook.com;\n client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C", "Pass (protection.outlook.com: domain of arm.com designates\n 172.205.89.229 as permitted sender) receiver=protection.outlook.com;\n client-ip=172.205.89.229; helo=nebula.arm.com; pr=C" ], "From": "Muhammad Kamran <muhammad.kamran@arm.com>", "To": "<gcc-patches@gcc.gnu.org>", "CC": "Richard Earnshaw <richard.earnshaw@arm.com>, Tamar Christina\n <tamar.christina@arm.com>, Kyrylo Tkachov <ktkachov@nvidia.com>, \"Alice\n Carlotti\" <alice.carlotti@arm.com>, Alex Coplan <alex.coplan@arm.com>,\n \"Andrew Pinski\" <andrew.pinski@oss.qualcomm.com>, Wilco Dijkstra\n <wilco.dijkstra@arm.com>, Jakub Jelinek <jakub@redhat.com>, Rainer Orth\n <ro@CeBiTec.Uni-Bielefeld.DE>, Mike Stump <mikestump@comcast.net>, \"Muhammad\n Kamran\" <muhammad.kamran@arm.com>", "Subject": "[PATCH 1/2] testsuite: Extend object-readelf beyond attributes", "Date": "Wed, 8 Apr 2026 09:12:01 +0000", "Message-ID": "<20260408091202.13538-2-muhammad.kamran@arm.com>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20260408091202.13538-1-muhammad.kamran@arm.com>", "References": "<20260408091202.13538-1-muhammad.kamran@arm.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"UTF-8\"", "Content-Transfer-Encoding": "8bit", "X-EOPAttributedMessage": "1", "X-MS-TrafficTypeDiagnostic": "\n DB3PEPF00008859:EE_|DB9PR08MB11338:EE_|DB1PEPF00050A00:EE_|PAWPR08MB9591:EE_", "X-MS-Office365-Filtering-Correlation-Id": "262f9680-a317-4515-fdcf-08de954f14f2", "x-checkrecipientrouted": "true", "NoDisclaimer": "true", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam-Untrusted": "BCL:0;\n ARA:13230040|376014|36860700016|82310400026|1800799024|56012099003|18002099003|22082099003|13003099007;", "X-Microsoft-Antispam-Message-Info-Original": "\n FO0rs/mNDdHYUAfESoMY1+YyjOHBwfCVnr4NUZfHmLkkG0rJjIxkyHJ0nTz//pRmdRA0FbUeuUTLKxh/MzrXyuXLQstcVkyI4DHSSdNPzl/ub/pDPVXoSqFpSeWjiA6lB+VNxnpU/85XEHdo1JN5O1aF8N5MUAniapEY22V0FWEnZ7TFN364ofQVFMqgzuuAlef5AuiUtxbjRj5X8ttqGxFbuKpR74AbUWgl6NWNhoOr4zPKP5pkBYNNyiFCOTt4IWExSFrtc9h9AN0JlUpbCWXRfRW+x94jrJBnIpp4+tVeQ2gnUP0isx2R9XKxmQ7b0kmxz/mA4JxdjHnp+QxqbOmYITCrGoCyZOTx32zeGI45Rc4PYIB2DT7hgGpXY/5QgJnwcKjCTdzvJQ0pSeU/uCj49OtnooEDl+tmhB3pmknUdRq1B25P7+xOeipMoWqHToirLIm+UYLNFAhe1ZzLuyEb5sgcIFeq7/TZ35QliWgup5J9KSLeQdMXtXaLlBSrHnUHKPvWv0JGQIgR98Io9vK9IJfmg7LuOMHJDx2g+HToK010iBBj3n7KmeEMUVy7no/BWCt1aJwZDCmvakQvElDHVodqkiiXprmWgx8o8t9Cxr4HWLuaT5h5wg/iT7Lv5bH2bGMARYt7qE+NzraicYc3Ndn7zuRr3+wM1sz5i0gtL6U+nWYR0faf931fP/rqXh7IaWk5YMHLQgqxM7BvBd5ohbgOSVKzByEiTzWi2Cg=", "X-Forefront-Antispam-Report-Untrusted": "CIP:172.205.89.229; CTRY:IE; LANG:en;\n SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent;\n CAT:NONE;\n SFS:(13230040)(376014)(36860700016)(82310400026)(1800799024)(56012099003)(18002099003)(22082099003)(13003099007);\n DIR:OUT; SFP:1101;", "X-Exchange-RoutingPolicyChecked": "\n H3ZL/sdQwKBE+5IXlc1cgb7LJ89D0kGz0XE+ySdr64OgL1vbVrUYhlENKPlWpKpWo9u8HSBdSsvowZ2toamA6bBkWoq1ICRxXkUxwDYJ7B0PMJeIm5XqKCbg2+pTX0Wzfxk7vsoC4CV4fqabk56/2+68f8SZPz+CcKcBTojLJayXobn4uGKKRQDwNyRPgEEpJfM+F/1xjUR+b0JnSspbjFHBVluyoUZkYFyAGBfxYoGnfc6pUYkeKeY/Y1//X4hAVb0Be84o9a6rdiM4UfYwcdj8QG6q9BMEspdsmqTvG3KR7PZBFRG1gZeWwhkmotPYZP2R8iolDLvr2Cm86hWcDg==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [ "DB9PR08MB11338", "PAWPR08MB9591" ], "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n DB1PEPF00050A00.eurprd03.prod.outlook.com", "X-MS-PublicTrafficType": "Email", "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n f15fc7e0-3ee9-41f4-838a-08de954eee2e", "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|82310400026|1800799024|14060799003|36860700016|376014|35042699022|18002099003|56012099003|22082099003;", "X-Microsoft-Antispam-Message-Info": "\n Ie2irFNdq0MziuKYmtaD9VhN6gXyEeVsV2UD1XC2eq9tUKAAu81gww/n296YNo1+NGS2reYQFNgBnqXa8QQ+rR41xgaYD+6sXI3smhFmJT1EVDjnvH5n/zkv7g2q2SSHdo6SPo677uOQ4+ta0qbqtFy1u61JGY0IgvSffGu5tyBMFG0YiNkHS+CCilaSflFSYRqzbdqBAQmj2MTfz/U5fWq632UX4h71wLDayMmIutG/HJXmg2cQrIZnqu59qGwdXoGG9Ex0+RdqL451fEd9oDCbJVhk/LEXFR2xb0XKjTjKwIucjV1GhyexVygo5IgixZVQTy9Bl3mawFgyliNpbdaQqMesZBBQp1sfxPKW42KwLb53zP0BDW+6KU+nvoMgvaejDBCRACUXhwSnVW/2cw4Lmz/lz91HnDvMqMApsvyaL/Tc9wFozfkJKheEHnAIhjMgR6t1+JsroBxPhwNWFqAbdYVL4EvZfs8grBwV+IgBERLfJjf+GhxDMTxDTqi4qXJK4645SV6QzTX/Kq4+APn24d40mLJow/FPRAPXH3Dc1n43ld5i+7kPb+pNZORoM70QkcCDzjmv+7sBNSowzyknN7/kiW/t0gF19EZNRSurFxaOhaIO4xRz7wsSQnaUJePcAsJKjw3psDWJnomZpmZwGcO6W6gZuram/gfxXRrv4zN4KWrM9sU9j+jv9VaZ4xpR3egGJktynNfV0IpKNtb4yXE8nwDYGtrMtwMJm6A=", "X-Forefront-Antispam-Report": "CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com;\n PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230040)(82310400026)(1800799024)(14060799003)(36860700016)(376014)(35042699022)(18002099003)(56012099003)(22082099003);\n DIR:OUT; SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n M80ff37OiaECEuo4L8mjOiZZoGIzpoXnR5IV3f2cn0HoVljF4nYj3ZdEVM8DucBE8zivJM6IIxaKYkCPHbWWAM7Bu9L8P57gOLcFPrbQKAvGtApoaUQ0CqpULcOyghaapUtmV2tv9066lDEyPFuXkIs/3oOvwKSMG55uKMSg3rXEhFB8olVuBDEbjIwhsQ1Yiq5qpFHbsayUl4UZOuI+lVljvxmfK2SnfMeZ5boBCo0XpFrJyqeyPP/Ntog5KrTL81pD9tec3NpxKo6TUCyKRfBEMiWPT+GGvt7fDG/j+rNf0lT395hHUkcZGONAtf4MNfYAh4bWq86yI49fPgEMwiuWcOCpB17QgaE4VU2uNGY/KaRC9vWxCwm2mDMY9fhWBMKihy5uNirrgBB5MuFUJTPBfLD/gQd1DeIavFyhkLRLHRJ0yj+xEsWWQO8vept9", "X-OriginatorOrg": "arm.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "08 Apr 2026 09:13:21.8337 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 262f9680-a317-4515-fdcf-08de954f14f2", "X-MS-Exchange-CrossTenant-Id": "f34e5979-57d9-4aaa-ad4d-b122a662184d", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129];\n Helo=[outbound-uk1.az.dlp.m.darktrace.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n DB1PEPF00050A00.eurprd03.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "X-BeenThere": "gcc-patches@gcc.gnu.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "Gcc-patches mailing list <gcc-patches.gcc.gnu.org>", "List-Unsubscribe": "<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>", "List-Archive": "<https://gcc.gnu.org/pipermail/gcc-patches/>", "List-Post": "<mailto:gcc-patches@gcc.gnu.org>", "List-Help": "<mailto:gcc-patches-request@gcc.gnu.org?subject=help>", "List-Subscribe": "<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>", "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org" }, "content": "object-readelf in lib/lto.exp was hard-wired to use readelf -A,\nlimiting it to attribute checks. Extend it to accept a readelf option and\na regex, where the option selects the readelf flag and the regex is\nmatched against the output.\n\nAdd wrapper procedures for common use cases:\n\n\t• attribute checks, and\n\t• note checks.\n\nAlso add support for negative checks via an \"is-negative\" argument,\nwhich requires that the regex is not present in the output.\n\ngcc/ChangeLog:\n\n\t* doc/sourcebuild.texi (Scan object metadata with readelf): Document\n\tobject-readelf-attributes, object-readelf-attributes-not,\n\tobject-readelf-notes, and object-readelf-notes-not as regex-based\n\tchecks with optional target/xfail selectors.\n\ngcc/testsuite/ChangeLog:\n\n\t* lib/lto.exp (object-readelf): Accept a readelf option and a single\n\tregex; match against full readelf output. Keep positive/negative\n\tbehaviour via wrappers.\n\t(object-readelf-attributes, object-readelf-attributes-not,\n\tobject-readelf-notes, object-readelf-notes-not): Implement as wrappers\n\tover the generic matcher.\n\t* gcc.dg-selftests/dg-final.exp (dg_final_directive_check_num_args):\n\tUpdate for object-readelf-* wrappers to regex-style arguments (1..3).\n\t* gcc.target/arm/lto/pr61123-enum-size_0.c: Update to use\n\tobject-readelf-attributes with a single regex.\n---\n gcc/doc/sourcebuild.texi | 23 ++++++\n gcc/testsuite/gcc.dg-selftests/dg-final.exp | 5 +-\n .../gcc.target/arm/lto/pr61123-enum-size_0.c | 2 +-\n gcc/testsuite/lib/lto.exp | 77 ++++++++++---------\n 4 files changed, 68 insertions(+), 39 deletions(-)", "diff": "diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi\nindex 3bccb1384d9..958682907cb 100644\n--- a/gcc/doc/sourcebuild.texi\n+++ b/gcc/doc/sourcebuild.texi\n@@ -3729,6 +3729,29 @@ stands for zero or more unmatched lines; the whitespace after\n \n @end table\n \n+@subsubsection Scan object metadata with readelf\n+\n+These commands inspect the linked test output file with @command{readelf}.\n+They are mainly intended for LTO tests.\n+\n+These commands take a single @var{regex} and test whether it is present\n+in (or absent from, for @samp{-not}) the corresponding @command{readelf}\n+output.\n+\n+@table @code\n+@item object-readelf-attributes @var{regex} [@{ target/xfail @var{selector} @}]\n+Runs @command{readelf -A} and checks that @var{regex} matches.\n+\n+@item object-readelf-attributes-not @var{regex} [@{ target/xfail @var{selector} @}]\n+Runs @command{readelf -A} and checks that @var{regex} does not match.\n+\n+@item object-readelf-notes @var{regex} [@{ target/xfail @var{selector} @}]\n+Runs @command{readelf -n} and checks that @var{regex} matches.\n+\n+@item object-readelf-notes-not @var{regex} [@{ target/xfail @var{selector} @}]\n+Runs @command{readelf -n} and checks that @var{regex} does not match.\n+@end table\n+\n @subsubsection Scan optimization dump files\n \n These commands are available for @var{kind} of @code{tree}, @code{ltrans-tree},\ndiff --git a/gcc/testsuite/gcc.dg-selftests/dg-final.exp b/gcc/testsuite/gcc.dg-selftests/dg-final.exp\nindex 6dcfd3340a8..ff8fdf6d77a 100644\n--- a/gcc/testsuite/gcc.dg-selftests/dg-final.exp\n+++ b/gcc/testsuite/gcc.dg-selftests/dg-final.exp\n@@ -94,7 +94,10 @@ proc dg_final_directive_check_num_args {} {\n \n verify_args scan-lang-dump 2 3\n \n- verify_args object-readelf 2 3\n+ verify_args object-readelf-attributes 1 3\n+ verify_args object-readelf-attributes-not 1 3\n+ verify_args object-readelf-notes 1 3\n+ verify_args object-readelf-notes-not 1 3\n \n verify_args scan-assembler-times 2 3\n verify_args scan-assembler-dem 1 2\ndiff --git a/gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_0.c b/gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_0.c\nindex 4ccbeb39f43..36013040cdf 100644\n--- a/gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_0.c\n+++ b/gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_0.c\n@@ -20,4 +20,4 @@ foo1 (struct debug_ABI_enum_size *x)\n return sizeof (x->es);\n }\n \n-/* { dg-final { object-readelf Tag_ABI_enum_size int { target arm_eabi } } } */\n+/* { dg-final { object-readelf-attributes {Tag_ABI_enum_size:\\s+int} { target arm_eabi } } } */\ndiff --git a/gcc/testsuite/lib/lto.exp b/gcc/testsuite/lib/lto.exp\nindex 2a7b8b0de93..b36ccded5d6 100644\n--- a/gcc/testsuite/lib/lto.exp\n+++ b/gcc/testsuite/lib/lto.exp\n@@ -915,23 +915,21 @@ proc lto-execute { src1 sid } {\n initialize_prune_notes\n }\n \n-# Call pass if object readelf is ok, otherwise fail.\n-# example: /* { dg-final { object-readelf Tag_ABI_enum_size int} } */\n-proc object-readelf { args } {\n+proc object-readelf { option is_negative directive args } {\n global readelf\n global base_dir\n- upvar 2 execname execname\n+ upvar 3 execname execname\n \n- if { [llength $args] < 2 } {\n-\terror \"object-readelf: too few arguments\"\n+ if { [llength $args] < 1 } {\n+\terror \"$directive: too few arguments\"\n \treturn\n }\n- if { [llength $args] > 3 } {\n-\terror \"object-readelf: too many arguments\"\n+ if { [llength $args] > 2 } {\n+\terror \"$directive: too many arguments\"\n \treturn\n }\n- if { [llength $args] >= 3 } {\n-\tswitch [dg-process-target [lindex $args 2]] {\n+ if { [llength $args] >= 2 } {\n+\tswitch [dg-process-target [lindex $args 1]] {\n \t \"S\" { }\n \t \"N\" { return }\n \t \"F\" { setup_xfail \"*-*-*\" }\n@@ -939,7 +937,7 @@ proc object-readelf { args } {\n \t}\n }\n \n- # Find size like we find g++ in g++.exp.\n+ # Find readelf like we find g++ in g++.exp.\n if ![info exists readelf] {\n \tset readelf [findfile $base_dir/../../../binutils/readelf \\\n \t\t$base_dir/../../../binutils/readelf \\\n@@ -949,47 +947,52 @@ proc object-readelf { args } {\n \tverbose -log \"readelf is $readelf\"\n }\n \n- set what [lindex $args 0]\n- set with [lindex $args 1]\n+ set regex [lindex $args 0]\n \n if ![file_on_host exists $execname] {\n \tverbose -log \"$execname does not exist\"\n-\tunresolved \"object-readelf $what \"\n+\tunresolved \"$directive $regex \"\n \treturn\n }\n \n- set output [remote_exec host \"$readelf -A\" \"$execname\"]\n+ set output [remote_exec host \"$readelf $option\" \"$execname\"]\n set status [lindex $output 0]\n if { $status != 0 } {\n-\tverbose -log \"object-readelf: $readelf failed\"\n-\tunresolved \"object-readelf $what $execname\"\n+\tverbose -log \"$directive: $readelf failed\"\n+\tunresolved \"$directive $regex $execname\"\n \treturn\n }\n \n set text [lindex $output 1]\n- set lines [split $text \"\\n\"]\n+ set match [regexp -- $regex $text]\n \n- set done 0\n- set i 0\n- while { !$done } {\n-\tset line_tex [lindex $lines $i]\n-\tif { [llength ${line_tex}] > 1} {\n-\t incr i\n-\t if [regexp -- $what $line_tex] {\n-\t set match [regexp -- $with $line_tex]\n-\t\tset done 1\n-\t }\n-\t} else {\n-\t set done 1\n-\t}\n- }\n-\n- verbose -log \"$what size is $with;\"\n- if { $match == 1 } {\n-\tpass \"object-readelf $what size is correct.\"\n+ if { ($is_negative && $match == 0) || (!$is_negative && $match == 1) } {\n+\tpass \"$directive $regex pattern is correct.\"\n } else {\n-\tfail \"object-readelf $what size is incorrect.\"\n+\tfail \"$directive $regex pattern is incorrect.\"\n }\n }\n \n+# Call pass if regex ($args 0) matches readelf -A output, otherwise fail.\n+# example: /* { dg-final { object-readelf-attributes {Tag_ABI_enum_size:\\s+int} } } */\n+proc object-readelf-attributes { args } {\n+ object-readelf \"-A\" 0 object-readelf-attributes {*}$args\n+}\n+\n+# Call pass if regex ($args 0) does not match readelf -A output, otherwise fail.\n+# example: /* { dg-final { object-readelf-attributes {Tag_ABI_enum_size:\\s+int} } } */\n+proc object-readelf-attributes-not { args } {\n+ object-readelf \"-A\" 1 object-readelf-attributes-not {*}$args\n+}\n \n+# Call pass if regex ($args 0) matches readelf -n output, otherwise fail.\n+# example: /* { dg-final { object-readelf-notes {AArch64 feature:\\s+BTI,\\s+PAC,\\s+GCS} } } */\n+proc object-readelf-notes { args } {\n+ object-readelf \"-n\" 0 object-readelf-notes {*}$args\n+}\n+\n+# Call pass if regex ($args 0) does not match readelf -n output, otherwise fail.\n+# example: /* { dg-final { object-readelf-notes-not {AArch64 feature:\\s+BTI,\\s+PAC,\\s+GCS} } } */\n+proc object-readelf-notes-not { args } {\n+ object-readelf \"-n\" 1 object-readelf-notes-not {*}$args\n+}\n", "prefixes": [ "1/2" ] }