From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on2043.outbound.protection.outlook.com [40.107.15.43]) by sourceware.org (Postfix) with ESMTPS id 4A4113858D1E for ; Tue, 31 Oct 2023 11:28:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4A4113858D1E Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4A4113858D1E Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.15.43 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1698751739; cv=pass; b=DFOrEwP+67o9mFeeBE2HV4EX74SGlhiVER2MJvRkxbqRbnWjG4115ETYYgbCCsAt93PRMN7jnAmML4lRgtNQwBSgslr95VIihIWobVAfPn2B2R+qq6FPaumvAzz0w9EPSjfdgcgukTYwhCuCrgYMDtarl3VmnA/N8kdDmbUO3PQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1698751739; c=relaxed/simple; bh=BF5abQXDdWyYYCWcmVEkKOC0097dRgHaN7B8YldZWgw=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=fMVDLm97kcZXnXy+z5LRDwSRHe8Aq9vBSS8R/yaJv2Ab8KVYCbQTfULS2GNVgLaT6YHyv7MFj+khufDooVXTRKETgh4zHOY7oaxwPXU2bK7lUmi8hEYLpemn8wf46QsH+kxRxnlbr+k2Cd52rGRUekrS0rlXoZCL4WEU6aMoKZM= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BWGvSBtzkOhuDI0P7UiEqSIlfV0eGrOFAVmjzIWT1xKAzJDQq5oK1SQcHKR0ktsHzXeth0nqUm3zfMe0WKK0vQHurAXholfOZglXwo3bMq4w37nnAOVbPfYw6pOdVBBtJehGQNLngv7Ol6oW0iey4F3ALpgYBmalxg28zOwHkc1M6ELByzHbxtJQmqK8Kf9RJ0AKTNIusrGfCrX+C16suLjm5pMFF3VA88LrwAdT55dg9AF2ncecthurmfUdgnugXsOL6PtYEJk4XzJ97DxsrxjmNEERj+bETvloGo+mHRpN5PZy/o6j2uloMeXKrFWaJ6iMwBqP5SpH+6aP2eZGhA== 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=WjSM2zU1DZl22W5MbAz9sCLh2lkIOjYdjXCwJ79YACM=; b=HH6MHQ/9NqMtCL5oo2cVUR4C5eVgXahNDUPiu4Iu9KBRV8/6JXm06ym4xmjUandLd9/GsOwd9d+ohvtE/OcJjkC7dKgfYmTr3/DV5URiWM1Il09gXGXgHrhmPZZ1UuDdkbUpdrhEZcOYXr+NjIxK/iRUgK1sAPZN6MihbgOcOI9Lq4xF7fzGiESzfOhq3JdtsAaROkxg8ntGT2UDOPHpwyfVTrHxHn3Ct29RqtD91M0krGuVFIoUDPneaotjfVpApT5mYz7Y7qG/JzcFSmPd8dDaC2Q23zQc2e++8G2WoLy1I1zPjdWvfZuC9t/edzQL30Nqgohx0BeS23GVzSQ8jA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WjSM2zU1DZl22W5MbAz9sCLh2lkIOjYdjXCwJ79YACM=; b=m3ccFt1P04U8YZq4bMvS+aVJ5rrhSVWxRdsm26MOEHO2IF2//dPqdzmaTRFEDBKh3nK7rh1u4f9UfgICUXxn9YlmTEoggm8OlwAeonkoSKBGSZWBy2LcrbGzdBAQUkV48FTtYaSjs5sP5CBb5hMaaDnKJl65iJIBAtZtilJXjmHiKd+A5ftffcdNOEEqA2x89JHEQf2ViJ7+yHCLgnn7CVbGF2BQWYWcDe9ckfskmC2a4Ijak+KtULmo2Ddc+jzxtVI8clIdtvsSYQQkTPMm9uk5ukr8V/oNP0pCa2yL1NLfMQQKOpozdyq1JvVX8oNKIaDbCDRhNe+EDu60DxFf/g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by AS8PR04MB8660.eurprd04.prod.outlook.com (2603:10a6:20b:42b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.16; Tue, 31 Oct 2023 11:28:53 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::d924:b650:a2ad:7b25]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::d924:b650:a2ad:7b25%3]) with mapi id 15.20.6954.016; Tue, 31 Oct 2023 11:28:53 +0000 Message-ID: Date: Tue, 31 Oct 2023 12:28:51 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH, V2 06/10] gas: scfidw2gen: new functionality to prepapre for SCFI Content-Language: en-US To: Indu Bhagat References: <20231030165137.2570939-1-indu.bhagat@oracle.com> <20231030165137.2570939-7-indu.bhagat@oracle.com> From: Jan Beulich Cc: binutils@sourceware.org In-Reply-To: <20231030165137.2570939-7-indu.bhagat@oracle.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR4P281CA0289.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e7::18) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS8PR04MB8660:EE_ X-MS-Office365-Filtering-Correlation-Id: 240f31d7-da6b-437d-deba-08dbda048ff0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 87NtF7rGGqf/K7Go0r6qdlWqFjCxD49dDvhch4mIVRudTtd7vZ8hC5DIGu8uS+Wd5pj0lZ/EKEpCjetzX8sTy3l3vWr+KI1kZiaS+YM95FB25qGT/c2+vp4Q5D5Yj/vcSFKkEuqhF6jPgpBX2LwjswVkTh8+YbyoTGVr5coed3/c3/z8y38XAWsCCfiAWdKtmmMLYTbtSxCbpWS5l93tn0xEHvJiqDHoIBamKLNNAzk4MqJ6z8O+tRJZFlkScMFBy7UjNZDFiDReijrfeQmUCqRiZGsAAXULkaNgZIP2/36LN6kx/Ly+0LJ8pABLKcek5lfssfHEaOi/MJqrdmpdI1VtOl5Fezxag0PlxtCzGcOwiRCKfMcgY1WREExNgJwF6Ws1+ZC6Cp5UgUnWUfbcLu6rWKY39sTMFDI5fGGekyau5Vqv9hrs1O+AnBFrovnNHfCStPZdYiBYQZei6yQj7gQPkmI0r5ETegJS+IDULtgDdtqfBmZRRe1VUC1Q/ofQoWtknua2npti5nX7l0jMMkAU9mNZmhQlsmhdelUxwXzjRUXTNJpJ/XDZN9xizNxs7+JueC513iXATLUl/XY/Y97NDlM4KejIre8mk+zPHDHhUlSmQO58mMuePRkE30Jza9q5QyjmbVfKJ18EwADGr4eUKbeP1iuCKa0ntjQYM3A= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(136003)(39860400002)(376002)(346002)(366004)(230922051799003)(451199024)(64100799003)(1800799009)(186009)(38100700002)(6506007)(4326008)(6486002)(478600001)(6512007)(53546011)(316002)(8676002)(8936002)(66476007)(66556008)(6916009)(66946007)(5660300002)(2906002)(41300700001)(83380400001)(26005)(2616005)(86362001)(31686004)(36756003)(31696002)(2004002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZXMvVFBkOFpTUUtVYXhJMW1lQzcyeGVQQjJEU1dsalpjcGJSZldQV20yekQr?= =?utf-8?B?ZkFzZUhQbWNhNGt5RnQ3UGgzbHBhVmdaY3A3WmtjUkRSUHM4SWdVUzE0NlhJ?= =?utf-8?B?Uk1HTnRhNUJKQWkzZEp4M1h6a2RpZEpmWEtVOFJ0UGhkWmE4ZW9RQ2k3eE1l?= =?utf-8?B?VjlyTEpubWhNKzFXb0Y0SnNQN2FTbzNyMjFEbjcrVmV2c2FqV3RpV29idGJv?= =?utf-8?B?ZUI1bFdCTmtGdVZLV1hCTnZwdDYyWGVuYmhxSzd6ZkllTnF3MEZWNmQ0UnhI?= =?utf-8?B?akNnRmx0Q0ZDWkNhTjFjT296SnhDTGRMM2pvTWFlbTFrY3R1dGJ0eVJVNUJa?= =?utf-8?B?bXAzVUtESGZwSGRFQU9DQm0veEZXdVlpRHNHbFVIUTEwVUpDVE1hc1ZxT2VV?= =?utf-8?B?RW9TZVZFdUdHcERJLy9NS1NkcEJkSEoxWDNoekhaNzlmcTREZVYzQm5jT0pk?= =?utf-8?B?ODdGaE1GRElUNVl1QXZaOHhsNGNhSjlCNGpWTWE5NmZLNkNseWZXdnViREdY?= =?utf-8?B?OW1ueTh3YXNxelQrZzJuUHJ1cWhyUi9uRVdTNUd3ckM2aDFzL0hmSXFxbExK?= =?utf-8?B?bEJkTy9kWFFqVWptaHhqSmNPeGVWRW9jcUtVLzl4UDRDZVFYTGg4YzBlSVNW?= =?utf-8?B?M0JtRldBemczRzBuc2JqSXpnclNPUDUvb3g3dW00MGJCT3FSYXQvMWF4V3l0?= =?utf-8?B?dHlMUmhJdmtxZUFadDQ4a1VUUGx6VjJ0VUxCWGlkd1VRbkM2K040S0ZOa1Ux?= =?utf-8?B?WVFnVmhmcDBvNzVUUFpJTDNIY1JWRzYvamUwOWRnZ3FqczdzMXhhay92b0Nu?= =?utf-8?B?TnZ2SmlMUWdMcGlkSXBEN205RUJSd1dRR2kzY1FXUDZ3YjBSTmNiSmx6ZkpY?= =?utf-8?B?cnVJVTFDeHB2Y3pWUmExeWVLQllKNGxCbXc0d1BQUGI5aGtRNk05OXdoTG1Z?= =?utf-8?B?cCs0MWd3SHdOaUNrM2kwYUQzc0FvUVAzM2R6THBzcE8wV2Uva1hDenZRSUZ4?= =?utf-8?B?NmpkMElMRUE2OFBiK2tFWkUyRnY4RDZnbHdNa0xUSjJPNkhPNjgwZmJEbjl2?= =?utf-8?B?MkNXS2NZTVR1MTlUMUNKdUU1ME42VHVnNmtHYUFLRzlRMUdweVhrcG9CTTNr?= =?utf-8?B?L1FRNlBFbksvS2tQMUd6czU1VXM5WXVnL3VwWVNQS295QzMzOUR3Tm45SFAz?= =?utf-8?B?em9zUXZZbVhUQjNoWlQ2WjFIQlhseGhJTk81Z0hseHE2VitNTHI3TmFqMWlH?= =?utf-8?B?UGYxNHdteG5uTTd2Z1dLbWdVaWYxaXJsMXlya3dtTjhYRjV0ZlV4WEpyZUR5?= =?utf-8?B?WUZGbGs2ZlBHbEZWRDUrRnZxaHhGb2l3Qk5FT3lLWDl4Q2hCeEFDM3o2MFBn?= =?utf-8?B?VVJzK2dtam1oSnlZZExnbVY5ajc4YXhGMWM2b0dlcVhtYStoUlJ2TTg4Rm82?= =?utf-8?B?cFk1bHlnTHRTbnVJdE5VaW9HcnN4SEYwWDhneGc2amY0OVZPZStTc3ozaDA5?= =?utf-8?B?VWdPbitPMmNoOCthbHVsQjRjQlVaZFB2TmtJZUNja2JtS3hEVGpvczltclNt?= =?utf-8?B?cU9wOEZKZDlLMzZGalgxUEZFbEJIYnpTSUlwNVJEd2NGcjRoN0luRzZaU1Fr?= =?utf-8?B?UStvK3VrVHBTSlZ5Y2s5enNzR21WTDdjMzNqR25jdmkvWTdSbU4yMnBnVHgv?= =?utf-8?B?VWZ3M0l0QU5jWUFtWU5jMTd4RW12K3N5OTJYbE1kOU8wRXRBSEI3akg1T3JJ?= =?utf-8?B?RitGZ2NVTVBlVzdKdUNmb1pUZmF5RzAwS0FPNi9aTDRobHI1MmxwOFc4MXdW?= =?utf-8?B?NzJJUzNFRzFEWGdnS3JaeHU3ZmZndXZuMHRiT25tU2w5aldON0FnQ05LUk81?= =?utf-8?B?Rm5GUCsveUhZN3FwaUJ3cDFBK2VYb3c4KzhiWkY5a3NHWnMvYUxYY1lTTFg2?= =?utf-8?B?dDhabmFBR0NEYjNkTFdEZkRPVk5NcVhQbjhDbUNuUUQ1SmFTa0VXWlR3QTdM?= =?utf-8?B?WjREdDBoRUdLdnpIVWs3THVnckdHeXRKS0RyMjNqMmtGd1pQSkNJTm1FL2dW?= =?utf-8?B?UEF0d3BsZDdVbStHTldsNGR6bS9kdFVsK20xREJVSjdZcVJqUmNPWHQ1WnBW?= =?utf-8?Q?jZu6cQBB/rH5cBtKKXxxZBHvJ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 240f31d7-da6b-437d-deba-08dbda048ff0 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2023 11:28:53.3974 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: y0CE0g+5lGSjObUGOGJgdJNgFY9KF3IAlNXFXmwuGbeC7LFg6uCVawfjYcNtJhnCxNghJvGeVuHraPdaxDeoDA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8660 X-Spam-Status: No, score=-3028.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,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: On 30.10.2023 17:51, Indu Bhagat wrote: > --- /dev/null > +++ b/gas/scfidw2gen.c > @@ -0,0 +1,305 @@ > +/* scfidw2gen.c - Support for emission of synthesized Dwarf2 CFI. > + Copyright (C) 2003-2023 Free Software Foundation, Inc. Is this year range really applicable to this new file? > + This file is part of GAS, the GNU Assembler. > + > + GAS is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3, or (at your option) > + any later version. > + > + GAS is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with GAS; see the file COPYING. If not, write to the Free > + Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA > + 02110-1301, USA. */ > + > +#include "as.h" > +#include "dw2gencfi.h" > +#include "subsegs.h" > +#include "scfidw2gen.h" > + > +#if defined (TARGET_USE_SCFI) && defined (TARGET_USE_GINSN) > + > +static int scfi_ignore_warn_once = 0; Nit: bool please (and no real need for an initializer). > +static void dot_scfi_sections (int); > +static void dot_scfi_ignore (int); > +static void dot_scfi (int); May I suggest to avoid such forward declarations by moving ... > +const pseudo_typeS scfi_pseudo_table[] = ... this table towards the bottom of the file? > + { > + { "cfi_sections", dot_scfi_sections, 0 }, /* No ignore. */ Instead of three such individual comments, how about putting the three relevant ones first, followed by a comment (serving as a separator) and then all dot_scfi_ignore entries? > + { "cfi_startproc", dot_scfi_ignore, 0 }, > + { "cfi_endproc", dot_scfi_ignore, 0 }, > + { "cfi_fde_data", dot_scfi_ignore, 0 }, > + { "cfi_def_cfa", dot_scfi_ignore, 0 }, > + { "cfi_def_cfa_register", dot_scfi_ignore, 0 }, > + { "cfi_def_cfa_offset", dot_scfi_ignore, 0 }, > + { "cfi_adjust_cfa_offset", dot_scfi_ignore, 0 }, > + { "cfi_offset", dot_scfi_ignore, 0 }, > + { "cfi_rel_offset", dot_scfi_ignore, 0 }, > + { "cfi_register", dot_scfi_ignore, 0 }, > + { "cfi_return_column", dot_scfi_ignore, 0 }, > + { "cfi_restore", dot_scfi_ignore, 0 }, > + { "cfi_undefined", dot_scfi_ignore, 0 }, > + { "cfi_same_value", dot_scfi_ignore, 0 }, > + { "cfi_remember_state", dot_scfi_ignore, 0 }, > + { "cfi_restore_state", dot_scfi_ignore, 0 }, > + { "cfi_window_save", dot_scfi_ignore, 0 }, > + { "cfi_negate_ra_state", dot_scfi_ignore, 0 }, > + { "cfi_escape", dot_scfi_ignore, 0 }, > + { "cfi_signal_frame", dot_scfi, CFI_signal_frame }, /* No ignore. */ > + { "cfi_personality", dot_scfi_ignore, 0 }, > + { "cfi_personality_id", dot_scfi_ignore, 0 }, > + { "cfi_lsda", dot_scfi_ignore, 0 }, > + { "cfi_val_encoded_addr", dot_scfi_ignore, 0 }, > + { "cfi_inline_lsda", dot_scfi_ignore, 0 }, > + { "cfi_label", dot_scfi, CFI_label }, /* No ignore. */ > + { "cfi_val_offset", dot_scfi_ignore, 0 }, > + { NULL, NULL, 0 } > + }; > + > +static void > +dot_scfi_ignore (int ignored ATTRIBUTE_UNUSED) > +{ > + gas_assert (flag_synth_cfi); > + > + if (scfi_ignore_warn_once == 0) > + { > + as_warn (_("--scfi=all ignores some user-specified CFI directives")); s/some/most/ ? > +void > +scfi_dot_cfi_startproc (symbolS *start_sym) This and the following two functions presently have no caller, and I also can't spot equivalents in dw2gencfi.c. How are they (going) to be used? This ... > +{ > + if (frchain_now->frch_cfi_data != NULL) > + { > + as_bad (_("previous CFI entry not closed (missing .cfi_endproc)")); ... for example suggests that the function here might really be the handler for .cfi_startproc, yet the table above says .cfi_startproc is ignored. > +#else > + > +static void > +dot_scfi_dummy (int ignored ATTRIBUTE_UNUSED) > +{ > + as_bad (_("SCFI is not supported for this target")); > + ignore_rest_of_line (); > +} > + > +const pseudo_typeS scfi_pseudo_table[] = > + { > + { "cfi_sections", dot_scfi_dummy, 0 }, > + { "cfi_startproc", dot_scfi_dummy, 0 }, > + { "cfi_endproc", dot_scfi_dummy, 0 }, > + { "cfi_fde_data", dot_scfi_dummy, 0 }, > + { "cfi_def_cfa", dot_scfi_dummy, 0 }, > + { "cfi_def_cfa_register", dot_scfi_dummy, 0 }, > + { "cfi_def_cfa_offset", dot_scfi_dummy, 0 }, > + { "cfi_adjust_cfa_offset", dot_scfi_dummy, 0 }, > + { "cfi_offset", dot_scfi_dummy, 0 }, > + { "cfi_rel_offset", dot_scfi_dummy, 0 }, > + { "cfi_register", dot_scfi_dummy, 0 }, > + { "cfi_return_column", dot_scfi_dummy, 0 }, > + { "cfi_restore", dot_scfi_dummy, 0 }, > + { "cfi_undefined", dot_scfi_dummy, 0 }, > + { "cfi_same_value", dot_scfi_dummy, 0 }, > + { "cfi_remember_state", dot_scfi_dummy, 0 }, > + { "cfi_restore_state", dot_scfi_dummy, 0 }, > + { "cfi_window_save", dot_scfi_dummy, 0 }, > + { "cfi_negate_ra_state", dot_scfi_dummy, 0 }, > + { "cfi_escape", dot_scfi_dummy, 0 }, > + { "cfi_signal_frame", dot_scfi_dummy, 0 }, > + { "cfi_personality", dot_scfi_dummy, 0 }, > + { "cfi_personality_id", dot_scfi_dummy, 0 }, > + { "cfi_lsda", dot_scfi_dummy, 0 }, > + { "cfi_val_encoded_addr", dot_scfi_dummy, 0 }, > + { "cfi_inline_lsda", dot_scfi_dummy, 0 }, > + { "cfi_label", dot_scfi_dummy, 0 }, > + { "cfi_val_offset", dot_scfi_dummy, 0 }, > + { NULL, NULL, 0 } > + }; > + > +#endif Is this really needed? Can't you simply error on use of the command line option, without the need for the extra table and dummy handler? > --- /dev/null > +++ b/gas/scfidw2gen.h > @@ -0,0 +1,37 @@ > +/* scfidw2gen.h - Support for emitting synthesized Dwarf2 CFI. > + Copyright (C) 2003-2023 Free Software Foundation, Inc. > + > + This file is part of GAS, the GNU Assembler. > + > + GAS is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3, or (at your option) > + any later version. > + > + GAS is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with GAS; see the file COPYING. If not, write to the Free > + Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA > + 02110-1301, USA. */ > + > +#ifndef SCFIDW2GEN_H > +#define SCFIDW2GEN_H > + > +#include "as.h" > +#include "dwarf2.h" > + > +extern int all_cfi_sections; This needs to go into dw2gencfi.h, such that dw2gencfi.c will also see the declaration (and the compiler be able to check that declaration and definition are in sync). Jan