From nobody Fri Dec 12 19:32:35 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1765420812; cv=none; d=zohomail.com; s=zohoarc; b=JChwnR2h0GaOvWn6+H7hBfyYx0ZANxQOqoAdK4aBAJrH3o/Qx/LfMF/kMF33+BoFhvfZaO/+v2Hod+g5j6hSEn4r1uztvn5rVI468kzq027pAqvs0lbh7dOQN68aUta/mJlAymsqY+Xr6BlVjnliJJQE3BSRv71XdxbboWPYc2w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765420812; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=D0SRmNgbUxcC0ay425IGSb4L4pwhla5fRNtxxWeaWLM=; b=GRpD0Ufp41r4WZcA9+HyGmuxzaAknIzxzoQL/rh143LSGIAkCWu3R2sDx7Eongaz0Avz9hynDX66vR5myxeILxelGH7TId0yP6H1MXqbSpWqKmO6KRZJJrdyHzvxPyuEa0Bii9V/RJ4r9CLOA0QQTxriv5DJU1BNxtyB3Ju42nU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1765420812707535.353079826481; Wed, 10 Dec 2025 18:40:12 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1183500.1506168 (Exim 4.92) (envelope-from ) id 1vTWae-0006bO-Em; Thu, 11 Dec 2025 02:39:36 +0000 Received: by outflank-mailman (output) from mailman id 1183500.1506168; Thu, 11 Dec 2025 02:39:36 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vTWae-0006bH-Bm; Thu, 11 Dec 2025 02:39:36 +0000 Received: by outflank-mailman (input) for mailman id 1183500; Thu, 11 Dec 2025 02:39:34 +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 1vTWac-0006bB-OL for xen-devel@lists.xenproject.org; Thu, 11 Dec 2025 02:39:34 +0000 Received: from mail-qk1-x734.google.com (mail-qk1-x734.google.com [2607:f8b0:4864:20::734]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 9fd86dc2-d63a-11f0-b15b-2bf370ae4941; Thu, 11 Dec 2025 03:39:33 +0100 (CET) Received: by mail-qk1-x734.google.com with SMTP id af79cd13be357-8ba3ffd54dbso81440785a.1 for ; Wed, 10 Dec 2025 18:39:33 -0800 (PST) Received: from localhost.localdomain (host-154-4.mdu.ilcmifre.champaign.il.us.clients.pavlovmedia.net. [66.253.154.4]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8bab5d4ce55sm101870785a.53.2025.12.10.18.39.30 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 10 Dec 2025 18:39:31 -0800 (PST) X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 9fd86dc2-d63a-11f0-b15b-2bf370ae4941 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765420772; x=1766025572; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=D0SRmNgbUxcC0ay425IGSb4L4pwhla5fRNtxxWeaWLM=; b=IBQNECR7bWfrgCdmTDOn4XeFs8tAq7uriHi8irPJIdbl2V6jF3JwzUH/eOAJqzjvsk cs7EtEG9HHj/txGWrdsf77V2K/rsOGsgC0vxaMKV/BiqiaM4bDivcHLzF5It8mfCvz3D FMvZAoMaR7dt3GPorfCOKlTtzLqvaJ+qDmoHHIspgqXbqM34jy7ZZts2b7DfGaX/QDw5 umQzGk1NIvRxVQI4UtNmxdqi9Sw4jLu2hKzz/KhvRJ8xJ5zEsbSrqBFvZNHPKaS2r0T2 Sx8/Eq3KaJ6J6h5RVQJzk9y7PiRe5L4aiBgiKcHnQ3llKdU/EN0/XowAEbfnubfi6X7A AayA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765420772; x=1766025572; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=D0SRmNgbUxcC0ay425IGSb4L4pwhla5fRNtxxWeaWLM=; b=kvIoKEWwV6gdJ5ofBK7UpCMmce73VqFVcPMBpD22e024xIJGeHOedfCkOZZiVPJBqH CjL9UETDoiq43YaLjdj3QHeGJLQdGxmM1xb0v4atbiCqBsQJy5lKd8VCvWJ0Km1C8S1Q kSq/clIIt3vyn4Sfp9U1YewhHNIjIh5uzskdFoO5Y3gcLETSU4NyWp2Hx6fGu9uDdMXM g4LH4V5Jjh+5vA8pg0KQBeNJ4xcrhIlv85T3zJ7HQYa25XsM2xgGt0ntX0yBgrEDfZiI vPjNOeaU0pikoGtvg0APnmi8PNsYKOdQsDtiJdLt+RtPorGC1283K/x/HgsIQAvl6dhb DgsA== X-Gm-Message-State: AOJu0YzlXDvBV7rPBs8OK2thCiuAV7SX9TluNtQ7KOghnq4QZ6WysK90 rKn177ouG5vxsO7KdHfhu5wIy06C51f0tajpQfyyehhvGZ37PngczvPB5i7+OiQ= X-Gm-Gg: ASbGncvvpuxEplDRljv8zeqQX1nf0dRDXs+opCNC8hgzOTA4TjB8NqSNfT+IxQsL20/ lDiDWeomYx3r/a8O1/dRfou6qmQru2Z82g4Dp2D0UPBIOWx7fwb6luss5KCDV+ArnkKAJueESgy AtQfNx6zNVBSGqos4mq7AEhf9uh7qgUXIc4CZwoKsKsvnsStUR5mgTYzIqkfJhfGCUiSmz1DSyl BWHpBW6DdZOZrr2y6p1lZyJH2ygrcwXRiMLtQNS8lR2KdVs6BxyIDX0MceoRoKEEFyaa9aer4PS PeTrdAPfcf23AgdmpsQBWpAcvWInhxVAyyMHMS9L2KJogFiqkpsdBYTVla4Z43mxCubojCe3ryx cbTIIUzo5nUoP+8+J7tv/Z6xGdwkigwAI1+F0AxL6N6rDAxCEKTG5NFtnIWE9uNzvB313td4S6R qtaxx6MySNYHf+R7jYt8TVBmfKA0i/RJ68DioFgaDCc6pLC/BzuDbOqdiMWmJ9/RQJqPeyJOPs4 KWiRyVk1iW+RkpC3oqk/cQfHs6IfG9JocmQTm6jsrPdam+6bFVj/o7dRpWsRFGNFoAtdNHQDfIs rLk= X-Google-Smtp-Source: AGHT+IEjtr7LjDNnAGOV46d/ZVSuPC+eUKDN9xJFxu4aKbqCdcX6uXABoOdxsTquJx815KMmN2t5Og== X-Received: by 2002:a05:620a:28c1:b0:85b:8a42:eff9 with SMTP id af79cd13be357-8ba39a52ff5mr677144985a.53.1765420771637; Wed, 10 Dec 2025 18:39:31 -0800 (PST) From: Saman Dehghan To: xen-devel@lists.xenproject.org Cc: Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , Bertrand Marquis , Volodymyr Babchuk Subject: [PATCH v2] xen/arm64: Add support Clang build on arm64 Date: Wed, 10 Dec 2025 20:39:24 -0600 Message-ID: X-Mailer: git-send-email 2.49.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1765420813396158500 Content-Type: text/plain; charset="utf-8" This patch enables building Xen on arm64 architecture using the Clang compi= ler. Changes include: - Add explicit -march=3Darmv8 flag for arm64 builds. - Add `__attribute__((target("fp-armv8")))` to `vfp_save_state` and `vfp_restore_state` functions when building with Clang to allow FP instructions despite `-mgeneral-regs-only`. Signed-off-by: Saman Dehghan --- README | 2 ++ xen/arch/arm/arch.mk | 1 + xen/arch/arm/arm64/vfp.c | 6 ++++++ 3 files changed, 9 insertions(+) diff --git a/README b/README index 889a4ea906..67c1aa7fe6 100644 --- a/README +++ b/README @@ -45,6 +45,8 @@ provided by your OS distributor: - For ARM: - GCC 5.1 or later - GNU Binutils 2.25 or later + or + - Clang/LLVM 11 or later - For RISC-V 64-bit: - GCC 12.2 or later - GNU Binutils 2.39 or later diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk index 9c4bedfb3b..bcf548069b 100644 --- a/xen/arch/arm/arch.mk +++ b/xen/arch/arm/arch.mk @@ -13,6 +13,7 @@ ifeq ($(CONFIG_MPU),y) CFLAGS-$(CONFIG_ARM_64) +=3D -march=3Darmv8-r else CFLAGS-$(CONFIG_ARM_64) +=3D -mcpu=3Dgeneric +CFLAGS-$(CONFIG_ARM_64) +=3D -march=3Darmv8 endif CFLAGS-$(CONFIG_ARM_64) +=3D -mgeneral-regs-only # No fp registers etc $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics) diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c index c4f89c7b0e..51fd2ddc54 100644 --- a/xen/arch/arm/arm64/vfp.c +++ b/xen/arch/arm/arm64/vfp.c @@ -46,6 +46,9 @@ static inline void restore_state(const uint64_t *fpregs) : : "Q" (*fpregs), "r" (fpregs)); } =20 +#if defined(CONFIG_CC_IS_CLANG) +__attribute__((target("fp-armv8"))) +#endif void vfp_save_state(struct vcpu *v) { if ( !cpu_has_fp ) @@ -62,6 +65,9 @@ void vfp_save_state(struct vcpu *v) v->arch.vfp.fpexc32_el2 =3D READ_SYSREG(FPEXC32_EL2); } =20 +#if defined(CONFIG_CC_IS_CLANG) +__attribute__((target("fp-armv8"))) +#endif void vfp_restore_state(struct vcpu *v) { if ( !cpu_has_fp ) --=20 2.49.0