From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 89F1C38582A7 for ; Mon, 4 Jul 2022 15:44:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 89F1C38582A7 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 264D1jdp001918 for ; Mon, 4 Jul 2022 15:44:51 GMT Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3h2cecbsku-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 04 Jul 2022 15:44:51 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 264Fdlal030091 for ; Mon, 4 Jul 2022 15:44:50 GMT Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam04lp2048.outbound.protection.outlook.com [104.47.74.48]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3h2cf7u3mv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 04 Jul 2022 15:44:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iB6r6t2kds/833kFCQ6zvDafO7J/Y4ATZQV1/gHqs5UdGFMrw1jL6dxkDPgnm4EystZKY3+kpgQRk4TQD7kFqlgvp5nRZBg2iwHGYZpwndJfK4ciqRx+pdceUiEqtbgm3rK158pHLxJ6qwd7aE0nrMUJgfP406K4bJ/Xk3YXSuMwzz36Ie5IhmrrpxDmS+c/ThKt8OwRinEQg9T+oEdijONTATr/exrVJIom8/uaaopvNo2JepGwBwW5TVziF1lrUvShMgpX3VNenXw1NPi31MqwvAKov++iLfBq11LceJOvlcUR34T/xvFudeRwkVl8ov+LOIhyDxJK+fe66kcD+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=x9qdncNbj8yUe1fIedwv2U5/vzO3OsS1tJ56PpgUlRs=; b=DoWv9q7ZHgXQJnpfRYQy47hpKsxhFdWqvDMSB3kRt4NEdERwPM61o/ZQtKnJcruo5Pjftr7/AVBO/KSm9K1jVvpnW1Dz8OZM3eGjFZlkLeAZWrNURr8xbxhFK0cVTYVYU/McqGRKTU6RPeFe7QRhbGyd35GIVvXku61ycMvDVkpQYI36P20Og/LBECo5sIiUaP/0hdsScz3vg7ugQ03+Xri/doRABXOHToFmZVqP47LY9vbz/gPXYDm5kwNIG2B5NiLMW+Uem0Jfs7a3CUNMFpe6jB1UaoRjSkTBF5xg/0JIZ0Abby/9f6YyCXlIt4+Dgen15xi6ZnuntGIBiCqq9Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none Received: from MWHPR10MB1407.namprd10.prod.outlook.com (2603:10b6:300:23::20) by DM6PR10MB3179.namprd10.prod.outlook.com (2603:10b6:5:1ac::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Mon, 4 Jul 2022 15:44:49 +0000 Received: from MWHPR10MB1407.namprd10.prod.outlook.com ([fe80::40f0:f59d:aca7:92ea]) by MWHPR10MB1407.namprd10.prod.outlook.com ([fe80::40f0:f59d:aca7:92ea%3]) with mapi id 15.20.5395.021; Mon, 4 Jul 2022 15:44:49 +0000 From: "Guillermo E. Martinez" To: libabigail@sourceware.org Subject: [PATCH] kmidiff: Add --ctf option to compare kernel trees Date: Mon, 4 Jul 2022 10:44:35 -0500 Message-Id: <20220704154435.37568-1-guillermo.e.martinez@oracle.com> X-Mailer: git-send-email 2.35.1 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SN2PR01CA0073.prod.exchangelabs.com (2603:10b6:800::41) To MWHPR10MB1407.namprd10.prod.outlook.com (2603:10b6:300:23::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 99492fe4-b03a-4048-aeb2-08da5dd4207e X-MS-TrafficTypeDiagnostic: DM6PR10MB3179:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PGtE3k9MArszQNGcNwF5XKI3bFKK7CeN0lWojaqx4hxUf5xHyNUJxDLvJyabPHh03PKZdcXdf7kuLhAHLhC19LkZii4U+O7eq+iVgf1nLOysb2lsHqu5n9wAtI3N1PZbuMWNkbyGKOoyGhCTmwPDqSL0lH87wZChtCiSOIFyQxjDKnpIVTzpwdSBHWPOTXK8cexciV8TVqAsfAMnRBJWPpbo2PQEi+LpQBkaD1AzaQzR2OPEIum3XYtYr3Ixfri39BY9q0jBv7KpJ1ioO/MtIsWefayS1j+XPjvONNDQSeihDrK0MYl3wGPeqckh51XIaG64QWossk/Tt2d4exAr2+3JA9bDDcwKGDAJ8dJzboj5gAWTvjoS1sIOpWbzGLFBcLKBTWGMCaPW/2CNO+qn/BTg6kG2Ed54Lo66mCEBG9zIyFuPsmzvyO9PAB5hgqQrPeIUhaJvJkDPOkan6Cqu0N6jDZ2rw7Ui3XHrMAN3+QLTyOFzWyZhqbzewomZJ5QVLwoLkYYxlK6LuQKgvIxufDIjVdY60QzNIEMr2XZt5842XwtGcIQUitBvk8+VyQJBx/KG9s7ixgjVgycoMOzAbY7mgaYniRFkIHxzslpF0vlKAtmoAxqqKG/+DPldONPVV7cTGVZ7tH9bO/nrPAsLjlCuSEq+Bd8azJMsDAjGfNMOUKMpyLERDQCOYzVx5qWEbSWnne+5LCTGzKIRkvB2z8YVGPKXeukKZ2HG2jbghMBRbI4nm8OeDFcyYrU65F0rjWi9/ep5vt71+5zfvEe1ozVsjCxItWOuqsEyPq+5vNLb95gvrZdtKmiGhmZY2Qmp X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR10MB1407.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(39860400002)(376002)(136003)(346002)(366004)(396003)(103116003)(2906002)(5660300002)(186003)(478600001)(36756003)(6486002)(41300700001)(2616005)(8936002)(6916009)(4326008)(1076003)(107886003)(316002)(8676002)(66556008)(66946007)(66476007)(38350700002)(52116002)(55236004)(6666004)(38100700002)(83380400001)(26005)(6512007)(6506007)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vQyBgxMvuANHRMSzHRXrUEMoV6T8WzorvFNXyQKnXVxcLGKQvzD+vNqkaPEX?= =?us-ascii?Q?+MovvqAXL36z/B2yMSYz5cCojBcyIg8RhmXs/+8c7sHXGacDB+MUvQmNIeoP?= =?us-ascii?Q?c81Dy5xj15S8u9B5dfC8FZMyABpPPkL7sgPZIhSYXmTO6Ep4YH4XYxVvtzqc?= =?us-ascii?Q?UvIIDdbwAzQotk6kct/aww8/7Gg1aiEHpZKFpgS+Iz4BI7UziON+/7fYlkw1?= =?us-ascii?Q?KRGCXENEWPv4WZuyLSRxtpH4ds/dnjv+Q+Jv8yT3IV/1prwEr5FNLKq6p1NB?= =?us-ascii?Q?mbWKRsMI8g+Kd8LidxcKl72dYmUGfMl4q+kgZn1jlJvhLA3wuEtmfoC6GUBv?= =?us-ascii?Q?qZx5zfeLlPUAMrzpMTOO/ANxWLTxJVbgSwtp8dup+abo0wQLE9rKmkXWLPCY?= =?us-ascii?Q?0QL/duty1MGi164q3/gYXOtER7+SkeJU4gVd7S9CWjm/JrSGtzyk95dATKUK?= =?us-ascii?Q?jzkCLLEtn9qAVNIoO1Plzxwo1OMRF3Yh7vulBJY/9ArRmi4tptwqS7nt7YFE?= =?us-ascii?Q?aQ/Sjl1ZpeAp633+f++2jEP3R2gdS//3HKbBPs0cuIgqRfrolSSbNU3IhO5Z?= =?us-ascii?Q?cbgKUPXV/KEdEhbslgUg9AUKrLtClmfAStcB3Uq4Jh4+THlD3vpBsNIAuuMq?= =?us-ascii?Q?rTduvecV1SGcihf/J4XNoa7hOm9xb09JHMnloGD73uns0am9W8rzRN1tlduY?= =?us-ascii?Q?qQZd7rXG/mAPT7ebZOReLX+UisQxVh6JZxrkfGbbZ5Fy8f4jgmIR1WHMm9pM?= =?us-ascii?Q?uegpo6Btw4kvl2PO1xqvYYvOJl8Ln5EUvBbQqLe1rRnXvi0KasIFVI1eCgPK?= =?us-ascii?Q?vH0s64ZVTyIJf3kzk2fnWt92PYbyCxIujhMvvoaeKR3LuYAezJPmu5ezvCeD?= =?us-ascii?Q?whaerNLP74x+kF1dQ/zawIlzPoo9FHkKEdopffiS1KaxmBVJ+iD0K/ONW9T3?= =?us-ascii?Q?fH18MeY/Js4hBu2ArHo7c/6R6U1VDxmgxLOkfhN7CfZTOvYSV1LjWTqTG1zQ?= =?us-ascii?Q?4u9fiocrkfoiHrKuzXWrfb9T6FQsbRXAWVpFW55Q3KmtMAQ1v8Ch4tKRXPMK?= =?us-ascii?Q?Zs2fIKyxqNgX3Vg/tQJ6jzaydY7yoBtMZMDJGULq+fn9yBS7fqWcxkMx3uau?= =?us-ascii?Q?k7Z4TO2gpIdHCi2qa0ZkGzol6yF1n0bb5IIeuw90cRWAqb+R/ZYrrZgUKZog?= =?us-ascii?Q?bx/G8/0bcFpCrxlZqDOkfwrTiLJdi+hBHgoVveEWzxvoZooBJDidPo09ulcZ?= =?us-ascii?Q?jbZsv5Dgj7+i4AuJB58bNnk2P5P4IRQAqpjb81MP33viTDDzf4WmC5YN0nFj?= =?us-ascii?Q?+JRZKUCYHsxpG5+yoT+3FIJlgJK9lRfScfVV7BGV24h3uVrDVfBu2h7blKzV?= =?us-ascii?Q?FLKvRhbXw4Ok8Td5JEIpl8H94yhxUhbdY43keHoSd14wiTKBYf579kfdmez7?= =?us-ascii?Q?VkBs6XpdoFph2rSKXoGrrskITbGeTLS13jcwlrO0vIxM7Foh4h3bFVldJF6o?= =?us-ascii?Q?nlE57ypaJfj7yXt1nLqBG3j2scdmKkH8bbMQ41NF9O0Jw6BF91mwv/lFPUzz?= =?us-ascii?Q?nM3D2x5yy4vSPhHoeRJSoFuA7E9d1YB3ec4aNjC4GX9VSaGdbhLE7IxXhaQw?= =?us-ascii?Q?ccnlAZzYDu38HUsN6O6saLI=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 99492fe4-b03a-4048-aeb2-08da5dd4207e X-MS-Exchange-CrossTenant-AuthSource: MWHPR10MB1407.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2022 15:44:48.9719 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: d6iElPGWfzfyCxg/3QFCshRTamxihZz28lMMeufhlfxRWXTQ70SUpvix21lPDV8+QQ3+Ntp75eV3j3vpbKtHftfvLTnMrDfsf+zkJXelbX8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3179 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.517, 18.0.883 definitions=2022-07-04_16:2022-06-28, 2022-07-04 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 suspectscore=0 malwarescore=0 bulkscore=0 mlxlogscore=999 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2207040068 X-Proofpoint-GUID: Z2rjhGXvXYWlmA9NHVInmlUL8YnMN5UV X-Proofpoint-ORIG-GUID: Z2rjhGXvXYWlmA9NHVInmlUL8YnMN5UV X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Jul 2022 15:44:53 -0000 Hello, This patch add a new option to kmidiff tool to compare Kernel trees with CTF debug information. Please let me know your thoughts. Regards, guillermo --- * tools/kmidiff.cc (option::use_ctf option): Declare new option. (display_usage): Create new option entry for `--ctf'. (parse_command_line): Handle `--ctf' option. (main): Set `corpus::origin' to {CTF,DWARF}_ORIGIN depending of command line arguments. * tools/kmidiff.cc: Add documentation for new option. Signed-off-by: Guillermo E. Martinez --- doc/manuals/kmidiff.rst | 4 ++++ tools/kmidiff.cc | 25 +++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/doc/manuals/kmidiff.rst b/doc/manuals/kmidiff.rst index 011dbafd..ce8168ae 100644 --- a/doc/manuals/kmidiff.rst +++ b/doc/manuals/kmidiff.rst @@ -165,6 +165,10 @@ Options the :ref:`default suppression specification files ` are loaded . + * ``--ctf`` + + Extract ABI information from CTF debug information, if present in + the Kernel and Modules. * ``--impacted-interfaces | -i`` diff --git a/tools/kmidiff.cc b/tools/kmidiff.cc index d89026f9..8fd3fed9 100644 --- a/tools/kmidiff.cc +++ b/tools/kmidiff.cc @@ -9,6 +9,7 @@ /// /// The source code of the Kernel Module Interface Diff tool. +#include "config.h" #include #include #include @@ -59,6 +60,9 @@ struct options bool show_hexadecimal_values; bool show_offsets_sizes_in_bits; bool show_impacted_interfaces; +#ifdef WITH_CTF + bool use_ctf; +#endif string wrong_option; string kernel_dist_root1; string kernel_dist_root2; @@ -80,6 +84,10 @@ struct options show_hexadecimal_values(true), show_offsets_sizes_in_bits(false), show_impacted_interfaces(false) +#ifdef WITH_CTF + , + use_ctf(false) +#endif {} }; // end struct options. @@ -106,6 +114,9 @@ display_usage(const string& prog_name, ostream& out) << " --suppressions|--suppr specify a suppression file\n" << " --kmi-whitelist|-w path to a kernel module interface " "whitelist\n" +#ifdef WITH_CTF + << " --ctf use CTF instead of DWARF in ELF files\n" +#endif << " --impacted-interfaces|-i show interfaces impacted by ABI changes\n" << " --full-impact|-f show the full impact of changes on top-most " "interfaces\n" @@ -241,6 +252,10 @@ parse_command_line(int argc, char* argv[], options& opts) opts.suppression_paths.push_back(argv[j]); ++i; } +#ifdef WITH_CTF + else if (!strcmp(argv[i], "--ctf")) + opts.use_ctf = true; +#endif else if (!strcmp(argv[i], "--impacted-interfaces") || !strcmp(argv[i], "-i")) opts.show_impacted_interfaces = true; @@ -395,6 +410,12 @@ main(int argc, char* argv[]) corpus_group_sptr group1, group2; string debug_info_root_dir; + corpus::origin origin = +#ifdef WITH_CTF + opts.use_ctf ? corpus::CTF_ORIGIN : +#endif + corpus::DWARF_ORIGIN; + if (!opts.kernel_dist_root1.empty()) { file_type ftype = guess_file_type(opts.kernel_dist_root1); @@ -412,7 +433,7 @@ main(int argc, char* argv[]) opts.kabi_whitelist_paths, opts.read_time_supprs, opts.verbose, - env); + env, origin); print_kernel_dist_binary_paths_under(opts.kernel_dist_root1, opts); } else if (ftype == FILE_TYPE_XML_CORPUS_GROUP) @@ -438,7 +459,7 @@ main(int argc, char* argv[]) opts.kabi_whitelist_paths, opts.read_time_supprs, opts.verbose, - env); + env, origin); print_kernel_dist_binary_paths_under(opts.kernel_dist_root2, opts); } else if (ftype == FILE_TYPE_XML_CORPUS_GROUP) -- 2.35.1