From patchwork Tue Jun 27 21:20:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Indu Bhagat X-Patchwork-Id: 113613 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp8478512vqr; Tue, 27 Jun 2023 14:22:27 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7Rv0ig3HOQborbOtN4d9ZiSmRnfBJRKv1l+FjfK+NzBhCTxuv8x812VXPMrBYQoIsfIBCe X-Received: by 2002:a17:907:318c:b0:987:e230:690 with SMTP id xe12-20020a170907318c00b00987e2300690mr28231887ejb.57.1687900946848; Tue, 27 Jun 2023 14:22:26 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id h25-20020a170906719900b0098e1bbc3dadsi3882737ejk.656.2023.06.27.14.22.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jun 2023 14:22:26 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=FrvAxL8o; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 37F063858296 for ; Tue, 27 Jun 2023 21:21:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 37F063858296 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1687900908; bh=6IautRovBO0+HLzkYamBqJI5Ej+pSBsRHePRZ4g2BiY=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=FrvAxL8oufJ3tWPW+wwCS7oVOxJtnhX+rlrMt1pFJGBrbwMjaArSAiKvUiT8GAk9L RndpViRqkFvt/etpDy9M4K/wv8gcZhP1ND/6vVDiroscGPdqayktKzhL8yi/xeMxx0 G33JppVQkKQsFyq4C0fjMgVRgMoGZOll2byJHFog= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 46EB838582AC for ; Tue, 27 Jun 2023 21:21:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 46EB838582AC Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35RJkg80009777 for ; Tue, 27 Jun 2023 21:21:37 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rdq30x6p5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 27 Jun 2023 21:21:36 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35RKewm5008678 for ; Tue, 27 Jun 2023 21:21:36 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2044.outbound.protection.outlook.com [104.47.51.44]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3rdpx55e73-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 27 Jun 2023 21:21:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GpnrantCc+1OYN4XMrmtQC5cypFmQrX5hvfBqCHN32tHeCMoVBR5i5NTvtOx0BTjZ+UkWqM/XqMNpHWGL0tA7uIxjfZeiB0zuiQTx0Ep3DtIRcZUYMY5J0TypuIhNdtQFsMmw2BdJsgJiGt/OPHeHZrew/tjZTp5PIk1t+0OTxVXYPw726nL48C0oTDPg76yONbmq/ZRdQJcnD7NOLHgmXYBvrdDJgqj7WX7/NACzBw0R2+uYB9L2Aw8I0CSMMgftrLaWEyGeH5WQSh9jalMxQZMJs6HN3xgAh6w+pWXqR3OXgDqzQpTGdjXaJQfEQO5zJbp1tgiuyiqeYXUd65Rjw== 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=6IautRovBO0+HLzkYamBqJI5Ej+pSBsRHePRZ4g2BiY=; b=EbDRA1AY3PDsFMP4e0AGBmf4zF8kt4YMS5OpH4eD/c/AS3awA+ggSohrYMmff9b4F2RN60GBhdqeN6GDje/sYIlISSeUQxF6mUBrJyaqDhjidB15rpzJhGbitFphVBp1A7G9PDJIJMi25RZkIO3hNdO8Jim9lmnCbrGiX7ToANS5eVhzPvEYAUQyWhpyRTEMboidHngxUirGJ0xFjeohpIPKWAnWyEoChtBZcHGaat574G6E4VoWKH/cx7OoJ9wnd5sHXDojuAkSU8CUcghChL9A0EIv/OmGXnMf6wL2QjAcLhjD+pqzSXATkNcmirmdMpfy9tS8CWRIsujHOwngAA== 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 MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by DS7PR10MB4831.namprd10.prod.outlook.com (2603:10b6:5:3ab::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Tue, 27 Jun 2023 21:21:33 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::fdbb:b921:1ef:2d44]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::fdbb:b921:1ef:2d44%4]) with mapi id 15.20.6521.026; Tue, 27 Jun 2023 21:21:33 +0000 To: binutils@sourceware.org Cc: Indu Bhagat Subject: [PATCH 09/12] objdump/readelf: adjust for SFRAME_VERSION_2 Date: Tue, 27 Jun 2023 14:20:25 -0700 Message-Id: <20230627212028.2138604-10-indu.bhagat@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230627212028.2138604-1-indu.bhagat@oracle.com> References: <20230627212028.2138604-1-indu.bhagat@oracle.com> X-ClientProxiedBy: MW4P223CA0027.NAMP223.PROD.OUTLOOK.COM (2603:10b6:303:80::32) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR1001MB2158:EE_|DS7PR10MB4831:EE_ X-MS-Office365-Filtering-Correlation-Id: 915d4c1e-8473-4c47-5395-08db77547b7d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: S6FzeZTQJwx07uSZasXynsJe9XAaKHV+WxoqaWoB8OznfJ2IR506SYsVrpVBFPsGS6d3mMx5oq3/ZUvwoABipdsofR2JVp5n08bKTqB1vbOmQfwZQoxu6ja9WtbXZJ9/Dx+WWCKH7ciheb0RW8miSqsH4f210JYXDBwHnaBPas+7q/47vzFxkEFw5LS+ZYoFBa3cq5hQvo9ETpPEvyBvMAmyPA5kZMzQG97U0bE0adeB/rGwqHYP2NIMYUgKnym9peKL9RgNTrY4xFyDX32qRECH2d/kj1PuGAFf6YrNlR41FT+nT4oq6uodalea+Cdy+PWuH1QyBfAESOYKHSTGRPAk3TDEdIPvFsl9+91QBRM9jH6LoX30Wkc3vHa6445sdnLKrGSsgXYflO9xft0aEbQro4AoOElHhvpDnV2h+w4VVAhmSneTMy3wAFx65G53mN9/ZjOi1zbgdcIbVXYhvflQ5ehicVoynKzFozluv4g4KDVUlWyco44QZzJap4QUmgYbmr/5o3d3EPTq4jmlApvICEtY7W6sf5bdDgIe1VN6ZJUCLrdsuk6oaUbWx9bW X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR1001MB2158.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(396003)(366004)(136003)(376002)(39860400002)(346002)(451199021)(2906002)(6666004)(6486002)(83380400001)(107886003)(38100700002)(186003)(6512007)(6506007)(1076003)(2616005)(86362001)(41300700001)(478600001)(66476007)(316002)(36756003)(4326008)(66946007)(6916009)(8936002)(66556008)(26005)(44832011)(8676002)(5660300002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: twbvwv4lrAx66aypfnWUFDC1Z98juZbu+i46seHHkzfJMj0C49BVd5kdWGRbmTpSu4hfsH3vdYa20Yz2IVG4FNG68oWVhkgHvsqVy9tnLo2xwTowypIDLxsJD65sKJfU3HyHWBvOuQlaY1hSpTG1oFIseR1dpXeucqRXnBGGuMWU4ZFgpiZXgt9eijBFdF1jlGluHLRqR3jToa3+n9dISV00lmS4u56K2Dgx/wmaIfQWEgtyjRONPjNmXAT6/TsMW+R2jZih1YRMusPdcT2cQy+TgpF6g475o2WEDq5++i1grYBpfVKSNlaq8pFF4GOMpgugrKwV3urIDfWEDqlrbkghfWdz+LzeLSh5tBrKCaHOtsLrwF5wXM8bPK6WA+TtAyeQQq/AQ8L8R0TevObxRQIVK17mg9OApCc/Q5zX5WLGN44CuaTOFbgz25QBbEs67rb3AUPz7wstZBmSJswpvIPSiLQb5rNII1A4QAxjEBKoq35qFrTPFXS3+EtDd5t+x08KWyJm2JnlfGP7xa8xNs5mlpy+1cyLAFt/z1IvVy6HFf4CqiRAJCv6FfQXEq7Zp2xcsvnlF3AC3jCX6JGqkUDqKjBazaQaONIFrQ1+knmI4KP/tYdBBjMbyJExaxjsOs8Y3ahPJFrnS9Fqm1UbusnePJqz6HK4UbTGVBG9zK7fyzzCnSThTRhlbAlpr4ZkJaUBosbU329Q8mQNqqOhXUVdC+8Nmmpgg2t/PwEn+JuZFQazESgnL4KR8LPsTDJbMarg/IoC0x6p1ZvIS0/b1Ajf+EoESBBc+zfrsFVzPVPHSS3QsmXiZoUupKlBs02VmwNuO/2pw5wsUcVgs5mbux86uZyNhz45MMwptJGcQSB1r2+f0VsDZhW5ma1kqWn6PJxxDP93bCqrXQTaLGESaWjnCtb8GJSZlUrItwJgXwblwtuHxV8T+E+Ibs1b0ZogH4gJVWio4DcjhKSPamBd2O0hYVWRInmLUVnCFMe2XlxQokDCwkKVrhxkgbQPJvkz5NSJel+9n7Gzy6EaBRfe1raZwLY9SmNKdkGTJGbdnD9rLurCSLl5/efUgijQRbk7vvpLo5jv0vCwMRdiL88QCTAvx7DVquhbv1jCRgJr5qPtUATqDw5+cdF62RBFOlo8BtLz/AZviqdlcdYfrIl3cP3TjDN3+5loSwI8FJP9gKh2g4wL3yjO6cNBywKQH2h+OJm+q9VBsLEWqPuyBEg+CK1ocoupnJHPBC9BWP22oV2n1VewMuikdXip+ZwcDo0cQGKmLM58NS92JoSZ1MMib+ZC+Iyi5Hpe4D/XjZnl+7/n3GbesVsbFMAPYJL3yHw10N4+CVCi1pSQQ4tyRhH7RvIiFqcB68uxCbvmV3mUe3d5ZVaeSudRvFdtG5lUH0O2VX/K7TzgdlB2VHucKz8UkHyd6O3vcW+NLRvpcvwL+OGubq/t8boYvi1UtaaLNP4f1YR5LXGUqNCBq+7qI03cANLorjNc+GRH6aFlB+J1IiVm7gZYzPRTaUFH1fvH4P36CIpzM/WSt/HZE+gJ/UZ/Z5ZuAs5FGnI6EMExRO58GBx3G1apFRolB/p99z9a508n X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: iXvtJBUhR+0fRrFW5ur/FKnKvddNr3FQfdw2v8OZElEnkRQ95fd/QNlDdUG2LuTz4wDjeEy9FqIalEeXnltYhEsjjKh9zW2UeNvq8qpaPFZErmknWGvKXB8elfWGzPd/531OPffgxhzJLHd8LXjEAUe+s4Ca6Sm7KqAFnN86eMO4cpQ3Xgy/viztY3dXaQsO2DatKkORHoveM8ViF/qYoILH3BZ+t+OoW1S0buR4vW/RX6FQ+cmTtaAq8vcFfA0PW0xzJ4nr3sAWEVkQXntECym6V49sjz9+HSX+NyBBroaQX/OhIfU5UKwUklxhB6OPvwn6k1M8Q0iOuxGg6HKJtb3iGMeI5N0BmLh7YnZ04BOgx+gRVXg0MvmOmB2E1ElDhGlHWhLHwvhBiaDGsXDUZ5O6+qrGbJCHfmyHsWD0a7jk5/bJfVzkGi9n6F2MsuXIETJIkhmy67HSxUdCNRIWtfr5whX53d3n7nl3PYozMaZGZzaswYlhkRNoeGoUHBprMKTA0TbmKyHnT4/UzVR39+MIu2tO5c/KtYflSD3m0JKDdvy4e+oIka49FnizV9rM5J3kYSmuno+rfErHUDM42YN82jAzjVxdfOXzNacStOybodx1Q2mziyAw3CvMS0763yFbiLYpZUqA9ltDziDdiYxbRCl7klDiEMFiaoHeJYrgZW9be3p4gAoxVo583ZyncWz25yBo1Uj7TrBtZURquHUQ2rSaRUDLbRkWDiq9VqjxANMQCKkxClEYfy7/ydLx X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 915d4c1e-8473-4c47-5395-08db77547b7d X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2023 21:21:33.7629 (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: wLPEHPaPTDRw3uW8e5tM5o/GKQC6dRL807QyD2z68idVqoLIphiv9GSDlUJyM6pk2xeHxDdsxQAI1YyWkx6CnA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4831 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-06-27_14,2023-06-27_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=876 adultscore=0 malwarescore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306270194 X-Proofpoint-ORIG-GUID: AxTYAcsI5a-HyIcwLPWCRP-PEADXw_QA X-Proofpoint-GUID: AxTYAcsI5a-HyIcwLPWCRP-PEADXw_QA X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, 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: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Indu Bhagat via Binutils From: Indu Bhagat Reply-To: Indu Bhagat Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769892423127186372?= X-GMAIL-MSGID: =?utf-8?q?1769892423127186372?= Make adjustments to account for a new format version and its name. Also shuffle some code to make it more readable and use the available APIs rather than direct access. objdump/readelf will show the following message to the user if .sframe section in SFRAME_VERSION_1 format is seen: "No further information can be displayed. SFrame version not supported." In other words, like the rest of the binutils, only the current SFrame format version, i.e., SFRAME_VERSION_2 is supported by the textual dump facilities. libsframe/ * sframe-dump.c (dump_sframe_header): Add support for SFRAME_VERSION_2. (dump_sframe): Inform user if SFrame section in SFRAME_VERSION_1 format is seen. --- libsframe/sframe-dump.c | 42 +++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/libsframe/sframe-dump.c b/libsframe/sframe-dump.c index 4799652f727..bb83528bc79 100644 --- a/libsframe/sframe-dump.c +++ b/libsframe/sframe-dump.c @@ -43,27 +43,33 @@ is_sframe_abi_arch_aarch64 (sframe_decoder_ctx *sfd_ctx) static void dump_sframe_header (sframe_decoder_ctx *sfd_ctx) { - const char *verstr = NULL; + uint8_t ver; + uint8_t flags; + char *flags_str; + const char *ver_str = NULL; const sframe_header *header = &(sfd_ctx->sfd_header); /* Prepare SFrame section version string. */ const char *version_names[] = { "NULL", - "SFRAME_VERSION_1" }; - unsigned char ver = header->sfh_preamble.sfp_version; + "SFRAME_VERSION_1", + "SFRAME_VERSION_2" }; + + /* PS: Keep SFRAME_HEADER_FLAGS_STR_MAX_LEN in sync if adding more members to + this array. */ + const char *flag_names[] + = { "SFRAME_F_FDE_SORTED", + "SFRAME_F_FRAME_POINTER" }; + + ver = sframe_decoder_get_version (sfd_ctx); if (ver <= SFRAME_VERSION) - verstr = version_names[ver]; + ver_str = version_names[ver]; /* Prepare SFrame section flags string. */ - unsigned char flags = header->sfh_preamble.sfp_flags; - char *flags_str - = (char*) calloc (sizeof (char), SFRAME_HEADER_FLAGS_STR_MAX_LEN); + flags = header->sfh_preamble.sfp_flags; + flags_str = (char*) calloc (sizeof (char), SFRAME_HEADER_FLAGS_STR_MAX_LEN); if (flags) { - const char *flag_names[] - = { "SFRAME_F_FDE_SORTED", - "SFRAME_F_FRAME_POINTER" }; - unsigned char flags = header->sfh_preamble.sfp_flags; if (flags & SFRAME_F_FDE_SORTED) strcpy (flags_str, flag_names[0]); if (flags & SFRAME_F_FRAME_POINTER) @@ -80,9 +86,9 @@ dump_sframe_header (sframe_decoder_ctx *sfd_ctx) printf ("\n"); printf (" %s :\n", subsec_name); printf ("\n"); - printf (" Version: %s\n", verstr); + printf (" Version: %s\n", ver_str); printf (" Flags: %s\n", flags_str); - printf (" Num FDEs: %d\n", header->sfh_num_fdes); + printf (" Num FDEs: %d\n", sframe_decoder_get_num_fidx (sfd_ctx)); printf (" Num FREs: %d\n", header->sfh_num_fres); free (flags_str); @@ -203,6 +209,14 @@ dump_sframe_functions (sframe_decoder_ctx *sfd_ctx, uint64_t sec_addr) void dump_sframe (sframe_decoder_ctx *sfd_ctx, uint64_t sec_addr) { + uint8_t ver; + dump_sframe_header (sfd_ctx); - dump_sframe_functions (sfd_ctx, sec_addr); + + ver = sframe_decoder_get_version (sfd_ctx); + if (ver == SFRAME_VERSION) + dump_sframe_functions (sfd_ctx, sec_addr); + else + printf ("\n No further information can be displayed. %s", + "SFrame version not supported\n"); }