From patchwork Fri Aug 4 06:26:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13341309 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4FDDCC04A6A for ; Fri, 4 Aug 2023 06:26:31 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.576860.903479 (Exim 4.92) (envelope-from ) id 1qRoGT-0001Fn-OS; Fri, 04 Aug 2023 06:26:21 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 576860.903479; Fri, 04 Aug 2023 06:26:21 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoGT-0001Fg-K7; Fri, 04 Aug 2023 06:26:21 +0000 Received: by outflank-mailman (input) for mailman id 576860; Fri, 04 Aug 2023 06:26:20 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoGS-0001FG-RQ for xen-devel@lists.xenproject.org; Fri, 04 Aug 2023 06:26:20 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on0623.outbound.protection.outlook.com [2a01:111:f400:fe0e::623]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id d320f1ee-328f-11ee-b26a-6b7b168915f2; Fri, 04 Aug 2023 08:26:20 +0200 (CEST) Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by PA4PR04MB7549.eurprd04.prod.outlook.com (2603:10a6:102:e0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.20; Fri, 4 Aug 2023 06:26:18 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e%5]) with mapi id 15.20.6631.046; Fri, 4 Aug 2023 06:26:18 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: d320f1ee-328f-11ee-b26a-6b7b168915f2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JIcepoZQLHoAej8AtgDTFQ5gmLSRviAcQHQfoyT31S98lbcGu3RfU6au/SbF4Bf7uehIu+DMKHTsj/BhsaYnZiAmV8eL+qAq8wCz/L5sTkB9qvyYLZtyoD7kvl2YWQTin2jWXcLe+hWiaYRbkc8uu3eFbLRwqxHzIXjU5NkBWE8EP89v4FjXJFJc2dhw5qqA2HRNedkKNw+NItuy9GHML9WG5saWllyJmLPE37FmXoiszVDJa3lc3+TXUp/gGfCdESA/BmsPtDFbOUHieryZqwkUn1yMIxhwHK1yNnz0BzuDZh6qPWkXhcRWvlnZcDixPLRzjihw2pHbjRNGnTntoA== 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=Njshz39xQXWzUhA0rIyJzlUroK26ZOgCP1y5HqVWGkc=; b=C2YNExXJc14pTzxKK6yDUvKBjGgWvoXD4j5vDSVQu70W0mGzfCcCpPltY9uxYNZv+HF6il1lFYPyp/bX0TxsGYo04KKPA+hEewtOt5oeAvm0nKClznrGSYT4y+JsPqGu8BhTnOr+vxZfju2mDufzmbDL8nEjH0KP4dAaQU1WMUdm0xb4FfuqkTTb28SQU8Hro0TEIDzEnOVp3NPCoujXU0e8rOU8BtzqBy6oH0jX7XI7cgD03jbQOjyVTRGChW5VkcUU4gw2qBQ6SR6NM7OidH9vXs7LpVat9XHofhgyJLDkXD/Rtxb2XBNSrg8E1iufCPjvQId9uUgLxxVuoihdWQ== 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=Njshz39xQXWzUhA0rIyJzlUroK26ZOgCP1y5HqVWGkc=; b=f5nWjrvevgLbNrsC1jnrSqI3W78s9oeCwKE+hLBU8Fy0v8W+Rp1hb40gAOxKyxcUKd/+rVYY+GcIUGBtrWNgSL1RqWBbhvww0DRfQPTraFKmAECrpkTYqkbRmGM9jPUaA1Bs0tNRNObRdux60RMEYNZjWQvtwM4bASh+tU+FXgB+ZKMrSnu2XLbztsPSnwGVzdfHQYmTRsMB/QrbNOxBZ5Ai26hI+H6Ep1rIzzVgX7QmHl5I2sxDWCXz5yIYjY69JdSNE2xlskEuwX1p5wa0IMHettJL6YW26a9Vnsba4K7CbnIx3xq/7yfv5vPgoSYQTrFbzb1GDUzT4kvA1I7UlQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <8ed43968-311e-263b-4dd7-9f8a49a394dc@suse.com> Date: Fri, 4 Aug 2023 08:26:16 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.1 Subject: [PATCH v4 1/8] common: assembly entry point type/size annotations Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , Julien Grall , Stefano Stabellini , George Dunlap References: In-Reply-To: X-ClientProxiedBy: FR3P281CA0112.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::15) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PA4PR04MB7549:EE_ X-MS-Office365-Filtering-Correlation-Id: 383e3393-971a-43bb-ed4b-08db94b3b62f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AV0XOXT8QOWAFgwYxjNSlQmqEFIG6vcr71PeiqsmZeyoYhzz1/u4jEhZ3xmMsa+FQPPVu1ZnrKvutWR5CRjJQNSIgEEakA/Fc6eQtKXXqskBnEKexv51jYoPPVyhoROWCSj8N8IRtVqzMkA+qT11Q5M2jtjhpO57IRJef0RSrIR+9ixgi3GRcM30lZ34IRRqjspwdoN2daA0U4I+lwishW3v+LPpA1PpCVfl333GMt+xJ4Sf5fqPVWui6psI0VucXjLCUb9DdybyQmoKE/7ZR5gN9CWFVrvpjVYuVxNs+7zUrPhiph3oKcX+3B/o0Gj9lswKNfsAIKdBRPx6QUEz2V7ZEK6UsRhYdhdjJ5V2zRYZYb1DYok4WZH5VmubD/FlpQlPpblzmRXp0j+Y7rCiWctM6lf+JzPQ+idgII+y5ojeMkjicbam0pgyjgr/mu0DX1Q3HbpNz3ze1O48KOVWralpfB2R1ewS53b4zyLUCMtxn8sIKUeMQZ0vzgX8Bxqt7/f5izH5x0P+JnW4RtkCLorTLA73QyG0AtzFDLAwzV3oVFyLuq+O1CWAHOKOPRiUcwrRxnIcfgXA9hoGdR200ww+NjQsmWliqPU9t6Y7QOy+m1NVl0cqj2HN+wJuSkR0jhZ6e7zBmgmhm3MQ94IISw== 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:(13230028)(136003)(396003)(366004)(39860400002)(376002)(346002)(451199021)(1800799003)(186006)(4326008)(6916009)(316002)(2616005)(66946007)(66476007)(66556008)(5660300002)(26005)(41300700001)(6506007)(8676002)(8936002)(31696002)(54906003)(6512007)(6486002)(966005)(478600001)(31686004)(38100700002)(2906002)(86362001)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?x1XfNLADenxw3/q99rxZ+9fxsVUP?= =?utf-8?q?BRMsBP12hFrUiOc3InV59KiJbrsQkfVMwFtF3yZGF432BdPlhDr1ATkH7zB14bFSA?= =?utf-8?q?dLO+HJNS2AhAIk7ZVcmlC1dylvLg4EWSIZaW+6BQOawmbFZvMJAITMqpKx3jVfZ1h?= =?utf-8?q?dRueoST37mdkgD7WGH6MYFu9EQBcticoNQNwVvYODynNTk4xQp2GZVxqM4Q0BkY5R?= =?utf-8?q?Yh2jWOHd7bRFsEhN/oFAVChbczHKmcR65IRPDEkZesmZ/rYqpIuHv9J0Mr0xUxsUD?= =?utf-8?q?pLRXQwgqtV2lG7ybr9AFZ/WboRG+Mr6u/KEaIAW3n0k1pPPfkW5wZLnQf+En3vp4R?= =?utf-8?q?mOW7gKeqD0yMGaLCofmSNKrQhUq6iKJi13GWHIcBbMZZUmHi6UfQ96ny3UKk5FZ7m?= =?utf-8?q?UtMDNpFcgsbeoyT+jsvDR98J26aY4q4lHV1Kwd92UQavMKtEwjeyrAFF+uKy4Q1vf?= =?utf-8?q?lEP2GyKlciXdZ8dofZNfc4kLUOcMsJ1AJ+cZmZRJkaDmEkW4Fvti9P4Yb5Py6V29f?= =?utf-8?q?/j5it/qJ9TPVbFhmZdWCoy5tJb2AUxR2CGinaHuRKaVtSdKv1Ph/YNOz2/Nqo1yDJ?= =?utf-8?q?qpghcczfZV97t9ugQ2nPK6+ybd8+XDdOxkXUo/QQpJeqjB87ZjyRlawBA27YWSmsh?= =?utf-8?q?k1RHlcqAAhHP4MOJrass/+A0gulrg3bnaRviClveVIIaQ4tVCjHxGIQeF2br+s+JI?= =?utf-8?q?eMgK7v7oEJsVddf0sVlT/J96zie4w41GjM35ePwO7ApA4PTw8iJlXoAR1uCNdANld?= =?utf-8?q?723u4qWOpXvOA2NqLo9AaEAtP/J1nwTsk8A+sW3RmiR6UbTyL2moRUfndVCRKJYj5?= =?utf-8?q?GAAN7H7sx3sNKkjPTyk6ySWNXiaAWpRqPieaEqq4M6kY+zh1pSP/3MC+1DKV4p+hk?= =?utf-8?q?eLUzJY4epnrRPeMwjhgYsWKmBmDB+iBrYt2Fww4qCL4DV0wbM2YUOTOsa+g4b6csw?= =?utf-8?q?wcUeZzkU5wvcVZTJH23LqzgQcKBI5KrVwFpkH0S7azaqR0GBvB6wAYP4ZVSaX6bry?= =?utf-8?q?IFaJ8lqvlZrPWtRPqR8GJ9oQsAv+evcbUU0+mwE1DSK3h4KwJDrtjOLb0dv8LwWHN?= =?utf-8?q?zzgEA1+eJouxW4Dn0z6Z8dWGV9pyWFFL6O4p1e0119nL82BpYYgQYBTdJOjqy43tV?= =?utf-8?q?v5wMkDuEq+4JJCHXMFN6DCieBc1alwWSU3X1DusxgULK7gURiC8I6aTC764FVqh12?= =?utf-8?q?8E32VeUCSQIY+RYNku5tcVKr/egtj4io6gvJwzOCwRXdAO+2k6OFOVfh3P4habvdA?= =?utf-8?q?yGZ2h0q1W9S3kwi7QXOGkr9NzrdE268+K7Yx6k+6QQpiPSKqDPghf8X1p4KBTgppl?= =?utf-8?q?LBV+7OYFMwozlbdEQw+VVmhqzhzrgvoWw7bfgWFHHZLwlko2+MOpt4xYikS0c0A4s?= =?utf-8?q?HkcuZ3nUXSqWTkbmc3YGlZwbs7csi/uqN4E32H9lYj+vvtbUQBcIaLkg/VtIuMQNb?= =?utf-8?q?zKIqU3HcLRzFktPe3OeQ7bfKL5fY7JITctfAJEy5WMAZphk0AMxcSRPElD4ZypTEu?= =?utf-8?q?ClsxqMXBJXoN?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 383e3393-971a-43bb-ed4b-08db94b3b62f X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2023 06:26:18.0939 (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: JoHYrPZKr9sQW8achC1A8vhLJAM36g92Uej6kWeOlvLlR/OdBzFP1iw7Z5QhH+3KEkM+wzeKAB3X8cqOmlZBAg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7549 Recent gas versions generate minimalistic Dwarf debug info for items annotated as functions and having their sizes specified [1]. Furthermore generating live patches wants items properly annotated. "Borrow" Arm's END() and (remotely) derive other annotation infrastructure from Linux'es, for all architectures to use. Signed-off-by: Jan Beulich [1] https://sourceware.org/git?p=binutils-gdb.git;a=commitdiff;h=591cc9fbbfd6d51131c0f1d4a92e7893edcc7a28 --- v3: New, generalized from earlier x86-only version. LAST() (now LASTARG()) moved to macros.h. --- TBD: What to set CODE_ALIGN to by default? Or should we requires arch-es to define that in all cases? TBD: {CODE,DATA}_ALIGN are byte granular, such that a value of 0 can be specified (in case this has some special meaning on an arch; conceivably it could mean to use some kind of arch default). We may not strictly need that, and hence we could also make these power-of -2 values (using .p2align). Note that we can't use ALIGN() (in place of SYM_ALIGN()) as long as we still have ALIGN. Note further that FUNC()'s etc "algn" parameter is intended to allow for only no or a single argument. If we wanted to also make the fill value customizable per call site, the constructs would need re-doing to some degree. --- /dev/null +++ b/xen/include/xen/linkage.h @@ -0,0 +1,56 @@ +#ifndef __LINKAGE_H__ +#define __LINKAGE_H__ + +#ifdef __ASSEMBLY__ + +#include + +#ifndef CODE_ALIGN +# define CODE_ALIGN ?? +#endif +#ifndef CODE_FILL +# define CODE_FILL ~0 +#endif + +#ifndef DATA_ALIGN +# define DATA_ALIGN 0 +#endif +#ifndef DATA_FILL +# define DATA_FILL ~0 +#endif + +#define SYM_ALIGN(algn...) .balign algn + +#define SYM_L_GLOBAL(name) .globl name +#define SYM_L_WEAK(name) .weak name +#define SYM_L_LOCAL(name) /* nothing */ + +#define SYM_T_FUNC STT_FUNC +#define SYM_T_DATA STT_OBJECT +#define SYM_T_NONE STT_NOTYPE + +#define SYM(name, typ, linkage, algn...) \ + .type name, SYM_T_ ## typ; \ + SYM_L_ ## linkage(name); \ + SYM_ALIGN(algn); \ + name: + +#define END(name) .size name, . - name + +#define FUNC(name, algn...) \ + SYM(name, FUNC, GLOBAL, LASTARG(CODE_ALIGN, ## algn), CODE_FILL) +#define LABEL(name, algn...) \ + SYM(name, NONE, GLOBAL, LASTARG(CODE_ALIGN, ## algn), CODE_FILL) +#define DATA(name, algn...) \ + SYM(name, DATA, GLOBAL, LASTARG(DATA_ALIGN, ## algn), DATA_FILL) + +#define FUNC_LOCAL(name, algn...) \ + SYM(name, FUNC, LOCAL, LASTARG(CODE_ALIGN, ## algn), CODE_FILL) +#define LABEL_LOCAL(name, algn...) \ + SYM(name, NONE, LOCAL, LASTARG(CODE_ALIGN, ## algn), CODE_FILL) +#define DATA_LOCAL(name, algn...) \ + SYM(name, DATA, LOCAL, LASTARG(DATA_ALIGN, ## algn), DATA_FILL) + +#endif /* __ASSEMBLY__ */ + +#endif /* __LINKAGE_H__ */ --- a/xen/include/xen/macros.h +++ b/xen/include/xen/macros.h @@ -15,6 +15,15 @@ #define count_args(args...) \ count_args_(., ## args, 8, 7, 6, 5, 4, 3, 2, 1, 0) +#define ARG1_(x, y...) (x) +#define ARG2_(x, y...) ARG1_(y) +#define ARG3_(x, y...) ARG2_(y) +#define ARG4_(x, y...) ARG3_(y) + +#define ARG__(nr) ARG ## nr ## _ +#define ARG_(nr) ARG__(nr) +#define LASTARG(x, y...) ARG_(count_args(x, ## y))(x, ## y) + /* Indirect macros required for expanded argument pasting. */ #define PASTE_(a, b) a ## b #define PASTE(a, b) PASTE_(a, b) From patchwork Fri Aug 4 06:26:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13341314 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3020DC04A6A for ; Fri, 4 Aug 2023 06:27:12 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.576864.903489 (Exim 4.92) (envelope-from ) id 1qRoH8-0001po-5M; Fri, 04 Aug 2023 06:27:02 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 576864.903489; Fri, 04 Aug 2023 06:27:02 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoH8-0001ph-1F; Fri, 04 Aug 2023 06:27:02 +0000 Received: by outflank-mailman (input) for mailman id 576864; Fri, 04 Aug 2023 06:27:00 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoH6-0001p1-Cr for xen-devel@lists.xenproject.org; Fri, 04 Aug 2023 06:27:00 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on0618.outbound.protection.outlook.com [2a01:111:f400:fe0e::618]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id ea94aab1-328f-11ee-b26a-6b7b168915f2; Fri, 04 Aug 2023 08:26:59 +0200 (CEST) Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by PA4PR04MB7549.eurprd04.prod.outlook.com (2603:10a6:102:e0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.20; Fri, 4 Aug 2023 06:26:58 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e%5]) with mapi id 15.20.6631.046; Fri, 4 Aug 2023 06:26:57 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: ea94aab1-328f-11ee-b26a-6b7b168915f2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mkUsSQcGqfGM5ImwGHBLBeaFem9Blj4+3KnJwikvmv9DFAorPeQVi+qZhpCkUEgLVjy4QlaiKihI8JardikT6FJHOTc8fe1Vto9VZOPFYuV9eG927+upS1zvJgwiZB6tqUlP69KOWJmAbHaPSVS2C9+MxZw0H/73r0kxmhvo+ois22/sFDQ9XeJwbSCyYKto0+7zOBaYrFFje/cn5N5ZufU5zhdLUmWzme/9kPhZahVE+1gEwYJoxekeT57DcRNf7USMq4fEPPVmICFh0d1zoo2ZZUotxqLC/mN3ejyY7YLFc+gbp2vN34WLPWlFJKd1dUfmcX6mZ3eBPnM+MT7xuA== 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=PoORKJUraSg+XV776ewByjof6hXH/BigXRIqZQuk5oA=; b=MvKG7HwTJnlX0gwUEXMsw5OmylQO6oGaPd3OMIh/alOT6yaqiaFGppCkMrZ/9A0R173sVvGEtw9qGWSUewIoTGkL3pBZG7nqpgcXzl9FnoSvcFTEL5o/Rb8GQH2POTKgdnHbSJdtf3kzoANVnvfrigOoV23NzlEsNHmX59/UGWEd98EpygmyAL6cWR0ilT7/qMDbohvgmEwm1kjUqjrygJSYPhCcV4ehvFG1Nja3oXPwmHetJykLt7ZKfepcllH3mCJc/cALwlttY6mL5KACpVqZPHG1QOGyh0wmLuJOuQMBUNTF+yCGmhFNFE1RIm2eAFsyPiX4XKeLBpfEH016Tg== 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=PoORKJUraSg+XV776ewByjof6hXH/BigXRIqZQuk5oA=; b=Qoir3ou1Vmj566cXB7U7EZ+EbkW8tCQcM7OteMWQojI4/G0F3gzBIU9qb21SO8DM5bM7CyQhTrRbNdMez2T9pCIUdCXTaCes2MH/Lcco6A8C/Jo8uPd1F7WkiaFo5YRbeSK5wDkTxJLrMXI9IWdWMe8y/M+YxCU5FmY8f6rgNUjRlvG8rFXtKl4izoPyGGf4WW0dN//UEzR5ihFi/nCOWLktzvt8dXfTv8wHdm00ua4YPoIMPaVwnHbyI5XwOYK6UmAttswtfVYH7/nRJZli9d54S93f1KfjhGVrPmYrUUachvgt+XBqC8BUSP0bBWHzf+KDJI4fT/ueq/h+0Mt53w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <41f9f8e9-8eff-5e83-8730-1b7b7854336d@suse.com> Date: Fri, 4 Aug 2023 08:26:56 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.1 Subject: [PATCH v4 2/8] x86: annotate entry points with type and size Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , George Dunlap References: In-Reply-To: X-ClientProxiedBy: FR3P281CA0115.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::10) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PA4PR04MB7549:EE_ X-MS-Office365-Filtering-Correlation-Id: 8a473e54-1e6c-4192-e1a0-08db94b3cdf0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 78J1Pok1vRUT0bZCDkJluMssb8/BYm7aLj/84RvrdhEqyis4aE31uPDLp2SZ93n8zhX/8m4xbjXEG/Hlgb+JGmu2QEXJwRSYIeymdiRlXFzt2hQiqO6i/+twtLF/2KclCjDZLcfEyTcElB4YA6FCVExUU2jjaowRu9W/hUyN946vzz2VnXA6tV8pHPe1XnVxZKveS4WQ69mrYetUgRxuMKck5AQB1IY/H/4iL7MqQFKpZH7DCbpg4ahiQwG5r2ibIjKtGJ/tMIPK32Llcaxa7V9oJ30O3v0D2oMuGyxoSYIYXtzRBjPHy9zN4m9mcDZv1wfoAaOnI+vrTg45cg+8r5Jak0vUnx1VY9lAjU/Af0H7GW1TD357+sHGpS1G5x/lAVwMBYRnlOSSVrLVO1WArzBISbB6q48YCfrfiExRsKvkWeDyjJRmh/5ldcWJR5PUDBwPFMCkXZdzEhHDC+aoEzdaMYjwedy0t69wANY6cNO0bC7mOeRH8og5O55qy63o9kuFHWqovXFkuqxiGxy5LoUMiP1inCz0P2Ve+iE3gSOLzmB5G1ZABjY02uNr306/5HPNQrwg/xZVLGJFTj5Gm8Wt8RdsitPYwZgRHBo08kH1oRIvXiX89F9RXQFPuGuOVSvdI99stguCqfu+l9grhg== 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:(13230028)(136003)(396003)(366004)(39860400002)(376002)(346002)(451199021)(1800799003)(186006)(4326008)(6916009)(316002)(2616005)(66946007)(66476007)(66556008)(5660300002)(26005)(41300700001)(6506007)(8676002)(8936002)(31696002)(54906003)(6512007)(6486002)(478600001)(31686004)(38100700002)(30864003)(2906002)(86362001)(36756003)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?6YQehSMyCX8b4jdeBwkNwvjrFA6Z?= =?utf-8?q?HtqC01JvbrSZzqX/3P3sCJ5k/bP0D5uzZeJf0Mal02oXB8a9K2dI+fAAY3hZ4OxxX?= =?utf-8?q?hmfEt+OxP+QEOOIlH0V7lULkiiNAnif9wd0IURaPNOHbpdHTJl+LatuyAqKr/dB6c?= =?utf-8?q?5Fho8obqjEQxZMetYTFHzaveVgSNCpmjRDilNqaOwwF4JaCDprM1uYQKznpMJilLv?= =?utf-8?q?HVe4kLFotNCilYUWMioGTAlvkgFZYa0E+ajbC1wc8+M+bbbFqhzlr10nzG5ClcfbV?= =?utf-8?q?mt7Afq4no092ncPOIzMgZlwlT3E7WL6wQELz3TZAZSeQZO/rmiUXGYBb5qtr9O/M0?= =?utf-8?q?MswO/u74+SADjn/6joTSuSFwkI1cRlsYrVx6qDyG8inuJUeskprvenbznXQHUkQwe?= =?utf-8?q?Maza7ysfzBN1wHJjCL6SJE9M/pUyQihmdGLevF31kzQ80Oyla2wQt6tHqTb3bqYSE?= =?utf-8?q?QyZWimE9brA19vhLjNHo5M9qiEbl59s1sWfywiKstvKraifBnMG/FBNE1m28YmQpz?= =?utf-8?q?F//sYsrkU7ho7bERKPZVCFUM3l+T6z2exqLn8EQ6allW+mchEoAPxJ6k6vSXPOFpo?= =?utf-8?q?qJqZDbcJYBUApYVU6o56HBUys9jGzQPqaDK91fInEhdJNtF43MuMIKgSIwuel8t7u?= =?utf-8?q?TKLVTSLRXKZ8GLU1Prh0g0VG7dZ6hjTun3no9ZBpqfa2AKwmhxulIt0DdB+AiwHiO?= =?utf-8?q?heOPdWwTIIR0Z6k8NXkShM/S6a0WxzZZo5V0n20MkDpF6RCk+PKweCxRECs3LDs2m?= =?utf-8?q?7//seQwgyEBpHgBVY0ahRjDy+dmBFVlonckjwb3GmoUCG9p8xYnYG3FaUlMwuht7j?= =?utf-8?q?ZbzTMAmLVyloX5fDThbI7lGuIvXaa8KM8c3JcPwaWCmeeK86V04zV+9PsKl4ksJH2?= =?utf-8?q?JikNgh6lFyv8DZSOvbt7b716ITQEEvRRtidWPb/s85tC7AtPg6yzjvKvXX+qapSZS?= =?utf-8?q?mVqcHPtJv29cVclvJwze1uvM+tI8sYcw9bW+4jQcdk7mdOHBG5Ru09rr3jV+3zXct?= =?utf-8?q?9CyWic4cKjz1oo/KmHpQtXglc+DU4+vgU38Lwx1syo7cdC2k83/CH7BUO3/IxEc+a?= =?utf-8?q?jrvlva3Y3WdhNViBysm3aEyzxNhauo49FmntzOnGmxej1bQKETDA429tgQvGYeKVq?= =?utf-8?q?YS4zdPI3tS1LTzQIPcx9Qtw3+YYy+LT0/tVfwq2Ja2A+l9JJeW/tPmKev/7Kx4I4u?= =?utf-8?q?8yR1cTKLdtN1Bh4jyHZkjbmB7NDVkekubbBkE9A1wMnDFfUpx49nNFM461/8jITe8?= =?utf-8?q?ul4irn5yaFcaW3ZIIRCeljXamA7P9mETzJZMlitsRKC5m4V95AOrfWnKDxd+vDlm6?= =?utf-8?q?YGuJDuuCRM3piZPiun4jad3qc5MlrTGhkctHVoJqogEL6ziZx4XQ+LrQAN3BT50OJ?= =?utf-8?q?sfzfZ7KEkcUsdEhGFbVIuIQSE6EmWg38VxNMkP7kwRC5lrjLAt63Q97bj6LGj3g2I?= =?utf-8?q?IfyKZ115DSeldqYj/FU+x7tneI/xHeGDCViMbzkEVDiPRB+sfZLyNc+UR6OCUWAG4?= =?utf-8?q?3yZbODaC0X9N?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8a473e54-1e6c-4192-e1a0-08db94b3cdf0 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2023 06:26:57.9302 (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: 9izG5Q4PInDjAPyZ0+MCUnPPdsZ27WEC2Kiffup4dqv9ow1mslKszH6snaiAqwVAkeTy9LMa7QfX1W7CCnIqcA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7549 Use the generic framework in xen/linkage.h. For switch_to_kernel() and restore_all_guest() so far implicit alignment (from being first in their respective sections) is being made explicit (as in: using FUNC() without 2nd argument). Whereas for {,compat}create_bounce_frame() and autogen_entrypoints[] alignment is newly arranged for. Except for the added/adjusted alignment padding (including their knock-on effects) no change in generated code/data. Note that the basis for support of weak definitions is added despite them not having any use right now. Note that ASM_INT() is switched to DATA(), not DATA_LOCAL(), as the only use site wants the symbol global anyway. Signed-off-by: Jan Beulich --- v4: Correct simd_coprocessor_error's (now entry_XM) END(). Re-base. v3: !PV variant of ret_from_intr is local. Introduction of macros split off to separate patch. Also adjust ASM_INT(). Re-base. v2: Full rework. --- Only two of the assembly files are being converted for now. More could be done right here or as follow-on in separate patches. Note that the FB-label in autogen_stubs() cannot be converted just yet: Such labels cannot be used with .type. We could further diverge from Linux'es model and avoid setting STT_NOTYPE explicitly (that's the type labels get by default anyway). The ASM_INT() redundancy of .global will be eliminated by a subsequent patch. I didn't think that I should make CODE_FILL evaluate to 0xCC right here; IMO that wants to be a separate patch. --- a/xen/arch/x86/include/asm/asm_defns.h +++ b/xen/arch/x86/include/asm/asm_defns.h @@ -13,6 +13,7 @@ #include #ifdef __ASSEMBLY__ +#include #include #ifndef CONFIG_INDIRECT_THUNK .equ CONFIG_INDIRECT_THUNK, 0 @@ -343,10 +344,7 @@ static always_inline void stac(void) .popsection #define ASM_INT(label, val) \ - .p2align 2; \ -label: .long (val); \ - .size label, . - label; \ - .type label, @object + DATA(label, 4) .long (val); END(label) #define ASM_CONSTANT(name, value) \ asm ( ".equ " #name ", %P0; .global " #name \ --- a/xen/arch/x86/include/asm/config.h +++ b/xen/arch/x86/include/asm/config.h @@ -43,7 +43,9 @@ /* Linkage for x86 */ #ifdef __ASSEMBLY__ -#define ALIGN .align 16,0x90 +#define CODE_ALIGN 16 +#define CODE_FILL 0x90 +#define ALIGN .align CODE_ALIGN, CODE_FILL #define ENTRY(name) \ .globl name; \ ALIGN; \ --- a/xen/arch/x86/x86_64/compat/entry.S +++ b/xen/arch/x86/x86_64/compat/entry.S @@ -11,7 +11,7 @@ #include #include -ENTRY(entry_int82) +FUNC(entry_int82) ENDBR64 ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP pushq $0 @@ -27,9 +27,10 @@ ENTRY(entry_int82) mov %rsp, %rdi call do_entry_int82 +END(entry_int82) /* %rbx: struct vcpu */ -ENTRY(compat_test_all_events) +FUNC(compat_test_all_events) ASSERT_NOT_IN_ATOMIC cli # tests must not race interrupts /*compat_test_softirqs:*/ @@ -66,24 +67,21 @@ compat_test_guest_events: call compat_create_bounce_frame jmp compat_test_all_events - ALIGN /* %rbx: struct vcpu */ -compat_process_softirqs: +LABEL_LOCAL(compat_process_softirqs) sti call do_softirq jmp compat_test_all_events - ALIGN /* %rbx: struct vcpu, %rdx: struct trap_bounce */ -.Lcompat_process_trapbounce: +LABEL_LOCAL(.Lcompat_process_trapbounce) sti .Lcompat_bounce_exception: call compat_create_bounce_frame jmp compat_test_all_events - ALIGN /* %rbx: struct vcpu */ -compat_process_mce: +LABEL_LOCAL(compat_process_mce) testb $1 << VCPU_TRAP_MCE,VCPU_async_exception_mask(%rbx) jnz .Lcompat_test_guest_nmi sti @@ -97,9 +95,8 @@ compat_process_mce: movb %dl,VCPU_async_exception_mask(%rbx) jmp compat_process_trap - ALIGN /* %rbx: struct vcpu */ -compat_process_nmi: +LABEL_LOCAL(compat_process_nmi) testb $1 << VCPU_TRAP_NMI,VCPU_async_exception_mask(%rbx) jnz compat_test_guest_events sti @@ -116,9 +113,10 @@ compat_process_trap: leaq VCPU_trap_bounce(%rbx),%rdx call compat_create_bounce_frame jmp compat_test_all_events +END(compat_test_all_events) /* %rbx: struct vcpu, interrupts disabled */ -ENTRY(compat_restore_all_guest) +FUNC(compat_restore_all_guest) ASSERT_INTERRUPTS_DISABLED mov $~(X86_EFLAGS_IOPL | X86_EFLAGS_VM), %r11d and UREGS_eflags(%rsp),%r11d @@ -161,9 +159,10 @@ ENTRY(compat_restore_all_guest) RESTORE_ALL adj=8 compat=1 .Lft0: iretq _ASM_PRE_EXTABLE(.Lft0, handle_exception) +END(compat_restore_all_guest) /* This mustn't modify registers other than %rax. */ -ENTRY(cr4_pv32_restore) +FUNC(cr4_pv32_restore) push %rdx GET_CPUINFO_FIELD(cr4, dx) mov (%rdx), %rax @@ -193,8 +192,9 @@ ENTRY(cr4_pv32_restore) pop %rdx xor %eax, %eax ret +END(cr4_pv32_restore) -ENTRY(compat_syscall) +FUNC(compat_syscall) /* Fix up reported %cs/%ss for compat domains. */ movl $FLAT_COMPAT_USER_SS, UREGS_ss(%rsp) movl $FLAT_COMPAT_USER_CS, UREGS_cs(%rsp) @@ -222,8 +222,9 @@ UNLIKELY_END(compat_syscall_gpf) movw %si,TRAPBOUNCE_cs(%rdx) movb %cl,TRAPBOUNCE_flags(%rdx) jmp .Lcompat_bounce_exception +END(compat_syscall) -ENTRY(compat_sysenter) +FUNC(compat_sysenter) CR4_PV32_RESTORE movq VCPU_trap_ctxt(%rbx),%rcx cmpb $X86_EXC_GP, UREGS_entry_vector(%rsp) @@ -236,17 +237,19 @@ ENTRY(compat_sysenter) movw %ax,TRAPBOUNCE_cs(%rdx) call compat_create_bounce_frame jmp compat_test_all_events +END(compat_sysenter) -ENTRY(compat_int80_direct_trap) +FUNC(compat_int80_direct_trap) CR4_PV32_RESTORE call compat_create_bounce_frame jmp compat_test_all_events +END(compat_int80_direct_trap) /* CREATE A BASIC EXCEPTION FRAME ON GUEST OS (RING-1) STACK: */ /* {[ERRCODE,] EIP, CS, EFLAGS, [ESP, SS]} */ /* %rdx: trap_bounce, %rbx: struct vcpu */ /* On return only %rbx and %rdx are guaranteed non-clobbered. */ -compat_create_bounce_frame: +FUNC_LOCAL(compat_create_bounce_frame) ASSERT_INTERRUPTS_ENABLED mov %fs,%edi ALTERNATIVE "", stac, X86_FEATURE_XEN_SMAP @@ -352,3 +355,4 @@ compat_crash_page_fault: jmp .Lft14 .previous _ASM_EXTABLE(.Lft14, .Lfx14) +END(compat_create_bounce_frame) --- a/xen/arch/x86/x86_64/entry.S +++ b/xen/arch/x86/x86_64/entry.S @@ -24,7 +24,7 @@ #ifdef CONFIG_PV /* %rbx: struct vcpu */ -switch_to_kernel: +FUNC_LOCAL(switch_to_kernel) leaq VCPU_trap_bounce(%rbx),%rdx /* TB_eip = 32-bit syscall ? syscall32_addr : syscall_addr */ @@ -89,24 +89,21 @@ test_guest_events: call create_bounce_frame jmp test_all_events - ALIGN /* %rbx: struct vcpu */ -process_softirqs: +LABEL_LOCAL(process_softirqs) sti call do_softirq jmp test_all_events - ALIGN /* %rbx: struct vcpu, %rdx struct trap_bounce */ -.Lprocess_trapbounce: +LABEL_LOCAL(.Lprocess_trapbounce) sti .Lbounce_exception: call create_bounce_frame jmp test_all_events - ALIGN /* %rbx: struct vcpu */ -process_mce: +LABEL_LOCAL(process_mce) testb $1 << VCPU_TRAP_MCE, VCPU_async_exception_mask(%rbx) jnz .Ltest_guest_nmi sti @@ -120,9 +117,8 @@ process_mce: movb %dl, VCPU_async_exception_mask(%rbx) jmp process_trap - ALIGN /* %rbx: struct vcpu */ -process_nmi: +LABEL_LOCAL(process_nmi) testb $1 << VCPU_TRAP_NMI, VCPU_async_exception_mask(%rbx) jnz test_guest_events sti @@ -139,11 +135,12 @@ process_trap: leaq VCPU_trap_bounce(%rbx), %rdx call create_bounce_frame jmp test_all_events +END(switch_to_kernel) .section .text.entry, "ax", @progbits /* %rbx: struct vcpu, interrupts disabled */ -restore_all_guest: +FUNC_LOCAL(restore_all_guest) ASSERT_INTERRUPTS_DISABLED /* Stash guest SPEC_CTRL value while we can read struct vcpu. */ @@ -220,8 +217,7 @@ restore_all_guest: sysretq 1: sysretl - ALIGN -.Lrestore_rcx_iret_exit_to_guest: +LABEL_LOCAL(.Lrestore_rcx_iret_exit_to_guest) movq 8(%rsp), %rcx # RIP /* No special register assumptions. */ iret_exit_to_guest: @@ -230,6 +226,7 @@ iret_exit_to_guest: addq $8,%rsp .Lft0: iretq _ASM_PRE_EXTABLE(.Lft0, handle_exception) +END(restore_all_guest) /* * When entering SYSCALL from kernel mode: @@ -246,7 +243,7 @@ iret_exit_to_guest: * - Guest %rsp stored in %rax * - Xen stack loaded, pointing at the %ss slot */ -ENTRY(lstar_enter) +FUNC(lstar_enter) #ifdef CONFIG_XEN_SHSTK ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK #endif @@ -281,9 +278,10 @@ ENTRY(lstar_enter) mov %rsp, %rdi call pv_hypercall jmp test_all_events +END(lstar_enter) /* See lstar_enter for entry register state. */ -ENTRY(cstar_enter) +FUNC(cstar_enter) #ifdef CONFIG_XEN_SHSTK ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK #endif @@ -321,8 +319,9 @@ ENTRY(cstar_enter) jne compat_syscall #endif jmp switch_to_kernel +END(cstar_enter) -ENTRY(sysenter_entry) +FUNC(sysenter_entry) ENDBR64 #ifdef CONFIG_XEN_SHSTK ALTERNATIVE "", "setssbsy", X86_FEATURE_XEN_SHSTK @@ -331,7 +330,7 @@ ENTRY(sysenter_entry) pushq $FLAT_USER_SS pushq $0 pushfq -GLOBAL(sysenter_eflags_saved) +LABEL(sysenter_eflags_saved, 0) ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP pushq $3 /* ring 3 null cs */ pushq $0 /* null rip */ @@ -385,8 +384,9 @@ UNLIKELY_END(sysenter_gpf) jne compat_sysenter #endif jmp .Lbounce_exception +END(sysenter_entry) -ENTRY(int80_direct_trap) +FUNC(int80_direct_trap) ENDBR64 ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP pushq $0 @@ -474,6 +474,7 @@ int80_slow_path: */ GET_STACK_END(14) jmp handle_exception_saved +END(int80_direct_trap) /* create_bounce_frame & helpers don't need to be in .text.entry */ .text @@ -482,7 +483,7 @@ int80_slow_path: /* { RCX, R11, [ERRCODE,] RIP, CS, RFLAGS, RSP, SS } */ /* %rdx: trap_bounce, %rbx: struct vcpu */ /* On return only %rbx and %rdx are guaranteed non-clobbered. */ -create_bounce_frame: +FUNC_LOCAL(create_bounce_frame) ASSERT_INTERRUPTS_ENABLED testb $TF_kernel_mode,VCPU_thread_flags(%rbx) jnz 1f @@ -618,6 +619,7 @@ ENTRY(dom_crash_sync_extable) xorl %edi,%edi jmp asm_domain_crash_synchronous /* Does not return */ .popsection +END(create_bounce_frame) #endif /* CONFIG_PV */ /* --- CODE BELOW THIS LINE (MOSTLY) NOT GUEST RELATED --- */ @@ -626,7 +628,7 @@ ENTRY(dom_crash_sync_extable) /* No special register assumptions. */ #ifdef CONFIG_PV -ENTRY(continue_pv_domain) +FUNC(continue_pv_domain) ENDBR64 call check_wakeup_from_wait ret_from_intr: @@ -641,26 +643,28 @@ ret_from_intr: #else jmp test_all_events #endif +END(continue_pv_domain) #else -ret_from_intr: +FUNC_LOCAL(ret_from_intr, 0) ASSERT_CONTEXT_IS_XEN jmp restore_all_xen +END(ret_from_intr) #endif .section .init.text, "ax", @progbits -ENTRY(early_page_fault) +FUNC(early_page_fault) ENDBR64 movl $X86_EXC_PF, 4(%rsp) SAVE_ALL movq %rsp, %rdi call do_early_page_fault jmp restore_all_xen +END(early_page_fault) .section .text.entry, "ax", @progbits - ALIGN /* No special register assumptions. */ -restore_all_xen: +FUNC_LOCAL(restore_all_xen) /* * Check whether we need to switch to the per-CPU page tables, in * case we return to late PV exit code (from an NMI or #MC). @@ -677,8 +681,9 @@ UNLIKELY_END(exit_cr3) RESTORE_ALL adj=8 iretq +END(restore_all_xen) -ENTRY(common_interrupt) +FUNC(common_interrupt) ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP SAVE_ALL @@ -707,12 +712,14 @@ ENTRY(common_interrupt) mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) mov %bl, STACK_CPUINFO_FIELD(use_pv_cr3)(%r14) jmp ret_from_intr +END(common_interrupt) -ENTRY(entry_PF) +FUNC(entry_PF) ENDBR64 movl $X86_EXC_PF, 4(%rsp) +END(entry_PF) /* No special register assumptions. */ -GLOBAL(handle_exception) +FUNC(handle_exception, 0) ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP SAVE_ALL @@ -880,92 +887,108 @@ FATAL_exception_with_ints_disabled: xorl %esi,%esi movq %rsp,%rdi tailcall fatal_trap +END(handle_exception) -ENTRY(entry_DE) +FUNC(entry_DE) ENDBR64 pushq $0 movl $X86_EXC_DE, 4(%rsp) jmp handle_exception +END(entry_DE) -ENTRY(entry_MF) +FUNC(entry_MF) ENDBR64 pushq $0 movl $X86_EXC_MF, 4(%rsp) jmp handle_exception +END(entry_MF) -ENTRY(entry_XM) +FUNC(entry_XM) ENDBR64 pushq $0 movl $X86_EXC_XM, 4(%rsp) jmp handle_exception +END(entry_XM) -ENTRY(entry_NM) +FUNC(entry_NM) ENDBR64 pushq $0 movl $X86_EXC_NM, 4(%rsp) jmp handle_exception +END(entry_NM) -ENTRY(entry_DB) +FUNC(entry_DB) ENDBR64 pushq $0 movl $X86_EXC_DB, 4(%rsp) jmp handle_ist_exception +END(entry_DB) -ENTRY(entry_BP) +FUNC(entry_BP) ENDBR64 pushq $0 movl $X86_EXC_BP, 4(%rsp) jmp handle_exception +END(entry_BP) -ENTRY(entry_OF) +FUNC(entry_OF) ENDBR64 pushq $0 movl $X86_EXC_OF, 4(%rsp) jmp handle_exception +END(entry_OF) -ENTRY(entry_BR) +FUNC(entry_BR) ENDBR64 pushq $0 movl $X86_EXC_BR, 4(%rsp) jmp handle_exception +END(entry_BR) -ENTRY(entry_UD) +FUNC(entry_UD) ENDBR64 pushq $0 movl $X86_EXC_UD, 4(%rsp) jmp handle_exception +END(entry_UD) -ENTRY(entry_TS) +FUNC(entry_TS) ENDBR64 movl $X86_EXC_TS, 4(%rsp) jmp handle_exception +END(entry_TS) -ENTRY(entry_NP) +FUNC(entry_NP) ENDBR64 movl $X86_EXC_NP, 4(%rsp) jmp handle_exception +END(entry_NP) -ENTRY(entry_SS) +FUNC(entry_SS) ENDBR64 movl $X86_EXC_SS, 4(%rsp) jmp handle_exception +END(entry_SS) -ENTRY(entry_GP) +FUNC(entry_GP) ENDBR64 movl $X86_EXC_GP, 4(%rsp) jmp handle_exception +END(entry_GP) -ENTRY(entry_AC) +FUNC(entry_AC) ENDBR64 movl $X86_EXC_AC, 4(%rsp) jmp handle_exception +END(entry_AC) -ENTRY(entry_CP) +FUNC(entry_CP) ENDBR64 movl $X86_EXC_CP, 4(%rsp) jmp handle_exception +END(entry_CP) -ENTRY(entry_DF) +FUNC(entry_DF) ENDBR64 movl $X86_EXC_DF, 4(%rsp) /* Set AC to reduce chance of further SMAP faults */ @@ -988,8 +1011,9 @@ ENTRY(entry_DF) movq %rsp,%rdi tailcall do_double_fault +END(entry_DF) -ENTRY(entry_NMI) +FUNC(entry_NMI) ENDBR64 pushq $0 movl $X86_EXC_NMI, 4(%rsp) @@ -1116,21 +1140,24 @@ handle_ist_exception: ASSERT_CONTEXT_IS_XEN jmp restore_all_xen #endif +END(entry_NMI) -ENTRY(entry_MC) +FUNC(entry_MC) ENDBR64 pushq $0 movl $X86_EXC_MC, 4(%rsp) jmp handle_ist_exception +END(entry_MC) /* No op trap handler. Required for kexec crash path. */ -GLOBAL(trap_nop) +FUNC(trap_nop, 0) ENDBR64 iretq +END(trap_nop) /* Table of automatically generated entry points. One per vector. */ .pushsection .init.rodata, "a", @progbits -GLOBAL(autogen_entrypoints) +DATA(autogen_entrypoints, 8) /* pop into the .init.rodata section and record an entry point. */ .macro entrypoint ent .pushsection .init.rodata, "a", @progbits @@ -1139,7 +1166,7 @@ GLOBAL(autogen_entrypoints) .endm .popsection -autogen_stubs: /* Automatically generated stubs. */ +FUNC_LOCAL(autogen_stubs, 0) /* Automatically generated stubs. */ vec = 0 .rept X86_NR_VECTORS @@ -1183,6 +1210,7 @@ autogen_stubs: /* Automatically generate vec = vec + 1 .endr +END(autogen_stubs) .section .init.rodata, "a", @progbits - .size autogen_entrypoints, . - autogen_entrypoints +END(autogen_entrypoints) From patchwork Fri Aug 4 06:27:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13341315 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5331CC04A6A for ; Fri, 4 Aug 2023 06:28:13 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.576867.903498 (Exim 4.92) (envelope-from ) id 1qRoI8-0002Rk-E7; Fri, 04 Aug 2023 06:28:04 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 576867.903498; Fri, 04 Aug 2023 06:28:04 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoI8-0002Rb-BV; Fri, 04 Aug 2023 06:28:04 +0000 Received: by outflank-mailman (input) for mailman id 576867; Fri, 04 Aug 2023 06:28:03 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoI7-0002N8-3y for xen-devel@lists.xenproject.org; Fri, 04 Aug 2023 06:28:03 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on0626.outbound.protection.outlook.com [2a01:111:f400:fe0e::626]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 0f856222-3290-11ee-8613-37d641c3527e; Fri, 04 Aug 2023 08:28:01 +0200 (CEST) Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by PA4PR04MB7549.eurprd04.prod.outlook.com (2603:10a6:102:e0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.20; Fri, 4 Aug 2023 06:27:59 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e%5]) with mapi id 15.20.6631.046; Fri, 4 Aug 2023 06:27:59 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 0f856222-3290-11ee-8613-37d641c3527e ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OmXQcmb5VAeeXY7500tmOnrHEZ7BMb0QH1HdJ1bZJBb7B6L1uarMCpYCjdVO1nk7m4qm9B1OH+ySoFy2mQ3Ca+oGaI+/6hIijYtbE/hLMUZNjhyVUYJePIAlLk1uo+OFIZoaBfLf5FEVnESmoYHHkJFWQILM6fMIqqD9aHbKjEdqtVqn7JmOkZEv3EO7vZyNoeQoHY7jZRqZml9XIOjVNVwvB2dEglHWpO30TxmKpRMfbgd5Kol0yh01DlrWM4j8fXHjCj4tH0gGMne4dvgWcw9w9CO6vaxG0Xe+5cvUDo2thZqHuyCzkrSApHfucJBLs3WGzfthwndPm7/KXYHsNw== 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=bxqTYAMqHDtwTsaXt5W2izXbr1PoTAZ70AuZ6hPpGqA=; b=Hzeq8KGKWMKgaTZq4tO5BLrEPSwV0dIW3/04kJUAfiVN0ClNJz67iP4Asv4UfjBaRUpuC7NpIKZ7C+bTmcAuKFv5zCUa858worpdhMN+g36GPba88ul/aTDp+/wGcNdXutNFpdcPJHNu0tbLIbD1/r4/wc4HeNjJrQSEoO7lZThbKRFMI+O+u8BHGuEdfV9h6/DCLbScONIcUEKOGIGB9iL7DWDOmw5pI3scE5lAi6c6uA8dgrvF5wIyv7EjyYovPptO0M86a/w+8N0miH2wk/d2FRTC+xG4zKB2paBLwEMjsJdzrhf7IZOjqqgWc9MrJ11jATOQ3b32gfr/HSfAzQ== 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=bxqTYAMqHDtwTsaXt5W2izXbr1PoTAZ70AuZ6hPpGqA=; b=IdUvyZWUWUnfYBIqNaqq1O8tiAOM5N90Gg0IUpzsuu8NmnD2KNqr79fNMMlGnvaZUCkCci5eIgsjT4yD7DDWUAS0cb+ACjS7j4l92+q2MOBl+1SthyWay32gKkquvsMbDGR6eCNUMCA1KdH84Rsmov/2q+E++4VdTblu1AaMmOaLsZiT4G3gu/nuk//qanBeoccA5ZDCiATEewKyuN3XCPcWwjzJYGcZYItu3dgOekpBS64aJXphwH+ru0IMP5d7pqN8+VF/gUkgnGS95hisFL/8SJ2UoMTbYGpMfhhV/AEr8XzAN2XUYq2h2ybEsy+fepaARJCLDRrdxdFMaKuf5Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <29f404eb-e5c9-fb1a-e60a-47d4dc77578e@suse.com> Date: Fri, 4 Aug 2023 08:27:57 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.1 Subject: [PATCH v4 3/8] x86: also mark assembler globals hidden Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Julien Grall , Stefano Stabellini , George Dunlap References: In-Reply-To: X-ClientProxiedBy: FR0P281CA0018.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:15::23) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PA4PR04MB7549:EE_ X-MS-Office365-Filtering-Correlation-Id: 0ced7ace-56d8-41c9-db83-08db94b3f2bf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Rl4RFUex+Nm08t8dyQ0ELwJIMCxxc4nDVySDnhLQklu2sUUrK3STQYg0wchr7WHWjAR477MYagGiH0Lv04++W50IZJ/GF5sn14sDeqpHel6vrzOwo4FRd/AomnvHvSLMHTYM48WWlxJnh/iiTKzd4rK/D7eI1BYzrLZCYWQlJXmA5XVvGdUGdr8aX2QOeRjZ1jxBJcW1giGLTw4rNWPzdvV8pPbcoFm2tij3mY3rwuOTl8vZ7wUwESp4ke1ZAV24TB756NMCoQDFBgZOF0sq1NHybLFs35nDAIb2vFZ5SPr7Vj6CDg6VcJhzBgqEb5pLRBkYuCQ8CFdz1krtl15Qz9aZv8UPE1Eyb5ih92/o/lfphxpW40sY2JrUnpVSlwNudHRZCvkui5cO7ZzNI6Z4QYxjH7MHcSkawq3fVx7uiqEmXrnTdHLPrYX4BF2Ny8kTCQ0eNpQHBcT9je1PoT3R4HBsX/EGNw5wLa614vWpJgXvj/AxNMhmdpq0hvvtZfHUb/j2awAH/MCy0zqNhmR14HkfULIgByjXOYvWdBQc55RIfwU+zjJSN1pAdGEqZ+pAPEXckQHvYqjqzVxscEzSDJTJfWPN7Fgfo+tD62vXd+dhmHrJ3tJvjLk49Gta1hNScjV3CwPWQd1gRxpBqTmlqA== 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:(13230028)(136003)(396003)(366004)(39860400002)(376002)(346002)(451199021)(1800799003)(186006)(4326008)(6916009)(316002)(2616005)(66946007)(66476007)(66556008)(5660300002)(26005)(41300700001)(6506007)(8676002)(8936002)(31696002)(54906003)(6512007)(6486002)(478600001)(31686004)(38100700002)(2906002)(86362001)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?Kh5lq+pu2DiNkzd1Ufm31JGjf/BW?= =?utf-8?q?hChBah8oYsQxhdl17b0BnPAw+ohfk7yAfX+HM4oThd0VJApMC+nKrkpM1XhhG1C1X?= =?utf-8?q?xWu6Q6z2FOwh3/aEPWX6/8pfgh8iPMvY6R3A1XorKfRZ0+Wd8As5kwJWVTceBroll?= =?utf-8?q?8yBKFjO4lZ4U3tb1+OOKVER4L2e7UG1vYs5MfpM2vIyfDjgj7/0sZTNXGMFjUlNKa?= =?utf-8?q?8wzO9VHCB0LgtI2hJr9XikPUjalKlqLPe47d7r85M3jZ05Z28T1Ql05VhDWKXmZlU?= =?utf-8?q?S2hmjC9fhrJkjpLBUPoqUhJd4JClqJ3WvGIXP+lLRkAC602cTqCINjeunidWPqQmk?= =?utf-8?q?g5O/3KzUtSsEg7wCklBK3UEpG/KlAeu+i1AbmjOzV3SphYvBY80d5EvAtzepAlkj7?= =?utf-8?q?TluUY/m8QYQEYBYmd8EtVpDv4uXswLj/SUGa8bkJPfIi8jZLiWDcj9seKfYmDF7rV?= =?utf-8?q?qyn35ooovqwQA2e2tow/t+/XGIiFdwXmTVbp39TYTw/mWl121w9hp0Jw+RFsfh7f2?= =?utf-8?q?MJFvFkyImtSOxns4Ju92DPLeV+Qca5N/MP65ILqlabP8FxzbAHMWbYr9XCmFH7WlI?= =?utf-8?q?6nirtjwvGhLsuNLNOhfaaIkinWZsYcmrObyWgbupxVoCMD1URs1EDvt1ykgxzXLZu?= =?utf-8?q?25HM3P2yFcVYQR7h0udex0fZYoQZ3qn4mWE3Hhnt+CNYkStYLrdSKuf+zE/sPMAvI?= =?utf-8?q?F69oaooriwLgKN3hm0iHrIn6xsUnuISvnmoI5WfbcWBByBLrWOva1+3IfZVDMsUl/?= =?utf-8?q?Sgi+rP7jNcdFohco2+Y60m6RsimpZPuPhgahZyFUVzy1XQicTn0pfrZNQyxpEP36k?= =?utf-8?q?K4ZV2gFJLiNzvdC1dy4JVQlxUpUAvvdmZ9XQZ9EdaiAcn7FUXwVRifC0NN0+Ku0HY?= =?utf-8?q?CnPTvkBN16unL145vOIlf7u2mn7wE2uUwcYupCxJNB1AHzGzzeiZ8WlsctM72NcgY?= =?utf-8?q?W0Krv5xNckAzCwTXWqgUJzoO/MRKbVsEn5j03FcOxQuHphZzh3EgwuNQNUF3TjjwV?= =?utf-8?q?s7lHFCf7fhVa4azCrATPkRTd6IjCN78mukqGbAXgDwnyVbpIjUnIxa/g/7MrU2FAR?= =?utf-8?q?H1KWIpmfhJ1TmMC2HShpz9l+pHcPVXD3XGbYqJ1AAJh7NEcCE0fIABESnITRisSZy?= =?utf-8?q?4X3Hhz1z1gPmZPCsQCLxcr4Abl8Ja7bbXpDpHSAtqadvR3x3529cb2TUp8xBZbVhZ?= =?utf-8?q?/UvoTr9kraMO60rxy4SQntVDyDcKruimlhJrN0czi6VDM47TQwj5ZuXnGEtsF5UfK?= =?utf-8?q?mvpgMqLobR0y7ozYrUJOvT54TbdioukJKCy5ao3duh2ah2Zmf7nGVWn4iE+/uhSRZ?= =?utf-8?q?/awc3WtzpFxome87/KAZZq3VzApPUVqvH0o2uatMTI3kgLRN+1/dakT/LiLPgKsTH?= =?utf-8?q?OobKnZyEYoNkv+7+nL3vffgOGakYAOTv9V8BbnLwmnsUKgk11cWhlRwaxlJ2Iozo7?= =?utf-8?q?X7S03BkEtYPyhwYqfWsoBvyGMlN3J85yiKoNTIJFiq70oQLV348wOVpcZKyLRx+HC?= =?utf-8?q?4dpf8jxlI+Ro?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ced7ace-56d8-41c9-db83-08db94b3f2bf X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2023 06:27:59.7027 (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: 3D4AWl7BLojvCUKyhf9Z5B67qSTKpxebycLVSTdXNGhweR111Ope2gEOAzgh5GTKyZkisWs3kMeX3wVy3HFewQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7549 Let's have assembler symbols be consistent with C ones. In principle there are (a few) cases where gas can produce smaller code this way, just that for now there's a gas bug causing smaller code to be emitted even when that shouldn't be the case. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monné --- v3: Re-base over generalization of the annotations. v2: New. --- a/xen/arch/x86/include/asm/config.h +++ b/xen/arch/x86/include/asm/config.h @@ -47,11 +47,11 @@ #define CODE_FILL 0x90 #define ALIGN .align CODE_ALIGN, CODE_FILL #define ENTRY(name) \ - .globl name; \ ALIGN; \ - name: + GLOBAL(name) #define GLOBAL(name) \ .globl name; \ + .hidden name; \ name: #endif --- a/xen/include/xen/linkage.h +++ b/xen/include/xen/linkage.h @@ -21,7 +21,7 @@ #define SYM_ALIGN(algn...) .balign algn -#define SYM_L_GLOBAL(name) .globl name +#define SYM_L_GLOBAL(name) .globl name; .hidden name #define SYM_L_WEAK(name) .weak name #define SYM_L_LOCAL(name) /* nothing */ From patchwork Fri Aug 4 06:28:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13341316 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1ACCAC001DB for ; Fri, 4 Aug 2023 06:29:01 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.576872.903509 (Exim 4.92) (envelope-from ) id 1qRoIu-000333-RZ; Fri, 04 Aug 2023 06:28:52 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 576872.903509; Fri, 04 Aug 2023 06:28:52 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoIu-00032w-Oq; Fri, 04 Aug 2023 06:28:52 +0000 Received: by outflank-mailman (input) for mailman id 576872; Fri, 04 Aug 2023 06:28:52 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoIt-0002sK-Uk for xen-devel@lists.xenproject.org; Fri, 04 Aug 2023 06:28:51 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20629.outbound.protection.outlook.com [2a01:111:f400:7e1b::629]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 2d461186-3290-11ee-b26a-6b7b168915f2; Fri, 04 Aug 2023 08:28:51 +0200 (CEST) Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by PA4PR04MB7549.eurprd04.prod.outlook.com (2603:10a6:102:e0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.20; Fri, 4 Aug 2023 06:28:49 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e%5]) with mapi id 15.20.6631.046; Fri, 4 Aug 2023 06:28:49 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 2d461186-3290-11ee-b26a-6b7b168915f2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DAwIm7t/p59NATT5GUxBa9UY5w0LT4rTpdYOEa53UMmsA2s8IKTmjW0xuwCL3ItYin2skl8nymY+IXDC/ce4h5SdzAuf9n6xWb7nI8JoqlpBEV8k/Sl1Dqj6l6Qv2rowMIhR/b0skKmRnJOw1IP7tdQRE8c3i5cMwiVdN+qwkEpvDToCzmzgOgu9qHGkwOojjJem6tbzTiC/xHRy7jDLNkwTpgi1jgt5xEHSbvlJdC+Cu6cgIxcqftgCIXNf9E+ogGlsxbyqLnx2mMa+6giErBTYFKTAITnVY+HoFjcXCrzdX8gOjtqNydxxcZrkMZ9Gnn3HuoqHRv/HBL+A6L9obg== 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=bblEvpBVoD14a8jtWBS2FnTxPcXC/Rz9Fz+d/NPUWJs=; b=HBQirrIYTFNN5bX/rVpT/Aq/D/U3MkowqWXWtTHJSwgRtz/wa6bYNOtlHVWr7KcoeW1fTHL+Qa3VAxgWbgXLq4xS1OKiKOxwVMKCbudVA4RdzxJ4SsIq4S7+q5O/sRvxj6pdcR2I/arho/tJ4EvO6wizdhnHu/sNUpd3yAB05MdRqOKp5/zkOCcEa4haoAVnud+D8Mo2+9fTOh2soZ4nPzeWiSpHVq/Ea2tOD5xSJgy8P341hLsBjj81RKdPNgf9NPSarCA4ZBY6zKHaeyl3lLquYjVAeH3zqxXu4cj9R7/2f554XeqTr931yU36kZQmDMglfRWYkfaETf4RkgGQNw== 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=bblEvpBVoD14a8jtWBS2FnTxPcXC/Rz9Fz+d/NPUWJs=; b=va1cqj3Wc5A9jHdzwb1Ew58MsL/7SPWWxkIgtdU6eAQNnu4yzid0VeU0DKZ892QAlPI21UcAd+kn/E9CI9UzcCkmSU0EvmqA2x0EHGS+OgQjhdXZVIxk+HHTH0z5aCtUwbj298Pv8OV6eAj9tnWN9eit4jcte69bGtyr99dfbVglI8KAeuX7H9+gaziyxb/7YoJnrMaKJEKjyJuCP3b8o8gI9IGt34SWMs/J2dV92NkgYgPqpFENWmpFtEhkMdhgQSkKwiajxNWgYd5yIKk3Yr/BAd1NdZEbdzHcG2BfqHlDTgTb7WYMYW9RIzPoBS7WlN4pWZ6zCH63NzbrwpTbjA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Fri, 4 Aug 2023 08:28:47 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.1 Subject: [PATCH v4 4/8] Arm: annotate entry points with type and size Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Julien Grall , Stefano Stabellini , Volodymyr Babchuk , Bertrand Marquis , George Dunlap References: In-Reply-To: X-ClientProxiedBy: FR0P281CA0006.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:15::11) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PA4PR04MB7549:EE_ X-MS-Office365-Filtering-Correlation-Id: b92fb431-0328-4079-04d1-08db94b41093 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: C9KNJo03jiSHm2NtZc41XT+yy7OFz+SSzThnYQYrw3S294auz+cVPllf9k14OQ/O110gNK0JzkVHxEumE0YkEyGW80lJVctPsFoCPidlJ31PvuKGcmtVjXypbvxHMaBx1p8evJy4mIiWKxfc5uT9awUYe9XBXUFZhKY86v3BC/9Ba8dvhucp3hUOC036rJd4Fj+LDuJzacEm3Bafod20SBUyTHYxdTnAshtZVk9Pk97NlL19kA9BMaanBvUocCZWuKKJv4xeVSiuMaTWcNIv03kv9ny6p7embBCTlFFKMMwdjhxlunWB9bd4wldhZ/7frOwZvoadJMWCPg5zW1RGoCb8v41y0bZRsKAWwrW12MH1GE2hmxqKntL0br15nt4AvKOL7xMyMPK5UZ2mzZ9gJHoUSyzkKMignxfBSF1FTdmto4KRYXKpJBAg6s33fVA9OSs4v6xgc8rHHQLGdnO9GT2SiES3t2LW6KTt0YCxv1BbdmEEOWaaC2bu90bv9hRmtvSdmDJ8F8eNkAziVEpwNIHOWSUP1Tv17nyQj1pawL+2BguwDF4oOTqtD9jHamO9MJyLJExx4AiZ7zk/LoKKIH9PpGxFUNM8EL5WaEvZ6L4W4YswCsImD+UYzTwNc0nSGYg2YYp7XXf2t8kDOd9gHg== 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:(13230028)(136003)(396003)(366004)(39860400002)(376002)(346002)(451199021)(1800799003)(186006)(4326008)(6916009)(316002)(2616005)(66946007)(66476007)(66556008)(5660300002)(26005)(41300700001)(6506007)(8676002)(8936002)(31696002)(54906003)(6512007)(6486002)(478600001)(31686004)(38100700002)(2906002)(86362001)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?wOQ3nTfTXI3Rd00pEjDyDvU4AO0h?= =?utf-8?q?kyBrOv/ilcu7PtYH8lw6gD6HV7aPfq6FQVv55knS9l3ps0frqyJFbVcY79ZfysAEf?= =?utf-8?q?PH4dr2Ps2N7gdlhh9Fv0fUUzW/bH1rJXbYyrEjPNndYeH3jIaxV5DaZ3PbuIN4EVM?= =?utf-8?q?vzGE7wbg7g+i6hRe1jxKz6Lu0FO9F3CH+Jgd2Io86017Am9hn96L5cq/DntPQpzww?= =?utf-8?q?YKhjn6d9jAu1Zm3C5RTQNXTT0q/+vO5jkx+iXnvihlmZZJu7N9C2P5430Hx10kpRo?= =?utf-8?q?RyBiqaprAmQsQVDiAVL6XAcv8gCLQl9IHemsZhPZdZIW3K5+NA6ETOR3XmL2rdoAM?= =?utf-8?q?CBkU2JJnkS7VmnD9hl5E1717PdzgMLdjEj9v5jLHQCOoVOOK3MVXQHn2i9XxswWIt?= =?utf-8?q?8fH8lKsnVj2T1+pKQo7CBIcORfg/G8VxQuls2tnhx5JzbGaE3WDwG/06RYs1a9PAl?= =?utf-8?q?953Cf9nIVRxiDICY7FFuUS9yMW9N0NHOz83RxJuWt1aRIOIdUJlTBY0hNROYNMeew?= =?utf-8?q?aRzkn/6lyF+9yGgHxAibgGKq0us3J6BrruyEoD4BGlJWnfU9q6az4RwHgwtk893vF?= =?utf-8?q?f7oXMu/uqc9kqoh/6FjsLNx+gb4DDPnV908DqXtp4+9vK3/9b9J8ngvXR0H7JJMKs?= =?utf-8?q?8hRU6VpqcDXkIZ6EUYYREzojyb/sztBb21kZ3njg/EpvVzOXEMDlAvS7G7nrSVeHp?= =?utf-8?q?R6UYE63UP/szeTTH7DRVlMxdVm43InOd7PeveBqt/5ovCTIbGQGDlzEutB9JdhPl4?= =?utf-8?q?kbOShu6UUMFw4kxVD4PjyZOkLEpdV+/Wti+zx6o8u1DkGukPLuvmqu/MajKuN0xyM?= =?utf-8?q?fIcPdpTrX+veJMJ2e2bMVHQMumY7eBfUREdIwce13xjJ+bj5C2tS50xpdHXokDHtG?= =?utf-8?q?QjYz7N8hOPsAZy8jI9CIwJbuycSAURp3kgtnlXRwONPMI2GtPSF+xMITUERi4HDj0?= =?utf-8?q?W8Um4/AuhCI86/dnzo9K7TwsKMZTK4rJOBlaLAcjpoY7ovKw0nMXOD6l9pQU1kF4T?= =?utf-8?q?XrzdHB7zxwxEmIwURVA3Ib4JXH3alNq5i8oURPtMzFbd2wdk5/dN1RRZFfXy4e21q?= =?utf-8?q?TBQrYgLis3ojBdDpgTvFUD/5qqOFL2igEnFT9u77t2yxQp6g+TlXcEPKzb0yyfBNC?= =?utf-8?q?yDo9RnK9DzZajCWFY9F8iE7huL51xi7+C5ddFiLbTxmx1p08CrrZOjIkjvPYDX9Fk?= =?utf-8?q?D/3jiBzzp0ILeHdJ85FqFm15Ov80OETs7xgxczmvBRQDy8UxI0j8AB8LsWlN3QcJW?= =?utf-8?q?AkQFrDzoSgceNixpfvd9gOeGH6kECjTbtNNRpdsKFixFp2M9iPRLgiy1X/atYEzh3?= =?utf-8?q?9gFZDsN24jEo1A9CtUdlXZNUFCYBKWbwn+LAZzH8/tMlsKh/IH2xhYZSUNkkdSW40?= =?utf-8?q?92Aug/OQqgsNxCrMAUXsCE+27P6OuhwOq6jOzEfOSXMIjHe4PIooIxZMQDgzQ/TLt?= =?utf-8?q?zlV9cupWnlRvUq9A7L5q8nVrXc/8U2/KyBvQNo038xzuY4UwfAdzuhpC8/RkJYPFm?= =?utf-8?q?wCTMiCnNNtze?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b92fb431-0328-4079-04d1-08db94b41093 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2023 06:28:49.7623 (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: 7ODH2L1NH/UcFL5Q8/2ygdm4sej1aI6yGeWojn4fVcYJyr8TpZJSqmEkNlRY8Jon7/uEUS+LMjxzM7RzOUJTpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7549 Use the generic framework in xen/linkage.h. No change in generated code except for the changed padding value (noticable when config.gz isn't a multiple of 4 in size). Plus of course the converted symbols change to be hidden ones. Note that ASM_INT() is switched to DATA(), not DATA_LOCAL(), as the only use site wants the symbol global anyway. Signed-off-by: Jan Beulich Reviewed-by: Julien Grall --- Only one each of the assembly files is being converted for now. More could be done right here or as follow-on in separate patches. The ASM_INT() redundancy of .global will be eliminated by a subsequent patch. --- v3: New. --- a/xen/arch/arm/arm32/lib/div64.S +++ b/xen/arch/arm/arm32/lib/div64.S @@ -42,7 +42,7 @@ * Clobbered regs: xl, ip */ -ENTRY(__do_div64) +FUNC(__do_div64) UNWIND(.fnstart) @ Test for easy paths first. @@ -206,4 +206,4 @@ Ldiv0_64: ldr pc, [sp], #8 UNWIND(.fnend) -ENDPROC(__do_div64) +END(__do_div64) --- a/xen/arch/arm/arm64/lib/clear_page.S +++ b/xen/arch/arm/arm64/lib/clear_page.S @@ -22,7 +22,7 @@ * Parameters: * x0 - dest */ -ENTRY(clear_page) +FUNC(clear_page) mrs x1, dczid_el0 and w1, w1, #0xf mov x2, #4 @@ -33,4 +33,4 @@ ENTRY(clear_page) tst x0, #(PAGE_SIZE - 1) b.ne 1b ret -ENDPROC(clear_page) +END(clear_page) --- a/xen/arch/arm/include/asm/asm_defns.h +++ b/xen/arch/arm/include/asm/asm_defns.h @@ -5,6 +5,7 @@ /* NB. Auto-generated from arch/.../asm-offsets.c */ #include #endif +#include #include /* Macros for generic assembly code */ @@ -28,10 +29,7 @@ label: .asciz msg; .popsection #define ASM_INT(label, val) \ - .p2align 2; \ -label: .long (val); \ - .size label, . - label; \ - .type label, %object + DATA(label, 4) .long (val); END(label) #endif /* __ARM_ASM_DEFNS_H__ */ /* --- a/xen/arch/arm/include/asm/config.h +++ b/xen/arch/arm/include/asm/config.h @@ -53,7 +53,8 @@ /* Linkage for ARM */ #ifdef __ASSEMBLY__ -#define ALIGN .align 2 +#define CODE_ALIGN 4 +#define ALIGN .balign CODE_ALIGN #define ENTRY(name) \ .globl name; \ ALIGN; \ @@ -61,8 +62,6 @@ #define GLOBAL(name) \ .globl name; \ name: -#define END(name) \ - .size name, .-name #define ENDPROC(name) \ .type name, %function; \ END(name) From patchwork Fri Aug 4 06:29:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13341317 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6A321C001DB for ; Fri, 4 Aug 2023 06:30:26 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.576878.903519 (Exim 4.92) (envelope-from ) id 1qRoKC-0004W4-4e; Fri, 04 Aug 2023 06:30:12 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 576878.903519; Fri, 04 Aug 2023 06:30:12 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoKC-0004Vx-1e; Fri, 04 Aug 2023 06:30:12 +0000 Received: by outflank-mailman (input) for mailman id 576878; Fri, 04 Aug 2023 06:30:11 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoKB-0004V1-An for xen-devel@lists.xenproject.org; Fri, 04 Aug 2023 06:30:11 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2075.outbound.protection.outlook.com [40.107.7.75]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 5beb0a1e-3290-11ee-b26a-6b7b168915f2; Fri, 04 Aug 2023 08:30:09 +0200 (CEST) Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by PA4PR04MB7549.eurprd04.prod.outlook.com (2603:10a6:102:e0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.20; Fri, 4 Aug 2023 06:29:40 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e%5]) with mapi id 15.20.6631.046; Fri, 4 Aug 2023 06:29:40 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 5beb0a1e-3290-11ee-b26a-6b7b168915f2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hzcTy7tsLGD4M3lihdyD+9F1mHuoPohJar9VPN5V/2LM8NbbJpyEcu/uCegT3N5fLhs86jh32V0AmT7haB4QzjlQRGAH/FGGdVqs3pajuPHC28/4uW7nOKsP19TyPy8Noh2gY/qvzowL/uSDyzGEOpJx9ZdWUpKodfBmZV5SZKMY0PUqPBO6qec8OGcMRBHZ7rMipYNnuDWAvqlwLU4bnkYeObPkPIcayOGivbbDJmKnMnkZw2mkta4O8VB9qJkspnGJkoXtCk8VV7VYu1hFK6E+XKq9l86VLfLpumYcjse4L4Rq4A10ufaZev5sq0h9zGE3ZiZmOIkCInrtWOoBtQ== 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=qika2Hq3tzyX7MA+htBUWEOe4yA4IGhKPbZp6tX/5Qo=; b=oL5ZjMAkjJouQSAwpTKfuoSgf8uU7/JVTVqRBYs2eZJy0kv8cP4vFJOXubXbPARGScxL8KnJCBvVNt46gfeh77tYXqA2eORZU4eLwi16jhVa72GG+nl6Avrqx70WOoS0Er48jd18F1MxXRTwzelT9JgkshhcSXfeeom4/4sALZhKlaFyqRcFqmVEWKkpqTBcQdVn5Wcb+2gGluo1/RDShphVHRSMypymGakWz9NqlJChqq5qpR9MBQVg9Ychik3VE1gMG39bAnFX5f4u/nAGgy3l+2QjiuICqcRaP85n25OI3Wll+55g5U+2yTnRP0/4QhLPUrG/0LdmxZBY+d6sPQ== 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=qika2Hq3tzyX7MA+htBUWEOe4yA4IGhKPbZp6tX/5Qo=; b=nh/OP7khS+yhDOGdULDaL7vlZ3PmoKCMyOyipKF6UC6Z2/ox8Zsfyit9gLnOiVU016yDSvJ3gcr5JWTj4Rt7uxhoztnhIxoQRTHdj3ozhBmVEd/Ff0hP/mR2Kg5n4UMRTjShUBo51vISPh8aYrMxbG97KYYyW276Oi39qyeK1+WHsZZ+sUj4EA+I3qGD6zOT1w4xhIx+jyP3wh7zu0z/HPsL2oISTsiKp95e69/SQcdOQwErNxAqRjUjEjutU5dzN3gepCW6IKS8nkr2OVeAyPVW7CFBbToeDhiydGAaCeIweR8sRrGJSoiaZoDNM2hfwOv60mj6eK8PXmfUTp9tMA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <5caf1f7c-c4ba-9913-dd77-21562af18efe@suse.com> Date: Fri, 4 Aug 2023 08:29:38 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.1 Subject: [PATCH v4 5/8] RISC-V: annotate entry points with type and size Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Bobby Eshleman , Alistair Francis , Connor Davis , Andrew Cooper , George Dunlap , Julien Grall , Stefano Stabellini , Wei Liu References: In-Reply-To: X-ClientProxiedBy: FR3P281CA0089.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1f::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_|PA4PR04MB7549:EE_ X-MS-Office365-Filtering-Correlation-Id: 560464bb-e74c-449d-22a9-08db94b42ee2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BlSoTblrw6r7jiz/lHqs5X9CN5YvIDUiMHaka4C4sN1UxsDU2rl+TEeG8tArxA+HDzvFALcx2GrbbdcUKE42phlu2RScVOYlWdDX44tjU21xPOF4P5DL+lh02zKb1bgif8oWAMnxaSik5iWb+mytfrS9ts/Iiz4CGr9i9h8q1m3VIVtDQxTVxLx9UeVGEUP4Hz1ND6rkdICFpieWxqPMc6R8kJE2VnJXFYDILJyRiIjKRZ3sdMktJffmiB9aDUm07EuQ3TO2I5wlilIw+AMhRYFPxn+01+TmAwmo3NDbI3buABP0MHo3Q91rsOewB8dtU2wdm1GcDpqTewtAnB1t12eLiNFNHGRiXJJnLR5MXWQnwzFebt7p6VsCvgmN9PZH3sXRkjHqirvE2q449nO+KQQhLstjNSlQzR2EQMpguBD1kXcSMMnI0OOcs5at+2ZsF7bkWqBKG1yj9BrMcQu1DWD4V75gLOQLmiTMWewxKKTyfaWhHwpqSPP4RxjJyTQoOg5LRkatAcXMa8qdvwT6sHsZJ9sBwYY2MYXLtwBIwW27pCfvUne1+r7fcXmFtJm3gLCOqzqIOLjFU3pvNSicZu301MjDurK6zCQougGBY8Tq28L/yE05WvBndwDJck3p8R2cM/zNta5h23GMyB95lg== 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:(13230028)(136003)(396003)(366004)(39860400002)(376002)(346002)(451199021)(1800799003)(186006)(4326008)(6916009)(316002)(2616005)(66946007)(66476007)(66556008)(5660300002)(26005)(41300700001)(6506007)(8676002)(8936002)(31696002)(54906003)(6512007)(6486002)(478600001)(31686004)(38100700002)(2906002)(86362001)(36756003)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?Bm0k/9McA7rwa9T7v86DaYUL7y9o?= =?utf-8?q?0o4edQKWjIHYGeZ67QWP6kdQj5kNVzl7+uGyUs/O1Ay+VUKiBUlGYLKIYXBHGttb8?= =?utf-8?q?yfCJnmN0EpjXCVT57GDn+ahxEjh/d6D1IEyBsQjLvXmB4V6oUi2Y6PW0n+Ln/crYN?= =?utf-8?q?MU5WdxaEZOvYTg/ojHcga4d7i+Dc9SMrkQCFCb/f6ywxn4dhzYnoNt/eRUglPGrRs?= =?utf-8?q?PLuiIMJOfbS6Xo023s86aBBJWJM5zW6k0SsiuJOjOYFhQlcyOAb6K4sJO1JdH6Ckc?= =?utf-8?q?+VomasFlrXvdHrsW8/3FeHV7hCTaHYWVpivFQf2LMiHN20zicr9YHgsW1VNbHFIzY?= =?utf-8?q?Y8C5dDJf9pUXGj4B27rmansvPAaADEDowo/ZeoeIwX6qPhMFPN3dRrO4LmVdzgrCT?= =?utf-8?q?chLlTWxjOO5fkTIisYJ+WwJTyNbra7JECc+fcriIeaGIxtoTLnbrNFFwMdmtaiMs8?= =?utf-8?q?9wzUoLlbChEECpNwzQg/MlmIT97aXs0rOPsPdTALTJqasEO+zHrO5FFgaDLhqPRNV?= =?utf-8?q?iS4E3EMk1WbUXQz/NW3DibzZd8gsF9X4gAKpFS9vEFLpbQRv3EQZOyleybfod44c1?= =?utf-8?q?gYf9idVEZ8t4CgZocjrZJTKY3+oy6VuNRFTbsZ1dzjgJCHLlBrbI7w77RGHyp/FJx?= =?utf-8?q?H5trh96LcmPaSbPVDvXi+J1gibGCqADt4qh8vuE1J1CkjKNP9Al1zyNqFMxvl9T+C?= =?utf-8?q?UccYuAwDAkp3Jwl/lzyjCK9Fam4psPRBSaQTCDIcG7ep1m2AsIHniMnwfr+EL3Sxz?= =?utf-8?q?37G6cn3jjdfzk0S0+96N6HM4ixNOeTSaFohIWhxBTy+E3wBQDKxLX2YPOZrAPG1E7?= =?utf-8?q?vrlZR9z8u4T+XcPquS5X0K5iratudjbqEwnKKU+ARa7lwBmyeiYv4FghrqFm/YZm4?= =?utf-8?q?BgD+lno1wEe11yEsYLFrC0rSjGP98RuGMRsPbdkPABrMFshZwamZl3WklCChxZLk4?= =?utf-8?q?lfNAmzL7duQyBMuVC5FSHdh+6qxO788q7mpUjrcXgyu30OMza/nzzlp5OhsOn+nns?= =?utf-8?q?9ip384eaRFx/BSc/WmNY72EYUIYzcbRIsP7Rp0hoWt1hB6b9iwBSTfY8DdCJGYF2J?= =?utf-8?q?k2BHwVOHyxeLVGediRDV6nF3ozt23H4wyWkpjfbqSanrI2MaxgGHhHT2DlECtTe/l?= =?utf-8?q?DiDXUuhQzrd9dlHKc6shkpu3416HFKbaZsVO8OfD8iTL6YqrP0ba+sDd5hsCDuThx?= =?utf-8?q?cuLVo0d/KPVqCgKmzQ4s/DXyNACxJs7MJv3O3QDWfLAwy4BNIT8V8p0I2tvWAk51n?= =?utf-8?q?LvNoVEClSaeVoLM6jec1BBvc41F/WBWuh07SbVhnDzJhTAtuKNK4cO9ZjQnkhLjB+?= =?utf-8?q?2pOXdi+I05MBItfbAaGWGRstVS2+tImXtVGIiklwUI1brxWMcbiwGTp5cdpbsVuJa?= =?utf-8?q?jB0aSYhFftQIAlYBrcoSaD2R35GMMg2Nc+cuclYcoEHGVH21OD3ipFANvQjv8jM7W?= =?utf-8?q?4/tfDl62yb6x66MUzHj2Ut8Ypxos40+zvfYCQp4AVeGACr9udHgVDNjAFxFdFJWnp?= =?utf-8?q?pqFnaE4yFC2P?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 560464bb-e74c-449d-22a9-08db94b42ee2 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2023 06:29:40.5791 (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: 4Uczd0JvQQxsZLgVGAJ7veb/9LjLBAtiAqHYaKhecsMGQo0X7lPlnW0r250y4GKDNaDT48svG6bjSrvC1/8p8Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7549 Use the generic framework in xen/linkage.h. No change in generated code except of course the converted symbols change to be hidden ones and gain a valid size. Signed-off-by: Jan Beulich --- Probably count_args_exp() should move to macros.h, but I first wanted to see whether anyone can suggest any better approach for checking whether a defined macro expands to nothing. --- v4: Also drop #undef-s from linker script. v3: New. --- a/xen/arch/riscv/entry.S +++ b/xen/arch/riscv/entry.S @@ -5,7 +5,7 @@ #include /* WIP: only works while interrupting Xen context */ -ENTRY(handle_trap) +FUNC(handle_trap) /* Exceptions from xen */ save_to_stack: @@ -92,3 +92,4 @@ restore_registers: REG_L sp, CPU_USER_REGS_SP(sp) sret +END(handle_trap) --- a/xen/arch/riscv/include/asm/asm.h +++ b/xen/arch/riscv/include/asm/asm.h @@ -7,6 +7,7 @@ #define _ASM_RISCV_ASM_H #ifdef __ASSEMBLY__ +#include #define __ASM_STR(x) x #else #define __ASM_STR(x) #x --- a/xen/arch/riscv/include/asm/config.h +++ b/xen/arch/riscv/include/asm/config.h @@ -69,12 +69,8 @@ /* Linkage for RISCV */ #ifdef __ASSEMBLY__ -#define ALIGN .align 4 - -#define ENTRY(name) \ - .globl name; \ - ALIGN; \ - name: +#define CODE_ALIGN 16 +#define CODE_FILL /* empty */ #endif #ifdef CONFIG_RISCV_64 --- a/xen/arch/riscv/riscv64/head.S +++ b/xen/arch/riscv/riscv64/head.S @@ -8,7 +8,7 @@ * a0 -> hart_id ( bootcpu_id ) * a1 -> dtb_base */ -ENTRY(start) +FUNC(start) /* Mask all interrupts */ csrw CSR_SIE, zero @@ -30,13 +30,14 @@ ENTRY(start) jal reset_stack tail start_xen +END(start) .section .text, "ax", %progbits -ENTRY(reset_stack) +FUNC(reset_stack) la sp, cpu0_boot_stack li t0, STACK_SIZE add sp, sp, t0 ret - +END(reset_stack) --- a/xen/arch/riscv/xen.lds.S +++ b/xen/arch/riscv/xen.lds.S @@ -1,9 +1,6 @@ #include #include -#undef ENTRY -#undef ALIGN - OUTPUT_ARCH(riscv) ENTRY(start) --- a/xen/include/xen/linkage.h +++ b/xen/include/xen/linkage.h @@ -37,17 +37,28 @@ #define END(name) .size name, . - name +/* + * CODE_FILL in particular may need to expand to nothing (e.g. for RISC-V), in + * which case we also need to get rid of the comma in the .balign directive. + */ +#define count_args_exp(args...) count_args(args) +#if count_args_exp(CODE_FILL) +# define DO_CODE_ALIGN(algn...) LASTARG(CODE_ALIGN, ## algn), CODE_FILL +#else +# define DO_CODE_ALIGN(algn...) LASTARG(CODE_ALIGN, ## algn) +#endif + #define FUNC(name, algn...) \ - SYM(name, FUNC, GLOBAL, LASTARG(CODE_ALIGN, ## algn), CODE_FILL) + SYM(name, FUNC, GLOBAL, DO_CODE_ALIGN(algn)) #define LABEL(name, algn...) \ - SYM(name, NONE, GLOBAL, LASTARG(CODE_ALIGN, ## algn), CODE_FILL) + SYM(name, NONE, GLOBAL, DO_CODE_ALIGN(algn)) #define DATA(name, algn...) \ SYM(name, DATA, GLOBAL, LASTARG(DATA_ALIGN, ## algn), DATA_FILL) #define FUNC_LOCAL(name, algn...) \ - SYM(name, FUNC, LOCAL, LASTARG(CODE_ALIGN, ## algn), CODE_FILL) + SYM(name, FUNC, LOCAL, DO_CODE_ALIGN(algn)) #define LABEL_LOCAL(name, algn...) \ - SYM(name, NONE, LOCAL, LASTARG(CODE_ALIGN, ## algn), CODE_FILL) + SYM(name, NONE, LOCAL, DO_CODE_ALIGN(algn)) #define DATA_LOCAL(name, algn...) \ SYM(name, DATA, LOCAL, LASTARG(DATA_ALIGN, ## algn), DATA_FILL) From patchwork Fri Aug 4 06:30:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13341319 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 58A48C04A94 for ; Fri, 4 Aug 2023 06:31:08 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.576886.903539 (Exim 4.92) (envelope-from ) id 1qRoKx-0005ch-QO; Fri, 04 Aug 2023 06:30:59 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 576886.903539; Fri, 04 Aug 2023 06:30:59 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoKx-0005ca-N3; Fri, 04 Aug 2023 06:30:59 +0000 Received: by outflank-mailman (input) for mailman id 576886; Fri, 04 Aug 2023 06:30:58 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoKw-0005Xp-Hc for xen-devel@lists.xenproject.org; Fri, 04 Aug 2023 06:30:58 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20603.outbound.protection.outlook.com [2a01:111:f400:7e1b::603]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 77f071ab-3290-11ee-8613-37d641c3527e; Fri, 04 Aug 2023 08:30:56 +0200 (CEST) Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by PA4PR04MB7549.eurprd04.prod.outlook.com (2603:10a6:102:e0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.20; Fri, 4 Aug 2023 06:30:55 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e%5]) with mapi id 15.20.6631.046; Fri, 4 Aug 2023 06:30:55 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 77f071ab-3290-11ee-8613-37d641c3527e ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HHL+forgOo8Jz3YB43ApbkgYBg2Ym6HtSRpB1xb5theZTI7WcXi0EMdMgrJUx/dGE7+ur4P6GWsACnfNszNGZVPFoglqOde7OzTyV2ZRAjSswpOzzTFueaAND2UtSURr2MMf6bW6CKV5PTfEjSE8qBAXTX6OLUBu9DzKGspD34XVkeuVi7fcJqKM9VPkdW9Ruc0fYA9SHJwVyzER5LX01A0dpTnzsyfVhpvDMhAnEh4YYKAtAKWEdb/541T+aKyX0K50sl+nAYjV7bQTJNanazVqKg9cqvKbZ/cTLBUxAwydX5HY5+WW7D2CsfYD8u+Tsmm8uWLlPhXZ5T1KfsMBdQ== 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=NsniVDfE1jEbPDiRAa4YFhSNPmca1KwD931ycm8eIt0=; b=crTiQ8ONOTkc3IHEJZi28WmOQ3iy3mRe/vlktM8MaycHpqarVU5yN9XXjiSFJCgxrNKSQDuKFaj4KZ6wRBlKQ/qJ4pP36TIF7plZ2pbAulyhF84U9qi+IlaQzExuHq/NpdAbcyn67JmdTVY0RpzDVOLFasukq6MhTqh/1bYnes+1JXiwhr/t/tRQ6OGgG4F7bDxw7zMmX+Wa913bkjfvl8t5fRKoUa/4TK9IMOp+lrEGMq77JUVjAmC+YkKNjZWiYl9gYHgNjfiGOVf0pmnaGxT0ePjCU3g3B0yow6djbuPA5EUZOnjKqTFudLZaQ3BtQKXCWMs1wIvleWwIQBR67w== 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=NsniVDfE1jEbPDiRAa4YFhSNPmca1KwD931ycm8eIt0=; b=gnON6k4R+Bo1aizJX5RqPtvVurC6OWcYFHsKWzkseCB7pRXVqfCAUUH2jN0Ms72Aje3o1DStulE1HnYpbTmgHyeRRZqyBA8xLFoCpd3oE3CoAAtckM8Yq6yYChH+9ia66zyT3zEsAju+TuRzGg86QYaM0YFRurBFcnqK6uu0w3tn8oA5gWqBOeClD9n1FmNVjXufhFl6zcouAKBHm/+Lx+qB+TFywO6auHOmG3g3cYU6DO3NT4qUaJr2fhkfPArFDVwm1CZDmBLLkSZ+T+g3pDBNVxJDWe5Ame7V0+dDEBBDSG2JXaXVOZo1ryiBVRjRup35ZbdvR3dR2slFDA/c6g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <2315f865-cd41-b0e6-524c-cee57e748ba1@suse.com> Date: Fri, 4 Aug 2023 08:30:53 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.1 Subject: [PATCH v4 6/8] tools/binfile: switch to common annotations model Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Julien Grall , Stefano Stabellini , George Dunlap References: In-Reply-To: X-ClientProxiedBy: FR3P281CA0161.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a2::20) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PA4PR04MB7549:EE_ X-MS-Office365-Filtering-Correlation-Id: 59dd9fa7-a0de-4629-c9fe-08db94b45b53 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZBOa+k3szAVW0vsxBeYTgdpoulw0YQT3Wd9B4p3m9kXbf+S5duWzFR3z6uFx13WcBQMksVTJhj/TC9B+osz/biRN8Z6CAlMa50a8c8K3WIrpG6besplM/NECCPt9Le+smvoVcbMaM0Z4mwHMX3T2PGIEJD/RaIFZPp8IKsH7DtPuIW2TChrvbm1M4/x7xjxDRVgW4oi7KW59XGknmq7H7p+P8MXW0lhYuQ/c9mfQjN8JL5yrzVeUTGQIcDRbSmfFIq6n9jLE8ABv/7jltIThjblt+pYBX8zx3s2meU4hGLtX/s2JVKh742K29SLIlv6o8xEplCW+GYKO09ECRnW7ojE3ECr4+diUIA8mZ8SuiieEZscYdUnXf6Cat8zPL0Y5zQMJN7yIlA5oolGF0rQRYDfLomrQrkSBvxZ09NDTEnuCeUC/SZ+7b/5TFWYc8cJW/Br+0yef2p2tA80VI3JVzx7tw5m6RD659i7X2fjlGY9pe1rngjtMfTrUOYs+UAfCA7G5YqJd7X7513oGHA3tZIVLthKjTlhitI6lIM+BzPf4nqYxnJeUZ2iEvgQAtQQWoKgou9pnYu1o0ReKvvm3cpN9/g0ZAlc2MDcmHg4KT4zH+KX6ki1+c68ZfK4aqPSU5+ImLO3w2h2K6aee3+/2Pg== 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:(13230028)(136003)(396003)(366004)(39860400002)(376002)(346002)(451199021)(1800799003)(186006)(4326008)(6916009)(316002)(2616005)(66946007)(66476007)(66556008)(5660300002)(26005)(41300700001)(6506007)(8676002)(8936002)(31696002)(54906003)(6512007)(6486002)(478600001)(31686004)(38100700002)(2906002)(86362001)(4744005)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?PYBGMbdix15T4EZGhGsJUj/38NUH?= =?utf-8?q?H1pk6olBmZT9BBTd+DiIVP8thEve9up3aFyYqkBHixyqojW4klVuS/7GeDWeJc1L+?= =?utf-8?q?JxJbozr++holwtNREGXqNjG85MeFe4fcVjbAJi30u+KqDw93YrmUbReE0ciDX5o8W?= =?utf-8?q?8OjDFnEbPhSUxFJvNbrDAqahlR/y5uP0u8F71wBl9bzl3fom2QE0Ret0fLpY1LJpV?= =?utf-8?q?a11N4v88GyvtPs6WLYQxs1JjlLI/jQvqRshbAlhxw2IY1QXGiDIPfy4FOCQvL/XDe?= =?utf-8?q?aMktsTuUE8Oysu6ihJvqH2ljao+1iHT/9h29u0mFZyoKqNZCk5MBmsyIQY7KcIGeD?= =?utf-8?q?FeiqtuRyBuecdEdPgY71ILHxL/Q3pnFYqbfyzmtuUMNODy5rk2IJPU7mJjAUMZHNb?= =?utf-8?q?/1C8TcPr9EbSQhx6xkM6VGVyg4HjEsPClFtDpZhmE4Xy+weD3hrFNCsm7ZK6QL11P?= =?utf-8?q?Xc2MP1zQvLV6MpgaP4l7Yt/Pzh0mxMEbHIyqmeJIjztp4I9TnosgX5VdItdHSaTsr?= =?utf-8?q?y4HunmTDJWzJJIMwAEua0vUEw022bagPrGxBziPGvldAHecdOY90jW3yKpzFRDJAk?= =?utf-8?q?f4ZpWEZP38/ZlFhPQ2uMSJjkmn8jTenxhPuHtPxwSAW2+iVtq4HKQ1n1+MjxV8Y+X?= =?utf-8?q?PXNrKqOVFmQgu9XcvLUscsRCOjaaJnegocsAceiMbUQEUnEfuo4vOWATCtHIXDHX4?= =?utf-8?q?EDZaWIiSdqAqUqJhs+iMioLHjAL+o7ErgwD4B3N5cIbX2woIGukSB5VMCudsFhFMN?= =?utf-8?q?aU4w/P2WOf7iTxHiwvqiDvjn7cmyW6Et2I/fZ54W6Ryfk6bILCi/NesSlNr5dEXkB?= =?utf-8?q?RdGfmMDl8bVv8QGiMSg1pkkoPjZO1pTg8vIdPsnfZ8OxSJwd3LZpBfJ/tIrWaSePo?= =?utf-8?q?EpYV9AC6kSMfMtoviieBwOregu46g2hEmngl8c/kMurofwyyR7sihNIuafmK5HIz6?= =?utf-8?q?W+JwkcBCrrIG+5kcTkp2Qy9835BaVVhgCz2Yq6N7fpGWMDmeN0c/z1uUZwmMrM11e?= =?utf-8?q?0nruRS7ClQ1DA7MjH7EYMXDy/kqGVcCK7VKSCRyIt2ZwFFgXGUG0O9OLb6rpKtFDS?= =?utf-8?q?V+MfZrH7yfWGzaEcDMZ8ahuMQsPlODijyErJB2RxeBWtl/6ZeHi2qoWh7IdP65RyF?= =?utf-8?q?I4I0Cq/RAxnXAq8vQdB11nY50/xUnZJgkF7RnD0auUIDldvb2zQB989kK8GMigeSc?= =?utf-8?q?OSkAC/1bhIIRvlVewZB7e0jsh/Txbvfv9+IbJvxKs37d2/3yR3400RKicob31yNKD?= =?utf-8?q?sS4D1HA9mV0bKdKLXyVxEWE3hrlYswT79K/t/7ZYwS+NZwAoVKnjM95gJDZaqjpQb?= =?utf-8?q?vcp1AD1w+qG9gXTfpDYJfi4V/y1qTWK2jCtBrrvxU49tCbgVhhbqsR+i6zo3PEHaT?= =?utf-8?q?x4jcorP3ihsjjkiLn7bxvd9yxfTbqY44YrpsbqerBPzZ+q6GKVHYsLDDotHafRNn9?= =?utf-8?q?tKyfZe3U1KEGw8nE+yeeFviYhgdGwYRJOGzLKK2qVpzKTydw+V78TC69JRv8Zdtch?= =?utf-8?q?22N8ciWpvQtE?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59dd9fa7-a0de-4629-c9fe-08db94b45b53 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2023 06:30:55.1966 (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: mJ3tJZ/j1PebHfYc38cvRsyiVCRR/i+/bgZogqMyL1uX0us4EupZkz/HK3EBhrw4b1dMQkoTX9xo0o0Vo6JOwA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7549 Use DATA() / END() and drop the now redundant .global. No change in generated data; of course the two symbols now properly gain "hidden" binding. Signed-off-by: Jan Beulich Reviewed-by: Julien Grall --- v3: New. --- a/xen/tools/binfile +++ b/xen/tools/binfile @@ -29,15 +29,10 @@ cat <$target .section $section.rodata, "a", %progbits - .p2align $align - .global $varname -$varname: +DATA($varname, 1 << $align) .incbin "$binsource" .Lend: +END($varname) - .type $varname, %object - .size $varname, .Lend - $varname - - .global ${varname}_size ASM_INT(${varname}_size, .Lend - $varname) EOF From patchwork Fri Aug 4 06:31:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13341322 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D2CA0C001DB for ; Fri, 4 Aug 2023 06:32:28 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.576890.903548 (Exim 4.92) (envelope-from ) id 1qRoMF-0006Ea-3K; Fri, 04 Aug 2023 06:32:19 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 576890.903548; Fri, 04 Aug 2023 06:32:19 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoMF-0006ER-0d; Fri, 04 Aug 2023 06:32:19 +0000 Received: by outflank-mailman (input) for mailman id 576890; Fri, 04 Aug 2023 06:32:18 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qRoME-0006EL-O9 for xen-devel@lists.xenproject.org; Fri, 04 Aug 2023 06:32:18 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2083.outbound.protection.outlook.com [40.107.7.83]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id a84a7ed9-3290-11ee-b26a-6b7b168915f2; Fri, 04 Aug 2023 08:32:17 +0200 (CEST) Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by PA4PR04MB7549.eurprd04.prod.outlook.com (2603:10a6:102:e0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.20; Fri, 4 Aug 2023 06:31:48 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e%5]) with mapi id 15.20.6631.046; Fri, 4 Aug 2023 06:31:48 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: a84a7ed9-3290-11ee-b26a-6b7b168915f2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BE8IazFiMcKlt9EJxkTDglsHSdtX1En1Utjyrg3afWbPKgs8Rcd93/EIhld5TOWfCIWjbXX7OeK/BVWUv5ZcqqzEy7+TpvHWvqjzukfBdTu7wbv7xSpuq21DS5BJ+M59hwfmSHc7d+XBp/J1yHclJXTuloan5JH6/vr2NUQDUAZJZ6nlw6MAU9fTxsxZkLSlZiKXkAcU7SyPtNttungAWfhVV42CHqWCziLIeFWA+FRk7F9BuZR5HqPRjnYRl5/+owP5yN1Hd0yhMkwah2TKPEBReBfBRQ3uqFmgbwI3cuJM9J1+voGFYZPxckXxZc32HgwCou0a4fhGAx6Z5prFCQ== 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=r8ESduLaN901hoKEazmFjnm9TC717oIo0zL1AjWTDiI=; b=TZMSoqhzDlqo8z2+yG1eVTIeXzqzMpdUDHHGtDDCnIWZDntQrHkQDq6Nle5KI9r2KRPHP1ZOEIw3FZAGn1S/lQDqHQ0Nmlh9M3qblS5D+uH5R/URZKk+i+Ha6ZVVX4FUk135OXqLCz+/N0mFzNSQ3ErcONNwq9wCJlq63N2uQq37jzUUfhGevVSpJgRQ+NYOFdWSOwKMneInKZH/LFIHSoN8XujxqPMN5LKwTC7W/51p+MzrD+Qe5tqQ7FWScQ94bk0vp5YAkCo1/+9ekmVUzXX2003t9oBULppVtEXuNvcQvM1Rk8ndKIHXlGF9h3lgalsGIfJgTE+7jlz0qfkdmQ== 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=r8ESduLaN901hoKEazmFjnm9TC717oIo0zL1AjWTDiI=; b=rl3zp4Y+kxfANDy6gJJaRy2qAPulxXM6RdBSKvC5csSmUqDvJzbARBOkC6klPf65Ptm5RZZNCtUufXzQsNFlfPJX/5UdtfCBtBxiJ6KkhrkP7UxNEtJXkkuCPO4KZCS+BwS8PFMCClalAWAJTlYwHWGml6Ok3k9JIgHx2rwC+r3cyp0+Lfzt6DgODTtTEBUkDb1nb4Ece0hEbtEwbJ64UCFZjK4WodTEFdgeFCd0P/vlxN3oWezQBG7M4sg0YseWCZHFYLdkDByW7hDuzkE8YUz0WqrTocr6mbPodjZ6D1sVvNKFWc7AJLwxENTZAvLZve95FIFREPZvWrWugPGuWw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Fri, 4 Aug 2023 08:31:45 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.1 Subject: [PATCH v4 8/8] common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly functions Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Julien Grall , Stefano Stabellini , Volodymyr Babchuk , Bertrand Marquis , Bobby Eshleman , Alistair Francis , Connor Davis , George Dunlap , Shawn Anastasio References: In-Reply-To: X-ClientProxiedBy: FR2P281CA0049.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:92::9) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PA4PR04MB7549:EE_ X-MS-Office365-Filtering-Correlation-Id: 7b5d8f3f-4935-408d-cb3d-08db94b47ad8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LRTipeec2RrFtz2YmC2S3V75mz6J9IVrn8Cz6aEK2EgsbF1KXjISQJCcd/taM70zyOjMAI076W5ePPMThodJMnGkB1r+EjUSiZZQzy0JZ5Rha2e8ill4++Nm6ZtEWDMm86KY9A5ODu7DsqcVUdQ6zwOO1CBfqha6B+j6Y6jWIVVixJFCDnEveFq4XH8wbO1H7sOC9JOKiIywmmatIORRM2ef+XjfmJ4NYcIAQudDWaS2k3gUbq5jf9fDaposn+z9eLQz83HU7He+wFGmoY6FCsNyty+F1dch/MGxINqyh8ADKezpeoRw+5LkpIEvusv8YBQBVkJeePuF2lVjdG8Z3x0sCztApDX36GZWIm9OUe67AdiuSbUuR+xUab1gU3qmMss5u6jq1exnnkAPQ2GDbTJ3R+Yh5cMy51znEyAuhIWZAbsPINdrnB09hGPuWffWVZVA1woivJ1T5pY6fHf4SWLu2LNIraldcOFz/pPnmQLdkWPcd3x1RGc+Hnx6CTikzJ357sEMVvOYeqRegqQbd2s5FjXsgx8x7vAZmjeuBwECTRrW7MN1+33pEvN1jP0kz1ff15NZXCTltTxWXf1e0/qL2nrcfPW/bfW9nZJv4yZC4sk8sd9ARs2Ma9uQoYtvo5j1p748nLHebn9RROhwYQ== 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:(13230028)(136003)(396003)(366004)(39860400002)(376002)(346002)(451199021)(1800799003)(186006)(4326008)(6916009)(316002)(2616005)(66946007)(66476007)(66556008)(5660300002)(26005)(41300700001)(7416002)(6506007)(8676002)(8936002)(31696002)(54906003)(6666004)(6512007)(6486002)(478600001)(31686004)(38100700002)(2906002)(86362001)(36756003)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?oaKNcJk2guPk1v8067it+2j97xHN?= =?utf-8?q?cyNj0OlGSnhhimKKfb4AFpr6WkX6VHpuPpoTwzSlnzGRatr6UYmoMzqGucOuPGj1s?= =?utf-8?q?jm4e29a91ouuZQDvoStFyjthpoo8HTUGtMm6zmLywxhATjQm/I0o9uVHOxE00DTSx?= =?utf-8?q?GY8qb5aj9JbqAiDuS7tCVc72PmWOI0OCFa4Fd9r328daFtzmCVq0DlEvkJU6kfUId?= =?utf-8?q?X6+f7nAU7nXXs2QmqkRbwFKP90gHEfDj+F+wpw7UkecgUzJiCGkGxk3zDRx2H4e5a?= =?utf-8?q?B//5c7J775zK4SfjG5z+Y0ZKU0NMAMilNC9t4rLdu/V2GsllJqbXxXGCAy7qyb6k7?= =?utf-8?q?oq90/NAfRV2b+cIzUt+BrpZdyLECwOeXzTLEmaTc2ZusjjCvSXxV60LEHkZRqtesM?= =?utf-8?q?O7T2tVs6ItyBUXQvIs47H3aAqmQiTgplgIaU6mO8iFhnFwR7tvp9yluxtN4VKrvnV?= =?utf-8?q?Yr4rX700w7p/WXpePKPtrBDW8B1EYuoq7MjNnEUuoCuQpPMdCueSFKDTCnberSLC1?= =?utf-8?q?HmDxEDNjoTNrd7umAdizjYBv2CWHDj7m9smclz6pyt3fvtbAgIjjxYGkSEaYnWlpu?= =?utf-8?q?VJbG5vkWp0AYFTT9yVWz3uWOXG4Icluc0yQbKzOV1lFlf7/W3JS3c+czeGDI/oaN4?= =?utf-8?q?xt2J5WTSuH3JikTUmHAa9g0INqslMueINqKF2hBf4O5ivAWinH2GKk0nIQLR7mEXx?= =?utf-8?q?Q2WkMt3paXKhSHYtAC7HduVITSMAPViH639DwpdEvpIAZcLQ/wyBB+FmAMxAAX74W?= =?utf-8?q?YS34w5iOuR6yhEJrtzihcycs2LmV+k+efi+TvPbJpHkPdnRpMzPn93LC0jHL1uBeh?= =?utf-8?q?XmDO9OfF/J3CJsFaCWmyNh0HxRofllsdAzUjvOJf6r03mSXRn0Yv247VdDK0Cy/kt?= =?utf-8?q?ahciadLpQQyyuDdDuLWA0AkcdMQn3BYydWOg25mACZL6i2Xwi8pI+rxke7qdknO5V?= =?utf-8?q?bpr0JUNU5eZ2+HIAEpiEtAEM5poTTD82gyEOx4+HQP4Bwo3/0tdAdtiCyuj5XxBOz?= =?utf-8?q?sy2BM/fQq6q6QftV1NRb55UcRelUEuaeHXR78hFSCWoWrvn5q7rDJfd6Rvse/yarh?= =?utf-8?q?Jq7F2qeTPJ1Pg9rViTe/OLyAXU6eUS2l2HrIq6FXQmh+tqGz7EY24EvYSFIFwBTp/?= =?utf-8?q?l9apvjsAp+BYBtApm7MPXp42o2WtgOGzXWp84Pqqd+HHSq8DAiJy/5xkVep4CWi/1?= =?utf-8?q?eOxp0wOkcD37SfI2/4gmsMYc7AGaWpZ3GPT0KJBly/P1pluJXYB2nxbxcQnWHADA6?= =?utf-8?q?NNEKId3M4/+HuLWPlcPDswj/+n4dONJXALLSS3BFaFBXRAKfXEbY2Qpp5sSheWj/g?= =?utf-8?q?ZEopXJNKlomZTcXOb8yeIdO51V0keenR/3zEySZa/rVnMPolfkN201LtI8zEyGz4R?= =?utf-8?q?v9Koq7c3oeZ3NAmw47nol5+0v+TrI/SWtxG/F8hU8zanjFA1filn7DMbCnnrzdvYJ?= =?utf-8?q?YP1L/mB9JNsSPIGek0NNOtJFvuyfa4VcSGeD/dnqxfcBIRdnLEXRE6GMYFG9kdobM?= =?utf-8?q?9Oae9VA/V3Lp?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b5d8f3f-4935-408d-cb3d-08db94b47ad8 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2023 06:31:48.0233 (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: F9TZGOuYH95OnhlSGTOwIFYrkRapOM9067qrSi2f29oS+b17cfaF8fOgy2C+31Aa3LjdjWqW+Tvv7MK9Uaim9g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7549 Leverage the new infrastructure in xen/linkage.h to also switch to per- function sections (when configured), deriving the specific name from the "base" section in use at the time FUNC() is invoked. Signed-off-by: Jan Beulich --- TBD: Since we use .subsection in UNLIKELY_START(), a perhaps not really wanted side effect of this change is that respective out-of-line code now moves much closer to its original (invoking) code. TBD: Of course something with the same overall effect, but less impactful might do in Config.mk. E.g. $(filter-out -D%,$(3)) instead of $(firstword (3)). Note that we'd need to split DATA() in order to separate r/w and r/o contributions. Further splitting might be needed to also support more advanced attributes (e.g. merge), hence why this isn't done right here. Sadly while a new section's name can be derived from the presently in use, its attributes cannot be. Perhaps the only thing we can do is give DATA() a 2nd mandatory parameter. Then again I guess most data definitions could be moved to C anyway. --- v4: Re-base. v2: Make detection properly fail on old gas (by adjusting cc-option-add-closure). --- a/Config.mk +++ b/Config.mk @@ -102,7 +102,7 @@ cc-option = $(shell if test -z "`echo 'v # Usage: $(call cc-option-add CFLAGS,CC,-march=winchip-c6) cc-option-add = $(eval $(call cc-option-add-closure,$(1),$(2),$(3))) define cc-option-add-closure - ifneq ($$(call cc-option,$$($(2)),$(3),n),n) + ifneq ($$(call cc-option,$$($(2)),$(firstword $(3)),n),n) $(1) += $(3) endif endef --- a/xen/Makefile +++ b/xen/Makefile @@ -407,6 +407,9 @@ AFLAGS += -D__ASSEMBLY__ $(call cc-option-add,AFLAGS,CC,-Wa$(comma)--noexecstack) +# Check to see whether the assmbler supports the --sectname-subst option. +$(call cc-option-add,AFLAGS,CC,-Wa$$(comma)--sectname-subst -DHAVE_AS_SECTNAME_SUBST) + LDFLAGS-$(call ld-option,--warn-rwx-segments) += --no-warn-rwx-segments CFLAGS += $(CFLAGS-y) --- a/xen/arch/arm/xen.lds.S +++ b/xen/arch/arm/xen.lds.S @@ -154,6 +154,9 @@ SECTIONS .init.text : { _sinittext = .; *(.init.text) +#ifdef CONFIG_CC_SPLIT_SECTIONS + *(.init.text.*) +#endif _einittext = .; . = ALIGN(PAGE_SIZE); /* Avoid mapping alt insns executable */ *(.altinstr_replacement) --- a/xen/arch/ppc/xen.lds.S +++ b/xen/arch/ppc/xen.lds.S @@ -90,6 +90,9 @@ SECTIONS .init.text : { _sinittext = .; *(.init.text) +#ifdef CONFIG_CC_SPLIT_SECTIONS + *(.init.text.*) +#endif _einittext = .; . = ALIGN(PAGE_SIZE); /* Avoid mapping alt insns executable */ } :text --- a/xen/arch/riscv/xen.lds.S +++ b/xen/arch/riscv/xen.lds.S @@ -89,6 +89,9 @@ SECTIONS .init.text : { _sinittext = .; *(.init.text) +#ifdef CONFIG_CC_SPLIT_SECTIONS + *(.init.text.*) +#endif _einittext = .; . = ALIGN(PAGE_SIZE); /* Avoid mapping alt insns executable */ } :text --- a/xen/arch/x86/xen.lds.S +++ b/xen/arch/x86/xen.lds.S @@ -86,6 +86,9 @@ SECTIONS . = ALIGN(PAGE_SIZE); _stextentry = .; *(.text.entry) +#ifdef CONFIG_CC_SPLIT_SECTIONS + *(.text.entry.*) +#endif . = ALIGN(PAGE_SIZE); _etextentry = .; @@ -214,6 +217,9 @@ SECTIONS #endif _sinittext = .; *(.init.text) +#ifdef CONFIG_CC_SPLIT_SECTIONS + *(.init.text.*) +#endif *(.text.startup) _einittext = .; /* --- a/xen/include/xen/linkage.h +++ b/xen/include/xen/linkage.h @@ -21,6 +21,14 @@ #define SYM_ALIGN(algn...) .balign algn +#if defined(HAVE_AS_SECTNAME_SUBST) && defined(CONFIG_CC_SPLIT_SECTIONS) +# define SYM_PUSH_SECTION(name, attr) \ + .pushsection %S.name, attr, %progbits; \ + .equ .Lsplit_section, 1 +#else +# define SYM_PUSH_SECTION(name, attr) +#endif + #define SYM_L_GLOBAL(name) .globl name; .hidden name #define SYM_L_WEAK(name) .weak name #define SYM_L_LOCAL(name) /* nothing */ @@ -35,7 +43,14 @@ SYM_ALIGN(algn); \ name: -#define END(name) .size name, . - name +#define END(name) \ + .size name, . - name; \ + .ifdef .Lsplit_section; \ + .if .Lsplit_section; \ + .popsection; \ + .equ .Lsplit_section, 0; \ + .endif; \ + .endif /* * CODE_FILL in particular may need to expand to nothing (e.g. for RISC-V), in @@ -49,6 +64,7 @@ #endif #define FUNC(name, algn...) \ + SYM_PUSH_SECTION(name, "ax"); \ SYM(name, FUNC, GLOBAL, DO_CODE_ALIGN(algn)) #define LABEL(name, algn...) \ SYM(name, NONE, GLOBAL, DO_CODE_ALIGN(algn)) @@ -56,6 +72,7 @@ SYM(name, DATA, GLOBAL, LASTARG(DATA_ALIGN, ## algn), DATA_FILL) #define FUNC_LOCAL(name, algn...) \ + SYM_PUSH_SECTION(name, "ax"); \ SYM(name, FUNC, LOCAL, DO_CODE_ALIGN(algn)) #define LABEL_LOCAL(name, algn...) \ SYM(name, NONE, LOCAL, DO_CODE_ALIGN(algn))