From patchwork Tue Nov 16 17:43:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jose E. Marchesi" X-Patchwork-Id: 47780 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B94D8385AC1A for ; Tue, 16 Nov 2021 17:43:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B94D8385AC1A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1637084607; bh=/Kjutce5V+vUX1NSRncyTUgtQTKNIsZg+/U5UfEB+oE=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Help: List-Subscribe:From:Reply-To:From; b=JJdMhpGhn7TG3PbV23SapHlLD47MEhmME1BrqA2pId53CZzEGAhKprnBoJkIHyKrL R8O4BCYvurwIytin1enYBl08LlY1sP9DJYLabTlse8Ilx8ezTmZkyn6PGJ2JspcmLC q/4RLF0QNXtN3uuw2vyDRsuFWqiZT45G5ceIWXQs= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id F0BE43858401 for ; Tue, 16 Nov 2021 17:43:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org F0BE43858401 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AGGiARX024921 for ; Tue, 16 Nov 2021 17:43:21 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3cbhv5b3s8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 16 Nov 2021 17:43:18 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1AGHUEgU015711 for ; Tue, 16 Nov 2021 17:43:16 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2168.outbound.protection.outlook.com [104.47.56.168]) by userp3030.oracle.com with ESMTP id 3ca2fwj5kk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 16 Nov 2021 17:43:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IVGqJFihyP0vasVCYCYtUrFZtReLrXk9PGHIbpuHCaN2R6h6UbvJgK5GTEpiVqIC8aYqZlQSJIl4LbwYAAyuBlKV44+eMEGzrNHy5oTOPyUd734RYoFRaqid199fsxs2hojfxhn/NELJqfbrVdU36e0/y6e+s4PbI/l3YH0405B8Ux6gCgy+HFR6/eLtHa8XAsjuK5dCiQcdRWRdvsf+rn6B/xdT4cx9K0j6Haoxhez8x0LtTj7Bl/sE0apKOHZVjHurRdZxXhpIivpG68a8uXFTsLP6aOnN2p31+nGehyA48lDu3aDA27swdPF8y31HtVD11Zp/9x6tE0SdZwzIbw== 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=/Kjutce5V+vUX1NSRncyTUgtQTKNIsZg+/U5UfEB+oE=; b=KnbsYqsKZDpu/VG+gb5bBJ1jYk67gCK/U0k+X5fCpN+QxCTNZs/RkOWXaVR45kLzQYZGA0P/g2HlmXd7xCyzZwXD9MDhPnYpuqkCWo+P04pM3UI0Bh7TUH1OJU5oqC9spB5xSmQgDSDxyXlFf1i3xNxeQXf/5HS24MT+odLAlBSw746qIDbuipB2sBuMhWURFJB0Hw0g/ji2BwlbOmXf8YQ6bsGO0EL5zemn4tVjRSQPiIhptxr7sj8/WTLcLIId5wBpoejIk/TRLXbZ3oN0lP1ilUU+kuDuUY4x9J1Cl5mHWmV4UuVSXyeVMlg98m/iijRv48d83M7oaEz6uMAGOg== 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 BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) by BY5PR10MB4337.namprd10.prod.outlook.com (2603:10b6:a03:201::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Tue, 16 Nov 2021 17:43:14 +0000 Received: from BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::48bf:86b4:32e1:6574]) by BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::48bf:86b4:32e1:6574%4]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021 17:43:14 +0000 To: libabigail@sourceware.org Subject: [PATCH] ctf: ctf_reader::read_corpus now sets a status Date: Tue, 16 Nov 2021 18:43:07 +0100 Message-Id: <20211116174307.23579-1-jose.marchesi@oracle.com> X-Mailer: git-send-email 2.11.0 X-ClientProxiedBy: AM3PR03CA0066.eurprd03.prod.outlook.com (2603:10a6:207:5::24) To BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) MIME-Version: 1.0 Received: from termi.localdomain (141.143.193.73) by AM3PR03CA0066.eurprd03.prod.outlook.com (2603:10a6:207:5::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16 via Frontend Transport; Tue, 16 Nov 2021 17:43:13 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 80a769be-4fd3-4d11-c073-08d9a928909f X-MS-TrafficTypeDiagnostic: BY5PR10MB4337: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fNHgfLdDOfoYLEcXo4U/HybClGhQGgmKQDzV0+KJh+cTDxsOh4rgx0U8ICopasjLgytJRCGLTcmynSts3GkdZuK6l9N92JaAcNDXmmuj/GLRG/BO9SEFFpTBfsC1mitav/M8BD0i/n0YMpHYSxpBVC4erSoTjahc+IsK8ZCMX2Mn8qMi+mwJCKOKWw0GFcLU0HOmfuI92Qa+lQzgCyNeOJg63WYE+aRRIW+bTtpo+XySJki1rAUo6vY6Xuf68kFGcahbjhpyPZSgDM2R3kpju2DgGTbVnp6GVMaYxC0GarZmziOak3EanntxnaR1lEieXg+KztW8s8+0KVud6N6mcDxLR/DJCpbZd5hfXhymEGCUcXGmf+isMbytb7aduWbzFeKuLLpcZ1z8yaq8zIK39xA9vCNmfV1WMCQH0zBxT7Wukf2l9LS/iHBtz4TpCDiIAZwsPew5gyTZFD5GjBYDqcwY9RDyZcxfvPeWRmcRwoQodIpaAx3Ow8cRHXmOxdx0XENrRW9ZWPbV1cFVWn7KlDEdtw9mdGQw4EE5s+H56vinTNhRVpL03baY+acyg9dRBOmNaiJchOEIqONcHXs0LAqfIIfJyC6nLK65OBrfbzGj3X8NA6OhZm5QH7zOYL1H5Q+0Y9txIZZGkhJlZdqVazlpMT2viCGVEMDBWriP4YPpg30JjufmCTSXgD2Wjv5wY7eRSPKlhK9o0wEjTEafHQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR10MB2888.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(36756003)(66946007)(2616005)(6486002)(26005)(66556008)(66476007)(38350700002)(508600001)(956004)(83380400001)(2906002)(38100700002)(316002)(6916009)(6512007)(6666004)(1076003)(186003)(8676002)(52116002)(8936002)(86362001)(6506007)(5660300002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: UkITWfqoRIFZgpPDN4gOKYKklA5MAWREVmVo63Bo7APZxhtgFx0ISN+CQgfIrOmIiZKKzKJmRbU3cxoFUOh0jLVgljfdImHvx6n6LH3MZllrtBCXqbVJTzidcbBxz+WPpMPa3pKY2MwZQ9WjiCODibwI6vwtFyWFvsU1531U6yuOjSC5DsZdKKeYjvunqjaoggbmOk4Z0ljnJEbJ1Ip+BJap5rnWMOD2QekTnOFfY561fFCw0Apr5VzqUjZFza6CaW+1eQVJI9yujLPifxOf2Q3cJQ+skYlPTW7ogxmxlTSMa9vAnTEluvu60VL/6Z9MUNgsXs7bEbi2ePKE/7CN4UlPpBLkBazLcsYZq/ombfFvLYpV/Ae1TrjtNLfhJt9eRiWSIl9Q67r0n+jcfN8H1GIEzzG4QW2JIXbyhixdLDO0ls4T1xK6suMgXYGIgv2gotqvgXi8tWIChE7JQLpA1V+Txlp+oy+PwbkKa77v1Uvxnt8g4kwPaK0PmuM7kFDwSIviM7cBOaA9a1LmlmwRtAxbr4eEb8VF67zFpSr+Jj8Yfk8CzlldUfBUECEvfaClsHlPTDyAcmjzzqOaKl3bCFyd6N0ve388HUDwgkYEsUSbHflEZkdrTR4iq+8f6w6cP9Wacb2Uqwm+riNNKaTjmP9TjXaXIAW7FDVL0ILrlZXvey8vacecjBln21IAigUncQh6gGYLX8N2alHOO/6q7ebSwJQozyb+1hP4MrO1cRrZP8DYdjMD6vFooqDfGhlhUOkECaqemGRHJ2dWBvW7AsNPOVJShMzWfT1IJJ8xuk56tGN3pe5ATxX5TtAbL97JunmKM2ALJR0bSA2Tgyg0tamW7HLU9uUKJANJl2wCADk4c8EZA23yqGaLUAFkCt6rRO5hiXnQMgMmqiL3A1MtKH6AoBAATAfHjkrZyUCHwNPj4rVfP1ZWbXF6FMy8NsVaY/m5KPNWoc459PcurQqmbs7BCwuXAcSt7mKABnJryi/mlPfMCOgkQk9R77e2mFUl5Gz94npHtyPhudQ02N8LVprwO9Clk/NsujGfRdfHTyZsdsBAkMniDf2XHhV/32CsSpCbGH79BW3rc0jjgGHHyyhREoUPyO5JbVtN4jdT/tX184wVaf2leSDXSavHl2mLSCBElIA+0nRnCllaw0YJ/knHnGZSVbfvdcurfN0B/8cxKtcb2GnJ9wKBq+N154WvQJSSWrkeGhwuR6f/oTPsyZt+c/km5L0lnBIutMScXqEasPHG9O1DUGZN5Ny1sxCwJ55oZxqH3yNmL2ygFarEgEgYsulcudCoKXSTQd4lgyFYxdf5jUvaiEwgPGlbEZf+8k2uysx3pQc7Dw380dsEqPSHfYDedUf7xm9uIk8qYRnxBK1sxGErqHNlJI1FHqS/H36b25E7Bo8uII9c2/93/CHu32mUuRf4U48uFSk7ctqAcwY9du0mv4zZS6FDbOIVkQqaGPM2YStCO+qgOgZ66koVTijevF7HGWnWU7bSp3yXY1Q4Fbyakn2NS2sYId1X7crxEY+F1aahkLTcr8u24PxFgza0QUUn422bXvjUDg7O87v1YMO6Oo4oZnItQgvVa5IJOgXe4nW2xNYjwvXuDiS3dnA0R6BSa7ohGApXNIcnEyoup6LdiyTs1caVpt3bl8vl0VY8PZA2bNbHxNKwOa9jgVoyuyUs7ceOo/t0e88= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80a769be-4fd3-4d11-c073-08d9a928909f X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2888.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 17:43:14.2418 (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: YpbBati11eDVtwe18VI592wD57FFBT6Y3KyiGjLmy7RZeYj1PBNbJ50ZQKsG4iCA/SCyAdeyXLrtZfZikR5t0CWk2lFFcYQg3XnGpxJtKsk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4337 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10170 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111160086 X-Proofpoint-ORIG-GUID: TWVS2ILU9BoDXuuQhVKxsWqC1Yo85Hmd X-Proofpoint-GUID: TWVS2ILU9BoDXuuQhVKxsWqC1Yo85Hmd X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-Patchwork-Original-From: "Jose E. Marchesi via Libabigail" From: "Jose E. Marchesi" Reply-To: "Jose E. Marchesi" Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" This patch makes ctf_reader::read_corpus to get a reference to a `status' variable as an argument, and set it to reflect the result of the read operation. The utilities calling to ctf_reader::read_corpus are updated accordingly. Salud! Signed-off-by: Jose E. Marchesi * include/abg-ctf-reader.h: Include abg-elf-reader-common.h. read_corpus now gets an extra argument `status'. * src/abg-ctf-reader.cc (read_corpus): Likewise, and set `status' accordingly when the debug info is not found. * tools/abilint.cc (main): Pass a status argument to ctf_reader::read_corpus. * tools/abidiff.cc (main): Likewise. --- include/abg-ctf-reader.h | 4 +++- src/abg-ctf-reader.cc | 19 +++++++++++++++---- tools/abidiff.cc | 4 ++-- tools/abilint.cc | 2 +- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/include/abg-ctf-reader.h b/include/abg-ctf-reader.h index 07eccec6..c0d8bb2b 100644 --- a/include/abg-ctf-reader.h +++ b/include/abg-ctf-reader.h @@ -17,6 +17,7 @@ #include #include "abg-corpus.h" #include "abg-suppression.h" +#include "abg-elf-reader-common.h" namespace abigail { @@ -26,7 +27,8 @@ namespace ctf_reader class read_context; read_context *create_read_context (std::string elf_path, ir::environment *env); -corpus_sptr read_corpus (read_context *ctxt); +corpus_sptr read_corpus (read_context *ctxt, + elf_reader::status& status); } // end namespace ctf_reader } // end namespace abigail diff --git a/src/abg-ctf-reader.cc b/src/abg-ctf-reader.cc index 27eddc2e..9cfa6cb7 100644 --- a/src/abg-ctf-reader.cc +++ b/src/abg-ctf-reader.cc @@ -1073,19 +1073,28 @@ create_read_context(std::string elf_path, ir::environment *env) /// @return a shared pointer to the read corpus. corpus_sptr -read_corpus(read_context *ctxt) +read_corpus(read_context *ctxt, elf_reader::status &status) { corpus_sptr corp = std::make_shared(ctxt->ir_env, ctxt->filename); + /* Be optimist. */ + status = elf_reader::STATUS_OK; + /* Open the ELF file. */ if (!open_elf_handler(ctxt)) - return corp; + { + status = elf_reader::STATUS_DEBUG_INFO_NOT_FOUND; + return corp; + } /* Set some properties of the corpus first. */ corp->set_origin(corpus::CTF_ORIGIN); if (!slurp_elf_info(ctxt, corp)) - return corp; + { + status = elf_reader::STATUS_NO_SYMBOLS_FOUND; + return corp; + } /* Build the ctfa from the contents of the relevant ELF sections, and process the CTF archive in the read context, if any. @@ -1094,7 +1103,9 @@ read_corpus(read_context *ctxt) int errp; ctxt->ctfa = ctf_arc_bufopen(&ctxt->ctf_sect, &ctxt->symtab_sect, &ctxt->strtab_sect, &errp); - if (ctxt->ctfa != NULL) + if (ctxt->ctfa == NULL) + status = elf_reader::STATUS_DEBUG_INFO_NOT_FOUND; + else process_ctf_archive(ctxt, corp); /* Cleanup and return. */ diff --git a/tools/abidiff.cc b/tools/abidiff.cc index 157d192f..f145f4f1 100644 --- a/tools/abidiff.cc +++ b/tools/abidiff.cc @@ -1174,7 +1174,7 @@ main(int argc, char* argv[]) env.get()); assert (ctxt); - c1 = abigail::ctf_reader::read_corpus (ctxt); + c1 = abigail::ctf_reader::read_corpus (ctxt, c1_status); } else #endif @@ -1257,7 +1257,7 @@ main(int argc, char* argv[]) env.get()); assert (ctxt); - c2 = abigail::ctf_reader::read_corpus (ctxt); + c2 = abigail::ctf_reader::read_corpus (ctxt, c2_status); } else #endif diff --git a/tools/abilint.cc b/tools/abilint.cc index d8c44f82..49643b66 100644 --- a/tools/abilint.cc +++ b/tools/abilint.cc @@ -375,7 +375,7 @@ main(int argc, char* argv[]) env.get()); assert (ctxt); - corp = abigail::ctf_reader::read_corpus (ctxt); + corp = abigail::ctf_reader::read_corpus (ctxt, s); } else #endif