From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 3F22D3858282 for ; Mon, 11 Dec 2023 06:05:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3F22D3858282 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3F22D3858282 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1702274717; cv=pass; b=JdOgbk2z+2yDV7Ga6LF6l+4YKpF7g+SivT34FEGLnHWqYasvQnJIvrlTecRoXTETrxEh6JpQMqm69ggUwOiedEVBLroKov5n+f4hXZHH4ztvOpYmdqYnADHZfSwUhcVnoZPbtxKtAqnMcS6GMK4oxfFTarcDXj9FMdX9QzQPY2E= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1702274717; c=relaxed/simple; bh=LeWqis/HK/tInx/k5fVQCJ2Xpbpz9Avw+m1YuzxVqNU=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=MnZ0HLg5mw5/lax/EDFh9AEqUXd2/EOATcgbZW3osAVJjnjifXP+i8uNX1jLL+Tnb3Fi+YKFNUPep1D2JGKmp9CKnLbV1Mxq8iO2cNvnonZZue1pbm4zLe6EIF/WieFpMgAqifzhOUDYroXzKejA3ixxrA5mfx7b6fr4pFJ04Fs= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3BB27j6l010049 for ; Mon, 11 Dec 2023 06:05:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=2GrqnfU1khh2/NKFw8o9nE6nD3VcAnJja5xfNQPlys4=; b=EGL2VoNlU5Wkb/h0n9Gy5uc8LKQRLmrYIvrUQu6fhrVwVpxIhy/o0RT7HDF6Jq3OPsvn eGZ8BPmw4kMdSu4tfRhRjCFxq0zW++2alEE51M6lOrZLlQ3JdjZBw2nYhe9blCUlszYX e/Ti1Y8XVFeW11Hr/tvdSS2ZpGibgLlqzG/pRFd15tkJDXf447R1LORLEs52mHIlcDp5 h4l+0F1K7KuIsRMk3/BxSJAPpOt96FV6OU/NzZFRDd7adq9KLHZl+Pc5rvVxFeRmG0o2 USojfycW1yFvJ06U1/17bDljtYzenXl7su3sg4QXrd41Spo9QUpkmnIbd7bXo0PO4+bN NA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3uvgsua49s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 11 Dec 2023 06:05:13 +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 3BB3uPvo010690 for ; Mon, 11 Dec 2023 06:05:13 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2101.outbound.protection.outlook.com [104.47.55.101]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3uvep4e7e1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 11 Dec 2023 06:05:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OcYiQLZs0S9csKo2cPYQdSatrpXPE6yoBkpKPlNuhbsYYNDPoMOAvlQWkF9ddyxU1AvZ87ukd9GtwudGOlfPWG5gl3prY06CvOP6p3q0dkbsSI5yEYeU6HyALUyS+vcj9GT8gefx+PyJ1V7dZDa3lhnE4hWh0Av1zS1ZAUqHIBhJIJG0YzByAectoFt77jaT+T1FW8MeHH7JbQszsRiwHA899Uga+CFFae1TU9DXkNl3/9NGrQbk4g/GwVr1c1jOL4XP0JsMVFgA8myxMjUmrJH1HlvvluQWm7e7JXqpp4hUa1YKXio9bd5nOqNuPeS9aCAJW39uTffav4bKRLf/yQ== 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=2GrqnfU1khh2/NKFw8o9nE6nD3VcAnJja5xfNQPlys4=; b=Hfwa6knQJZvqp/IzIxhSzwGN2Ue6p5atS32MIp3pRPXHQB6dem3YzKTp3JCqOVzvOVjrPgdCI/GsKAOgIWGJZWKtyNl+ajTXRA+c6GMU3m7PvlDqwA4M4zCg9eFnJdT2jOYQIr30tnTnh0G629uE42VqYQ1fn7UfdjfuQ2MNNsE8V5kwOxLx3uCQfPdD+X0adJc3/Mq0dgB6zNBR+6tTWq17Rk6z8PDMQ+sytkQOsQ6BO3by5a/BnZSductjm8eIxYLT0D8kB4ckpGv/oPCRF9VQj0XbtY1ejfvRt7hR0QqANGyIgQv48023/NhZ5r83BQlab5/H6jwXS+KhcTSdwA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2GrqnfU1khh2/NKFw8o9nE6nD3VcAnJja5xfNQPlys4=; b=oHoaLbqkYuawm62Qzb5FoaMFxHG2n9rGAQmiAmbCA6Tu6tyPAGNh3wqqIPafnwpHS5Resmu3ilE+VX5km/eoXuJUg3OslycDw+IkRJ+ZYtf3tKBXPpia2tW9SqExvc2lpYUZjLrWzINYdv2H6PuZ/c7Fb9Da0dYDzeGMqWoUu48= Received: from MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by CO1PR10MB4610.namprd10.prod.outlook.com (2603:10b6:303:93::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec 2023 06:05:06 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::88e2:4a2e:3111:e04]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::88e2:4a2e:3111:e04%7]) with mapi id 15.20.7068.031; Mon, 11 Dec 2023 06:05:06 +0000 From: Indu Bhagat To: binutils@sourceware.org Cc: Indu Bhagat Subject: [PATCH,V3 07/13] gas: add new command line option --scfi[=all,none] Date: Sun, 10 Dec 2023 22:03:53 -0800 Message-ID: <20231211060359.3561062-8-indu.bhagat@oracle.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231211060359.3561062-1-indu.bhagat@oracle.com> References: <20231211060359.3561062-1-indu.bhagat@oracle.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MW4PR04CA0176.namprd04.prod.outlook.com (2603:10b6:303:85::31) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR1001MB2158:EE_|CO1PR10MB4610:EE_ X-MS-Office365-Filtering-Correlation-Id: 6c89fc24-3ff6-41eb-0f5d-08dbfa0f1f7c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZZ4Djtr0lndaS9huYjAdNdLvGIymkJv/qAlVLALAnASn88Np27lq4Z1sxzGtzZl30e4LlmqiRmh+DDEGqTaxFV+pxZfX6TRKRla8EBnpoZANpYFxApwlAfxE2VXmKW3dKbQueBedVcw3VQgsQ+UV9kv273tXIrtseueeriT9g0afJmwTFLDoLHC54y3ZzJwn8L6BgrheYPyEE3fcHYk0BFa/pz8am53ITfMNZQ6QvuBkq0K9aF1USkXYlRhQGKYTZ5v8vCIlKl8ohy/rBGtpszhFbu0BxtPtTAYnKrO9mBy0I/8HkknIujJUnz9k5X32DqqNfirSqbkdI9LEaQdp13nVbRMlSju4wexdLKexFdW9U5mdLbf9dkT0SR7UpZUndCckXehU1GkO3+jqRFFYOdN8OULCktQ9VbV5jlNWw5AprtcXsHt7PZSKhbeiRBfAWCGIsCAqEQ/jBqvw45UysDfrTpkdviVAiWgQgXabwBJ+LttXJ6EqE8DMvetD22OzLuZI2YPHE4dWW9Nx5V/mSD8E5zPgp7Qqms3LjFFfArN1p7/tDuiuDwEUsK6wPhvs7MWyNMS9Y5KwTV+tYM7x9F/qoz/FF4fjc2l1wwwMKv+Ifv2r1toAAKq9v/2QLtLu 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:(13230031)(396003)(366004)(136003)(346002)(39860400002)(376002)(230273577357003)(230922051799003)(230173577357003)(64100799003)(451199024)(1800799012)(186009)(66899024)(41300700001)(38100700002)(2906002)(5660300002)(44832011)(316002)(4326008)(8676002)(8936002)(6916009)(66946007)(66476007)(66556008)(2616005)(86362001)(36756003)(83380400001)(6486002)(6666004)(478600001)(1076003)(107886003)(6512007)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2Ub7duVJROd7Or2lpoheAKxgu4smJj/EPqQHxvQRUvKuzP5kPIbz90F3WfWo?= =?us-ascii?Q?Arfc4vtZKu8htO5v00hAl+4P1Q39x0nOJwZY5AuoyLumc3HJU2wpSwICWikz?= =?us-ascii?Q?rbhwNQrIZSqTObi3CjIEou6xzohz6DsUdokgBJKAuwuGWum1OvqitrHCxn3q?= =?us-ascii?Q?GCZLUW+rcmXteI/4F8Ue4YPBt4wHy015eculaupq5C8dUUqd75/tm2ixRMzO?= =?us-ascii?Q?NjQiZzNoFr+vW9OtGqCnNlJMt0KFueHiNe/ed+rhB2i/q2btzH6jFXAdU06k?= =?us-ascii?Q?qVARWWF4yIrLz+BkHt0MbEoMeFzAM5Ds7mlDzqD9eE7yV076jqbNO4pWbdL1?= =?us-ascii?Q?R7Cre0aGUbvjXo1SojDh1mxbh55CAtUOIPW13eCxlK9Jjla0ulr2hOa2LNy2?= =?us-ascii?Q?GSxVVQPlp9/wvYCvCUuT0EIeuTXBDL2V4wkTmuAVvSX09S5zEeMyTZrkAimx?= =?us-ascii?Q?bX11sbdc7KFCiYT9Wsd3nx/JlcBZlHZTM0eQtIKUjxnSMPy2qvAmc8ZEeIcG?= =?us-ascii?Q?sapD1VxlUHrDb1r2fy8+2Sv+hIe4UkAmnIASIOUFU+quUVQunHWrnRj5ppF4?= =?us-ascii?Q?uCZPyPCIkqkbUcEi90Yg6N7G7rzTeSsirojZ8eiwnP3Dq5xkEXRvUUuBEiRy?= =?us-ascii?Q?1Qc7qzjovSZwFXsGBtTU+LniYPNkdEES6SgLTMgdZC7VmHm70cGEiGqK9V5K?= =?us-ascii?Q?5pbq5FenmDi4QuWPM4KnB3ZdLoda48SFIrEZNrYo/Y3VtQAZRM8zSE3hk+Wb?= =?us-ascii?Q?qdVPnycZwP1RIElKaLrBrT4xdOTiOhOMu6CpGctv1R5JleEfz4GzOt81PT2M?= =?us-ascii?Q?AABnxOSzmFLRUBeljohY+0NflW7ijXL6ouWfJd5Fe72KKPS1zGGpzNGSR2x0?= =?us-ascii?Q?RwCRm/YcddqTffW4t0DQ+8VUxgljJ0X7bVWq7eKsfD6giD2WvtnBcRTja5Ec?= =?us-ascii?Q?zd6BZZzdCpcu1rNFy1//+dRfq6sXwQAbBDSf/T+D3nyFbxOb0B6aczBbDXGj?= =?us-ascii?Q?WF4cn6qxiVbRssQ4Fe+nan+JrCm3L+JvktXs0dhsr1pSm26WWa7hxd7/XAYD?= =?us-ascii?Q?13DHNbE7FgSfGZS3JvBAiGkLDiGbTYzErMeEFPwqHvgSzK+9idD0oHAQZeHd?= =?us-ascii?Q?8hffuKDENx89sf8ndJ9B0Wq+Vl7EsJ1OpyAAnvH6jKDFLPt5wvVzecOVX/8B?= =?us-ascii?Q?vAkvlpqB3i2oSKv492Wss9PYz7bcdWMx801m803PCfRoS3BRNaitjYLSiKfx?= =?us-ascii?Q?vEQZR0ODg3B1Xb21WPJBxWry3iICSjDMQQier+Gkofy4kuyBIgwQAU1uFGOT?= =?us-ascii?Q?sPa6FZrogSkQ/zwvdu67+f9u4ZI0s+dY8E23fS4+EmKyf5q6XW2+5KchJoki?= =?us-ascii?Q?87aR+IWcs9VHhMHacHFMtVaTtcfjz8R3yv9V1y78lDBa1e4EyakESdGS9SEs?= =?us-ascii?Q?cBOOQQO/QvARFLa54iF/9/w2Xt6DOgOmI2h0sKD+6CZUwaH7M6raTi8nyH1Y?= =?us-ascii?Q?Ys8r8whPDyZSf3hu+XedRDcsSe7Y9pi//mgo+Nnq98SqMwb9uGYSpCwJUH7c?= =?us-ascii?Q?e74HTEpgmZA2pDeQw+PFt2kMCbFHMaMfx8DrfUDzSSF1GcQgk4H1ZSnSKxlf?= =?us-ascii?Q?75Z4Uc9D+1NSgVcZhCZx/Mk=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: kFQIKg8hXygjo+dhsXLcvkG71/wM9RVwIZbh60DzMGj4Fy2eFJjfJ/JfDSXcws7q9NETw9u0SS+pugt+qvg/fRxUPjsn8u7EopoL2Z0iEYnUJqosHvhMAQ2aMlKbOsfzp1V3ZW2BqaoHoIIW7mDP4rLlalgKRSHNsYuY6bqgXaCX9ELOE6jPl8iaKaJfYbSXxFn4rvd1R7VN5bMlkmfcgYR0Xrv2nKQcU2Ahph+/himFoK89oNws9CwBAwFJthfC6CdB6V1wPa1AT6W5JaEAtlowTVePORnGvosqgpdUD6bQGiCA0FjOrE9y0xSfZ7q2QUQI8RUSBEYTJuKYMAknTh9MYsuOHFtaIeb5BeHr9/6X7P+Kw/nZsqVjKFGzYcmTRAq2bxio9RyZ+NKkzqQrrx7vIyihkACNjsQOw/GolsUXPncJiZFrcE4qjVb45xyuGhhuZEqCN9Wt8DPpchWr/E6Uo0tnloBqpqq0uKIRYjTQ/D2AhlMQkuj1zuNT2bFBUSS+83RoJ+K4yWpazB9Rt780dzmm3FsBp2LFg26seHK79mQHY2o/+08nBAmOP+Dd9W860P558yf11XBL/PE7Q2aIJ/dLluXizDusTfPy9kjSnaLhchB5Wzuh0aU/MbORw4cfMsre2DsOJyxMN0R8w2w5sYQArJuq6n/JkMhp/FXOlcByLgFSweQuu1wCJ42iLj2GIUIoKxcYWmKiHI/+aErXXvwmym17m4mjX9HeKMU2NYIbUqsZqI4evbJ+YbeEGg6jZLnNclVMGYMKY0mziQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6c89fc24-3ff6-41eb-0f5d-08dbfa0f1f7c X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 06:05:06.3880 (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: ZLL0mc4elan8VwsY06a+mDKspuKZeydmiEPz+OW8+viFtfTO89SSywIIpoZjSQezWCGpoiS3TAPuTO98mmP73w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4610 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-10_16,2023-12-07_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 mlxlogscore=936 adultscore=0 phishscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2312110049 X-Proofpoint-ORIG-GUID: EhcdbZS59lWR1t4fw2BilVrfJViPIFsy X-Proofpoint-GUID: EhcdbZS59lWR1t4fw2BilVrfJViPIFsy X-Spam-Status: No, score=-13.1 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_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 List-Id: [No changes from V2] When the command line option --scfi (default is --scfi=all) is passed to the GNU assembler, it will synthesize DWARF call frame information (CFI) for the input assembly. The option --scfi=all will also ignore many of the existing .cfi_* directives, if already contained in the provided input file. Only the following CFI directives will not be ignored: - .cfi_sections, - .cfi_label, - .cfi_signal_frame To use SCFI, a target will need to: - define TARGET_USE_SCFI and TARGET_USE_GINSN, and other necessary definitions, - provide means to help GAS understand the target specific instruction semantics by creating ginsns. The --scfi=[all,none] may see more options added in future. For example, --scfi=inline, for dealing with inline asm may be added in the future. In this option, the GNU assembler will consume (and not ignore) the compiler generated CFI for the code surrounding the inline asm. Also document the option. gas/ * as.c (show_usage): Add support for --scfi. (parse_args): Likewise. * as.h (enum synth_cfi_type): Define new type. * doc/as.texi: Document the new option. --- gas/as.c | 22 +++++++++++++++++++++- gas/as.h | 8 ++++++++ gas/doc/as.texi | 12 ++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/gas/as.c b/gas/as.c index 6839c841588..332fd6db4b9 100644 --- a/gas/as.c +++ b/gas/as.c @@ -372,6 +372,11 @@ Options:\n\ -R fold data section into text section\n")); fprintf (stream, _("\ --reduce-memory-overheads ignored\n")); +#if defined (TARGET_USE_SCFI) && defined (TARGET_USE_GINSN) + fprintf (stream, _("\ + --scfi=[all,none] (default: all)\n\ + Synthesize DWARF CFI for hand-written asm\n")); +# endif fprintf (stream, _("\ --statistics print various measured statistics from execution\n")); fprintf (stream, _("\ @@ -511,7 +516,8 @@ parse_args (int * pargc, char *** pargv) OPTION_NOCOMPRESS_DEBUG, OPTION_NO_PAD_SECTIONS, OPTION_MULTIBYTE_HANDLING, /* = STD_BASE + 40 */ - OPTION_SFRAME + OPTION_SFRAME, + OPTION_SCFI /* When you add options here, check that they do not collide with OPTION_MD_BASE. See as.h. */ }; @@ -586,6 +592,9 @@ parse_args (int * pargc, char *** pargv) ,{"no-pad-sections", no_argument, NULL, OPTION_NO_PAD_SECTIONS} ,{"no-warn", no_argument, NULL, 'W'} ,{"reduce-memory-overheads", no_argument, NULL, OPTION_REDUCE_MEMORY_OVERHEADS} +#if defined (TARGET_USE_SCFI) && defined (TARGET_USE_GINSN) + ,{"scfi", no_argument, NULL, OPTION_SCFI} +#endif ,{"statistics", no_argument, NULL, OPTION_STATISTICS} ,{"strip-local-absolute", no_argument, NULL, OPTION_STRIP_LOCAL_ABSOLUTE} ,{"version", no_argument, NULL, OPTION_VERSION} @@ -982,6 +991,17 @@ This program has absolutely no warranty.\n")); flag_execstack = 0; break; +#if defined (TARGET_USE_SCFI) && defined (TARGET_USE_GINSN) + case OPTION_SCFI: + if (!optarg || strcasecmp (optarg, "all") == 0) + flag_synth_cfi = SYNTH_CFI_ALL; + else if (strcasecmp (optarg, "none") == 0) + flag_synth_cfi = SYNTH_CFI_NONE; + else + as_fatal (_("Invalid --scfi= option: `%s'"), optarg); + break; +#endif + case OPTION_SIZE_CHECK: if (strcasecmp (optarg, "error") == 0) flag_allow_nonconst_size = false; diff --git a/gas/as.h b/gas/as.h index 46dd0d0776d..378653e2200 100644 --- a/gas/as.h +++ b/gas/as.h @@ -324,6 +324,14 @@ COMMON int flag_fatal_warnings; /* --fatal-warnings */ are detected. */ COMMON unsigned char flag_always_generate_output; /* -Z */ +enum synth_cfi_type +{ + SYNTH_CFI_NONE = 0, + SYNTH_CFI_ALL, +}; + +COMMON enum synth_cfi_type flag_synth_cfi; + /* This is true if the assembler should output time and space usage. */ COMMON unsigned char flag_print_statistics; diff --git a/gas/doc/as.texi b/gas/doc/as.texi index 52571d95dd2..cfc1078c36b 100644 --- a/gas/doc/as.texi +++ b/gas/doc/as.texi @@ -255,6 +255,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}. [@b{--multibyte-handling=[allow|warn|warn-sym-only]}] [@b{--no-pad-sections}] [@b{-o} @var{objfile}] [@b{-R}] + [@b{--scfi=[all,none]}] [@b{--sectname-subst}] [@b{--size-check=[error|warning]}] [@b{--statistics}] @@ -932,6 +933,17 @@ Ignored. Supported for compatibility with tools that apss the same option to both the assembler and the linker. @ifset ELF +@item --scfi=none +@itemx --scfi=all +These options control whether the assembler should synthesize CFI for +hand-written input. If the input already contains some synthesizable CFI +directives, the assembler ignores them and emits a warning. Note that +@code{--scfi=all} is not intended to be used for compiler-generated code, +including inline assembly. + +The input asm must begin with the @code{.type} directive, and should ideally be +closed off using a @code{.size} directive. + @item --sectname-subst Honor substitution sequences in section names. @ifclear man -- 2.41.0