From nobody Thu Nov 12 15:08:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1794492295; cv=none; d=zohomail.com; s=zohoarc; b=H/1dP5d4/n0o/qrMqKFkfyIGvsidiRXE1oUNvD04YggDXnNPElWy4RLeE/5n6nEh8imQm0NqPHHm/cADdJjbgnzCOLHbxr5ZJhwE1xhf8P7Gejp7IUppet+CWxEEIxiLnRgEKd6uJ0guxEmuOKmik9meEwfjjWNVIL5BJv86MdM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1794492295; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Bi/CcAI+rvmm6cAUvvP/Z0IB5bzH7SCWH1tuI55uIAY=; b=WG/Qhwqh+8ckAF0QsJS+AdmWqvevv+ipiXGUmxTdMN1CCw9INCxyZncgl6v7uQwWCGJIdK7p/rZod3ANkQj6kVB/X9ysFZmMEytC6lEv6bPqopKNoZHsrAT1XSIjWprTGdZtdisvwtAQcS1SSCvXc4039+qIsmB7LsLiDADedEw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1794492295181278.7751836341581; Thu, 12 Nov 2026 06:04:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xRVPF-0006Eo-DV; Thu, 12 Nov 2026 09:04:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPD-0006EE-5h for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:03:59 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPB-0007Pm-MG for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:03:58 -0500 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6ACAUnRl1629431 for ; Thu, 12 Nov 2026 14:03:56 GMT Received: from mail-vk1-f199.google.com (mail-vk1-f199.google.com [209.85.221.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hwbs00q4h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 12 Nov 2026 14:03:56 +0000 (GMT) Received: by mail-vk1-f199.google.com with SMTP id 71dfb90a1353d-5eab0467c89so5631090e0c.2 for ; Thu, 12 Nov 2026 06:03:56 -0800 (PST) Received: from localhost.localdomain (pmd666.hd.free.fr. [82.67.153.177]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4983284c9b1sm15501498f8f.6.2026.11.12.06.03.52 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 12 Nov 2026 06:03:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Bi/CcAI+rvmm6cAUvvP/Z0IB5bzH7SCWH1tuI55uIAY=; b=fUPAHVdKnCegmG7a 1/WDzkp2jOm+99kDgT9FaOptMUHO/y2byO/D2h310doa/q0WGGSWwLmJbud+I/iJ HfMHGRiThyEHn5d8fxYVyuwlxKL6E7YBYUQ0iXHgJ40QTiIATBRe6VxI8cyUtG7x 83T0IQU0CsUImHakuNWtFQxONCYTAp9VGLxmTuNk4aMvhlZMZcYqB7KPJdqaPLQW ZkE7aa828O2w052tNnbeBJolwSo64QfWaurLOQhnNNqLFOtQcKsgRg0aXeU9HBxP j7a0KmXqWZs5b1K5r0ZYwp8/Yi0oq6cLc6Igv9CQ9KGG2wmVTBmV6hqOQ3agmvOe oPB+LQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1794492236; x=1795097036; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=Bi/CcAI+rvmm6cAUvvP/Z0IB5bzH7SCWH1tuI55uIAY=; b=ALW2uVc6o6/hcZ6vb2nzEsgY3IKkimZXFwzKvhl0eenfJY/xAf3HqwKm6mb00nIrfo uXgik/17/nwdt/BLgny8Vs+yxu+M9TXncWeiBjAMmTIyLFwad6L2vtB/HCnO2HP0LHzy s/SOYTZS3d2QCCW8WtpaY5wGLt5HK6rkDHlAKgnI/0TJlMqb0JAN0pJvtOIU5dB/yqAU OY/ZJ062JOQTfkJdf3eJmgMD0QqL4UpAnfm3e6mZaTiiga4yyOPuaquXFzLGH3OtUCfp IOuuFiNtMOWL1qqlGFvXDi314iXDpqBbdEMn39UMq12eJqW3HYW49KhIUeE6kaA2oOoR 1gUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794492236; x=1795097036; h=content-transfer-encoding:content-type: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 :content-type; bh=Bi/CcAI+rvmm6cAUvvP/Z0IB5bzH7SCWH1tuI55uIAY=; b=NVTNMwzjy/iru5Cf5ptXDL+wHnPbssXpSqSu5M5JwDoYz1rLYjdCNLe3wlJAKiYGUA OKxH7iyWElGriOqQFxlsZUvpRhsEtpSAlEeTmWiFlAVSZulPnfHTuYewL40pasvH9f7N QGCuX6EqCkcnmNSrM/LYBbrGRJ/UqmidZAy1QyOz5Q6YHKX8TIbatyvm8W8DrYi039a0 DSPEJAh1YFzOlJvd5N8OVdytR6RmcVCygI2hdBa+t0Ueum0dhrIftb8vW9TJUOSJR/3W CB/CIHJsUTMKT1jtNIOwNRXuiqQ1Y06xtbeOFpXDmWyWIi3zrbRpEC+c6L5QMFg8lvDk enfg== X-Gm-Message-State: APuU4Z/D2u1WF8k2wTZabxW09KmkL2TwsSHfjx9/yzC9FDTmBt1PYcsS cIQIljxmHdKFcRdRR6UvMGlfUeft4dUQ6Ubob/7qxe4H6ph5/qAsleDaSwexz0GSBnIflVuOAzO lN8BrjUmMpHTgsuvAwSHgiI79EHVEzKRUNFkyiUKuD3zhjRn/ZgcEzmOpIxbbgT+y5Xlq X-Gm-Gg: AYBFou2s2aEl4pXBzSc8qy8KopkG/4XydbqRCGn90H7qd//ncbWJZ8SW9BJSGVlNfw/ VTCi2CdQirb+nGU4ytRhO0G7MoYKStrjgPTv8vAFW2VNas3Sidh8PKQ8x0AoOiA0/n4zTO0xVtb nTat1s1X7xo5Ux40jsxMCKDwgxSooOnA4XGkUI7JAs+SCym0ugSy+1VrJrW+lqN9AE69evhjF8K J3fPOghobrFpjoQ94ilmXc+Rm2QH8MdLWBgVjg8j4ppxwaagpqLLuPZUEk+7emYkC1Mcf5Ff8fd QnfhwDPmVIzeQDqcKy98ZxArw/0FNIuVpvRe6o9mT+ieZj4gGq0WuCqUzhcKp0PeSpdS4BHCmYr 3WCgUEZJL5Umv/kFVoyyHgV46YxwQ6QhHNGMsZ/SX8FdTh5tlIgPSs0ItH38Vc8pUFSPV+ybTqF DRoNhWSzwVuIj5Ng== X-Received: by 2002:a05:6122:4d0e:b0:5ea:cc3c:9449 with SMTP id 71dfb90a1353d-5ee1c48ac3amr2756839e0c.19.1794492235853; Thu, 12 Nov 2026 06:03:55 -0800 (PST) X-Received: by 2002:a05:6122:4d0e:b0:5ea:cc3c:9449 with SMTP id 71dfb90a1353d-5ee1c48ac3amr2756755e0c.19.1794492235258; Thu, 12 Nov 2026 06:03:55 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Peter Maydell , Paolo Bonzini , Laurent Vivier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Anton Johansson , devel@lists.libvirt.org, Pierrick Bouvier , qemu-arm@nongnu.org, Richard Henderson , Helge Deller , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-12.0 1/8] tests/tcg/aarch64_be: Check data byte order in hello Date: Thu, 12 Nov 2026 15:03:36 +0100 Message-ID: <20261112140343.61634-2-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20261112140343.61634-1-philmd@oss.qualcomm.com> References: <20261112140343.61634-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMTEyMDA1NSBTYWx0ZWRfXxgzfmdEaJPfi rCbJlVyR/giCbPITltZrXhPJWKWno0/d55lOgHb+zF9dexXFXG9uc5XObPtOw8z6ZvBmhbmknHq TH+Lhiy3E5pqCxc5owPWkvK+JIkG3Jb3wgzMmCprqlLRV0miltd2K8H4L6hqNOLDN5n1BsJW34S kE5R3W/SRLMdWSpcsHsIW3NffqWgAVa9QAilzw+eO9hAmKOXmfLv537D4UHRhPSaTps6fj+0IC9 rTVHhheWx0Qb04EVUE9nW7mqlWZEfP0R310ZCoTusR7IQ6n5BtFi4CI5kIWq44AAMwLnTqcgSbo 9P/arMoPOoMHQaWD/eF6phFWk5SESWEGILoULUfTLyfcFi56v4oJBz2zjGKuS7NHU0uAsRKHZTX KbZkzJiywwTmZVMh75WofzhdhASbxCzTf/CZSbetFLAXeSxis+B8m+GkgO80p5TShd9RiaeY+oO XBUyaswoOrhuCqotJ4A== X-Authority-Analysis: v=2.4 cv=AsF7T+9P c=1 sm=1 tr=0 ts=6af5c74c cx=c_pps a=+D9SDfe9YZWTjADjLiQY5g==:117 a=nz36NW0qrpeEijYxj/H2Ew==:17 a=IkcTkHD0fZMA:10 a=zJRp6_cAMcgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=apfC6Sr15dbh0XQO5jUA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=vmgOmaN-Xu0dpDh8OwbV:22 X-Proofpoint-Spam-Info: AW1haW4tMjYxMTEyMDA1NSBTYWx0ZWRfX6V2WJCtfuZ6Z 3fccqxwtwOvVvKfQxieDahPHD87jAtpDMaMUnR8gi7EsxEdJ4Q+9ajU077Ms0ZdL0YC8unjzAs5 pCDxQiZqHfa+HAHxH4kTw512sxhrug4= X-Proofpoint-GUID: w5LQ_sRCRrwj3gjAwXl-hhn8dnziIjOg X-Proofpoint-ORIG-GUID: w5LQ_sRCRrwj3gjAwXl-hhn8dnziIjOg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-11-12_01,2026-11-11_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 phishscore=0 impostorscore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2611040001 definitions=main-2611120055 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1794492296907158500 Load the write length from guest data instead of an immediate, and fail unless the syscall writes exactly twelve bytes. This detects incorrect CPU data byte order rather than merely accepting the ELF header. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- tests/tcg/aarch64_be/hello.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/tcg/aarch64_be/hello.c b/tests/tcg/aarch64_be/hello.c index a9b2ab45de9b..4816635d1704 100644 --- a/tests/tcg/aarch64_be/hello.c +++ b/tests/tcg/aarch64_be/hello.c @@ -14,9 +14,10 @@ int write(int fd, char *buf, int len) register int x2 __asm__("x2") =3D len; register int x8 __asm__("x8") =3D __NR_write; =20 - asm volatile("svc #0" : : "r"(x0), "r"(x1), "r"(x2), "r"(x8)); + asm volatile("svc #0" : "+r"(x0) : "r"(x1), "r"(x2), "r"(x8) + : "memory"); =20 - return len; + return x0; } =20 void exit(int ret) @@ -30,6 +31,8 @@ void exit(int ret) =20 void _start(void) { - write(1, "Hello World\n", 12); - exit(0); + /* Force a data load to check CPU data byte order. */ + static volatile int len =3D 12; + + exit(write(1, "Hello World\n", len) !=3D 12); } --=20 2.55.0 From nobody Thu Nov 12 15:08:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1794492301; cv=none; d=zohomail.com; s=zohoarc; b=aAdA/mLdBMi3VnodBs7TyEiPmO0kpouwUXOIN2gCSxalI8fDDZpRUObq+acTJwmIX4KdzpmovNn2QDAOjFBdU3Zz5VhQVTeeas+e3UFyOgsKvw/BdABV9vd9lTQZPLkch6ZIQu2v89wTSNot1ON3+sBQZKL4Kj4XHJNYP9U9pB4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1794492301; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=F+yrVZEjze+e/2Of60uDFwn+N5jFGPC6Av8hbHxv1mg=; b=MwdLVPtpm3n+4w6Yw8a68cy3hmWY9XuvaFAr1W4r25awUPrXxRtXVnxdHzj+3HXpID7xi/gULEOg+VYW8UeMY9/ZE7LtDnHnQwYfCKKb0hNAOEK0bxtI9BaJl6rO2PNpBJkDN10tuOrXz1W0blzdN81Rhe4+u+1wkv1Azd2sOHc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1794492301100361.8295811877366; Thu, 12 Nov 2026 06:05:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xRVPY-0006N2-Uk; Thu, 12 Nov 2026 09:04:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPN-0006MN-7e for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:04:10 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPL-0007Qx-EL for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:04:08 -0500 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6ACBDtNk3893693 for ; Thu, 12 Nov 2026 14:04:05 GMT Received: from mail-vk1-f199.google.com (mail-vk1-f199.google.com [209.85.221.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hw6re1w36-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 12 Nov 2026 14:04:05 +0000 (GMT) Received: by mail-vk1-f199.google.com with SMTP id 71dfb90a1353d-5eacc615f73so4583944e0c.1 for ; Thu, 12 Nov 2026 06:04:05 -0800 (PST) Received: from localhost.localdomain (pmd666.hd.free.fr. [82.67.153.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4bb4e28c882sm75481145e9.6.2026.11.12.06.04.01 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 12 Nov 2026 06:04:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= F+yrVZEjze+e/2Of60uDFwn+N5jFGPC6Av8hbHxv1mg=; b=ezJd4Hq7RZJ0kB1Q eulr404Yzo1n6m31Ism+k8tBsy9zrPJ7jQ1VOx2DAUkoJj4EBkYdoPl6yEwEPjJA u1cG01axESRgok8g1kWcQgDcdYajFb653EfPmv9TkEIrN7EyiguxbJhAZuo6y42H nmo0ArGnoYEIXnygM3eURqBRBvKvAlQ4msZfKLddh+qv0YwEPh8B2jjwgs6RKS4j ZJu1z0AG091q52MM1UQEfkxyCU2eW52YdSFUlDxUfQVCeOzcV2fGZ3bMuZameeiH KP1MwInOb4pF+b8p7pFnyaLnOwvVg+vnyBL3Urypdiye6k9895iY4Sk4OuCz/b0y 2E9Pog== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1794492244; x=1795097044; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=F+yrVZEjze+e/2Of60uDFwn+N5jFGPC6Av8hbHxv1mg=; b=b8oktyhavJdj+gG1o3Jl++joCdyhFtLE79MsqZ9us38p7mBlKC0pMd4cELC+KEplk2 p2ztg/lDmLtmzPnsdbe/GMo7c9oZ3bpaOo+8zFoTq8V3YyVN0tMDZRLEUpITYY7aGSMK kGScGQ8VoTyUfDRcHp00kYVRk5cJPUsPQEjq4zJD5JbMzFdc/rTUunyA6fKqQQ4E9DlB i8nZYFSc511Ypq6eBsaGwXpvvuE78YwIDwxD3sNbqT0Tk+3oKSZ3q9PxcKGe1VUjreds 42dw+1Qva5rRfaIMzvWrflE0yLcCq0OW4MJwOZgtFCXh1om3y+GMoTNxNiJ6UFJojQvJ fDlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794492244; x=1795097044; h=content-transfer-encoding:content-type: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 :content-type; bh=F+yrVZEjze+e/2Of60uDFwn+N5jFGPC6Av8hbHxv1mg=; b=X+vBD2RgbrQQcmVgcmBbzS4XFGrxXyH1gl1MEAawccgfm3UCZI1iQHCZ8kdo/XWu0x exlqCIwCRJqziP4JXrynEHCewrOQCgKXA7jBKvj6X5g7OyUcs9stK0ATC2710+yq5l2J E+8oalwPb5V1M8HFH0I3nc0Na5jJEHHq6nU2i4ZKW7Wo00GlkkFH2hv/Sr3FVKJyNhZL 067ZFuDk2X4AZngBC01RSxAm3QFmuciE/uPOW8CtNUgsGH+ElagJCX6DOa/haMbq1PAT zADpgeEcKcMgtVircBH8R0ju7kGakju3RwL1urFir+S4gVX1o1Pi5uVwh7y09vclNYHL Kqaw== X-Gm-Message-State: APuU4Z8HyPzRaSLrsHqgQivE+uMS9xNthK4auH1XAtJC8SWaNHjvTfAz pifhCxPVuP8A1zijMUAm0vgD2iEtwVxWF/DRowBySaBzHG6CNuPkJJhdSL6eSBpijX5oo5L5RWI amAcRAq30T5Gwphw4cHQPcdx1M/GwN5F+EjB3ZZjFyabJwSa9tvlKnCFtbvZwkD6o2RUp X-Gm-Gg: AYBFou21g2TDxxrlX3/QFlHokUdMFysc8qOidObpJvBa+JDuAoa8eKxHcZYJ3LxoaRh AqlmaigRn6AyGYCoF7mu+jFjaN4y5LFGczxIeV1m+rK+Yp3SevAmw34fByFxs928iZa6UTcuo3A qLuAifX7ZkL5Km+WyYU+YulBeMSuox8PalS99/jKHJpQgxIMYyz+/Qf+N19780O7uWDyGyAxAkr MchEL00/hrWJXnGjHjsxdaEQRgWeBUM/daEknn1UqtHuis1WGTYFbj+D+U1s0TJ1Ffz30pvU0J1 VMzotv/UOF27upUAiMCXAK4SReOJ132Yyluz3WFK88hirz5Zkl/bclMTm9OZ36mc2atvn5OgU4B smfaa26DvAQHC0GI72DOZn9N/pB5SAD20vI8EHDeLSOQe4qCtbWH5iXJKdKu3dFXNiZewJrI/MA o2wvpnmgqGwKL09A== X-Received: by 2002:a05:6122:4d0b:b0:5e9:721c:72a8 with SMTP id 71dfb90a1353d-5ee1bf6259amr2502055e0c.0.1794492244204; Thu, 12 Nov 2026 06:04:04 -0800 (PST) X-Received: by 2002:a05:6122:4d0b:b0:5e9:721c:72a8 with SMTP id 71dfb90a1353d-5ee1bf6259amr2501981e0c.0.1794492243309; Thu, 12 Nov 2026 06:04:03 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Peter Maydell , Paolo Bonzini , Laurent Vivier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Anton Johansson , devel@lists.libvirt.org, Pierrick Bouvier , qemu-arm@nongnu.org, Richard Henderson , Helge Deller , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-12.0 2/8] linux-user/aarch64: Move ELF/vDSO endian checks to runtime Date: Thu, 12 Nov 2026 15:03:37 +0100 Message-ID: <20261112140343.61634-3-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20261112140343.61634-1-philmd@oss.qualcomm.com> References: <20261112140343.61634-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: fGbhPjNjqGLLrULgEgHo_1ekZO7YQNw6 X-Proofpoint-GUID: fGbhPjNjqGLLrULgEgHo_1ekZO7YQNw6 X-Authority-Analysis: v=2.4 cv=NJhAaE6g c=1 sm=1 tr=0 ts=6af5c755 cx=c_pps a=+D9SDfe9YZWTjADjLiQY5g==:117 a=nz36NW0qrpeEijYxj/H2Ew==:17 a=IkcTkHD0fZMA:10 a=zJRp6_cAMcgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=gRHuWOP3dPFJNPu9TmoA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=vmgOmaN-Xu0dpDh8OwbV:22 X-Proofpoint-Spam-Info: AW1haW4tMjYxMTEyMDA1NSBTYWx0ZWRfX1x3rT+qUyH8m YDSfu4dUzjwRNxljVv5tSnmQxDdv6fqgr2pUkG7BIiq5o0BjSZBuJc3tgl2fRCzv83vWTcp6zkn 130QhO9IaekO7nA8C7UZM8Pmq4Y/jts= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMTEyMDA1NSBTYWx0ZWRfX5Swomsvc8u0y BC4TfZMxUUScs9h2HcAm0vtXw2mWQdgk04GABM04KDr6Ye6xncuTBcYliT+A6dzggfKxu7Rn320 /1QHI7b2BFGcBHR0UrE6J5nwWqm+SkwqiYfck7+pWyeg69cPxmmCuZSUliK1fJzu4PebpSrhUeY SO19CZz5tuGJK3BBrRcX4kvG+Zm4v2DCuNOUHSlZ9j9UikHSBHnPzXPqU3txSAFDJqh9coif7Sn TlB6j9dReMbEubh8t6luQxOGQxDb8MOq3E5socANoWSHZHJfuMc2WQssFfFenaO6M6DMmfQJo0f u+C8yHgGOSACE54S4B3nlPCoMUl5K5VabU8g5Neu4DMndsJ1AEyjurjvc8yX2ZaQQyx1mC8As/C UaiFWU6SBW/zJR2ozw6Fu3s+K/XQrSI/BwweY7zSPRcqQHStGemhlCyq97ODGjNvh5Uxb7FJn9k l8vjDSx0S0jvsKFIMjA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-11-12_01,2026-11-11_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 malwarescore=0 adultscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2611040001 definitions=main-2611120055 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1794492303086158500 Use target_big_endian() for the platform name, uname machine, /proc/cpuinfo suffix and vDSO selection. Give the generated vDSOs distinct symbols so both can be included. Preserve the behavior of the existing fixed-endian targets. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- linux-user/aarch64/target_elf.h | 6 +----- linux-user/aarch64/target_syscall.h | 6 +----- linux-user/arm/target_proc.h | 2 +- linux-user/aarch64/elfload.c | 10 +++++++++- linux-user/aarch64/meson.build | 10 ++++------ 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/linux-user/aarch64/target_elf.h b/linux-user/aarch64/target_el= f.h index 4cdeb64b0d4e..ebd23cfbceda 100644 --- a/linux-user/aarch64/target_elf.h +++ b/linux-user/aarch64/target_elf.h @@ -27,10 +27,6 @@ typedef struct target_elf_gregset_t { struct target_user_pt_regs pt; } target_elf_gregset_t; =20 -#if TARGET_BIG_ENDIAN -# define VDSO_HEADER "vdso-be.c.inc" -#else -# define VDSO_HEADER "vdso-le.c.inc" -#endif +#define HAVE_VDSO_IMAGE_INFO 1 =20 #endif diff --git a/linux-user/aarch64/target_syscall.h b/linux-user/aarch64/targe= t_syscall.h index bd05f6c7fe5d..f3c570a5b2eb 100644 --- a/linux-user/aarch64/target_syscall.h +++ b/linux-user/aarch64/target_syscall.h @@ -1,11 +1,7 @@ #ifndef AARCH64_TARGET_SYSCALL_H #define AARCH64_TARGET_SYSCALL_H =20 -#if TARGET_BIG_ENDIAN -#define UNAME_MACHINE "aarch64_be" -#else -#define UNAME_MACHINE "aarch64" -#endif +#define UNAME_MACHINE (target_big_endian() ? "aarch64_be" : "aarch64") #define UNAME_MINIMUM_RELEASE "3.8.0" #define TARGET_CLONE_BACKWARDS #define TARGET_MCL_CURRENT 1 diff --git a/linux-user/arm/target_proc.h b/linux-user/arm/target_proc.h index 13c33d44d5ed..d3186ca655cf 100644 --- a/linux-user/arm/target_proc.h +++ b/linux-user/arm/target_proc.h @@ -25,7 +25,7 @@ static int open_cpuinfo(CPUArchState *cpu_env, int fd) #endif =20 arch =3D 8; - elf_name =3D "v8" END_SUFFIX; + elf_name =3D target_big_endian() ? "v8b" : "v8l"; midr_rev =3D FIELD_EX32(midr, MIDR_EL1, REVISION); midr_part =3D FIELD_EX32(midr, MIDR_EL1, PARTNUM); midr_var =3D FIELD_EX32(midr, MIDR_EL1, VARIANT); diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index f87f22f6903a..8e75da826e62 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -379,7 +379,15 @@ const char *elf_hwcap2_str(uint32_t bit) =20 const char *get_elf_platform(CPUState *cs) { - return TARGET_BIG_ENDIAN ? "aarch64_be" : "aarch64"; + return target_big_endian() ? "aarch64_be" : "aarch64"; +} + +#include "vdso-be.c.inc" +#include "vdso-le.c.inc" + +const VdsoImageInfo *get_vdso_image_info(uint32_t elf_flags) +{ + return target_big_endian() ? &vdso_be_image_info : &vdso_le_image_info; } =20 bool arch_parse_elf_property(uint32_t pr_type, uint32_t pr_datasz, diff --git a/linux-user/aarch64/meson.build b/linux-user/aarch64/meson.build index f25a67a21ef6..a5f9a47a9a27 100644 --- a/linux-user/aarch64/meson.build +++ b/linux-user/aarch64/meson.build @@ -1,12 +1,10 @@ -# TARGET_BIG_ENDIAN is defined to 'n' for little-endian; which means it -# is always true as far as source_set.apply() is concerned. Always build -# both header files and include the right one via #if. - vdso_be_inc =3D gen_vdso.process('vdso-be.so', - extra_args: ['-r', '__kernel_rt_sigreturn']) + extra_args: ['-r', '__kernel_rt_sigreturn', + '-p', 'vdso_be']) =20 vdso_le_inc =3D gen_vdso.process('vdso-le.so', - extra_args: ['-r', '__kernel_rt_sigreturn']) + extra_args: ['-r', '__kernel_rt_sigreturn', + '-p', 'vdso_le']) =20 linux_user_ss.add(when: 'TARGET_AARCH64', if_true: [vdso_be_inc, vdso_le_i= nc]) =20 --=20 2.55.0 From nobody Thu Nov 12 15:08:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1794492372; cv=none; d=zohomail.com; s=zohoarc; b=lXK+V03zkqbLF3uKr2JnVDlS+tXYsExrH+5tllLw6XCAzdy7MZ1SLx8OPwaDIvRyeIWLA7C3YamtYlu4FjctipoKaW5ceuzmu5OpGzcd4vCrTZTwookHftm7G7VjkDQTWiPI8cEarosd1wQ/86qnNT7KRA3LTtfOfNkTUfe1330= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1794492372; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=LDt9m4VL31vta49qyUdzCLLxgvh4VaLWpi+uQnOPXoc=; b=Wl1v9ttSXCA4iYGYFPN7eX0UEJwQe3AUXvgQ9ORjhK5Z5emBjQrhumxc3oQWAi1JbHQZW9Zq864KOxbah43gKvaExss0O5up+Lktcfyei6evafOKz/e4W4qvVsGZq4bKAHaCsh3dVGtsgd2NPNSCThZ3WcKjySvkeHy5nzPg36g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1794492372931778.1715144818841; Thu, 12 Nov 2026 06:06:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xRVPs-0006iF-EG; Thu, 12 Nov 2026 09:04:41 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPV-0006So-Ls for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:04:20 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPS-0007S3-HT for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:04:17 -0500 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6ACBVXOF3476859 for ; Thu, 12 Nov 2026 14:04:12 GMT Received: from mail-vk1-f198.google.com (mail-vk1-f198.google.com [209.85.221.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hw6yuhu46-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 12 Nov 2026 14:04:12 +0000 (GMT) Received: by mail-vk1-f198.google.com with SMTP id 71dfb90a1353d-5eab0467c89so5631432e0c.2 for ; Thu, 12 Nov 2026 06:04:12 -0800 (PST) Received: from localhost.localdomain (pmd666.hd.free.fr. [82.67.153.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4bb4e26c2casm65946565e9.12.2026.11.12.06.04.09 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 12 Nov 2026 06:04:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= LDt9m4VL31vta49qyUdzCLLxgvh4VaLWpi+uQnOPXoc=; b=SlGKKz9AH8xnh6AW UhMeddt9jiQ5f3AEA6jdE/KAgjX5WGRb+QDHuRcIK8flllZ4rzWhenQGWuqAwcmn qRKnOBRng1lMZLmD8+2G5afc4hbXvyl8Bg4W/F51mniHqG8VbRMcepQd8iMp76ys RKh1h6dgNxSX64EVqSlAm15zbbpgv+2Q7ISuiP2894jiomd5eazkZaez2ogJKPRS vg7Qh8fOrwUCo2Re9sFsXZeG05j84Zd38o3E049rGyAdRMV9wUeMhMF3ADP/1vfd rD5/82gGtcL1SOvOKtqqUwmA5boEOQiW3UdGZ8UYA+jxKUVukUazZFD/tmMhyque 6E3I5A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1794492251; x=1795097051; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=LDt9m4VL31vta49qyUdzCLLxgvh4VaLWpi+uQnOPXoc=; b=MvwhR0KVLrZQl0Ry7msEpVnS19w95W8O5pI52eIZJLQycPMvWIoFIOFjYXADM30RSV ZtcNMfS5Set11YBWu0/FCBLANubY7ojCD0iWEabGyun0qWSX7BSmN60A0gyKypOWE5JX MPNFQ1zxJmnk78r/tI7Ai5yoJPlIfsMI5iXCWAwvTaYdCU1M9dkjq/oyLkuRnyz6Ui97 fO0XByfUzyppRYuyBGKIM6Y7BQZLcFzCvNpUhQ7mFhvlTWU8pUh6UlIyI3cmIQsUUfi4 dOIk3hKLMTnCAg6N9Jiu3TC0LqUimoxQ4iLdG8ogbE9fr6SZyF8lwRD6CoNv/PAukCRc 9log== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794492251; x=1795097051; h=content-transfer-encoding:content-type: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 :content-type; bh=LDt9m4VL31vta49qyUdzCLLxgvh4VaLWpi+uQnOPXoc=; b=Gu6lafn4HPxxBac2YBHzaVZ/SkZXHLXNYObzHUGVmajblarLD2390oEN3wgFn+88QP jR7Omx0HfHtPaVG0f9+5sqisPp6YI/XC5YD2BDpuday0S0/3haCbO01SbeKTr4/cYHni S96q0VHyAySkygDUVR5Vl4TzKN6tyZRcdSR7+NSep+jEk+5cW6Scx20CbXZF+BavU0Bv T0lut5qcSyImL7gBlBEoq9/jixqamGzAuzV0BEFjZD3a5phwcBstnCWX+7Yi+qMOd1WA I+auoRhkI1c/6GkSk5T+gACmSCqYZSlfTnxQ+wklKDYPMR58AcDpDdeuhfYv2OPpRu5Z DC+g== X-Gm-Message-State: APuU4Z/E7RFx4sXAk0hZJXVPHMb2qlWg/WINfAgdvPoXzLS+LIRrbeW9 55aEUo3av4prb4cdnoISBwuw7ONTwEUegLH0K0avgbLEDmx4Z9h6ibEaALHaomzKB3DIK+diXDp hUT28FPSlW/+5xJEtvXbvp6s+WftA0yxzgff4mJNb9mNNbMfLoyuyJf2Yleamw4Hx3hsy X-Gm-Gg: AYBFou0Depn980VSZ6Rzb6C8ZcU5rii6bdpbWu3VzrrRxYp1XyVcDIJNYo1V9Hk+deg m+NmXMkhfN9tJEGhKRNB8qisu0lJNj/pmX3JdJ/Vj13v70WymVEc3Flt/sY/krBANWEGtUdrzj9 s8p+1btTjr3CjwqWeJHYH362nyIT94R5CwY4S7o3e5lmnujiqrXZHbpXOj/P+xu/iLA8FRpjeC6 CI7sJGqpwLLsOU70sliY2J1jgYVo7oDBVJqacFDDKY2qoOTGpYArxf60E/TIuz2VSDxWjUIfO9F Lai220nOL429B7xp9LmpPLybsIpeeg/g/9BvJPW1h3Kpa5ItdpZB4cxxHLSe/KOnRY731333cv2 UY14AEIIh+pAi4CnmPm1QsCiP0/7wLkHPOyOGCDc+B2moKYgvRR5ICiseUFsI/SzEQIddLHnF30 IbXs3cXTRBFzN4dA== X-Received: by 2002:a05:6122:3488:b0:5de:ee96:75b with SMTP id 71dfb90a1353d-5ee1c426b9cmr2428087e0c.12.1794492251277; Thu, 12 Nov 2026 06:04:11 -0800 (PST) X-Received: by 2002:a05:6122:3488:b0:5de:ee96:75b with SMTP id 71dfb90a1353d-5ee1c426b9cmr2428040e0c.12.1794492250641; Thu, 12 Nov 2026 06:04:10 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Peter Maydell , Paolo Bonzini , Laurent Vivier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Anton Johansson , devel@lists.libvirt.org, Pierrick Bouvier , qemu-arm@nongnu.org, Richard Henderson , Helge Deller , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-12.0 3/8] linux-user/aarch64: Move CPU/signal endian checks to runtime Date: Thu, 12 Nov 2026 15:03:38 +0100 Message-ID: <20261112140343.61634-4-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20261112140343.61634-1-philmd@oss.qualcomm.com> References: <20261112140343.61634-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: MSNARAaiVn-n_5LJtWn4MDG7IMpqlmzz X-Proofpoint-Spam-Info: AW1haW4tMjYxMTEyMDA1NSBTYWx0ZWRfX40wXAK4x61hY 20C89uPFNGiR9Bh5ZxKcihgxpm7hPOG3BanL1LajUBGkvnQhhC4yGDo/iI98zy7xTNR63UenlRm ZQbMAc8+kbiv374n5dL20KCfshNTqOg= X-Proofpoint-ORIG-GUID: MSNARAaiVn-n_5LJtWn4MDG7IMpqlmzz X-Authority-Analysis: v=2.4 cv=d49gWhjE c=1 sm=1 tr=0 ts=6af5c75c cx=c_pps a=1Os3MKEOqt8YzSjcPV0cFA==:117 a=nz36NW0qrpeEijYxj/H2Ew==:17 a=IkcTkHD0fZMA:10 a=zJRp6_cAMcgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=vkEjUumcn_Dj4zhYd20A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=hhpmQAJR8DioWGSBphRh:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMTEyMDA1NSBTYWx0ZWRfX41vTAzUeKGAP +44Ropw6OCF50mLtKn27V06cuVeR8zlKkqr5nt0a6jzRSH/sENhxlgnFRtc5/8mPO78ZpRExN5r 2pozZzJDfdEEf7K1/GH0GGn360p1ColQ9tS1lB9hSbDp7hmRKntX3LAP8onVFHCKBgItbgJv3kF Pzcg44qL7dPZFfxundBgAoIRJuzvhy3KNLjF3Jlnt9KXjQnC8ga994xQI1zfnslazJP2DBu0QTc +rqfnJ6A0JGU2tzi2Zl8Ewi4534WV6sumNCd4jEXmqo01uNGxo9uWwD7rw8yXOX5LSCxkF/Eh7t /udbtLBZCStI8V/wYrX93nD85Fhln9hAw9FxYZVgb8PEm2PF1Qv3Xz0t6ONzTY7H9A+23aJuN0a kiygHz8lcM0tWImVmvILOrMZskvCvNP7sHIjK7eeZtpf8+YfaOhoMmWcBSX7VprzfVh524VYx9K hmIL43uwHnQdHivst1Q== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-11-12_01,2026-11-11_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 spamscore=0 malwarescore=0 clxscore=1015 suspectscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2611040001 definitions=main-2611120055 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1794492374275158500 Use target_big_endian() for CPU endian initialization, FPSIMD signal-frame ordering and CPU-versus-ABI byte-order checks. Preserve the behavior of the existing fixed-endian targets. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/internals.h | 2 +- linux-user/aarch64/cpu_loop.c | 12 ++++++------ linux-user/aarch64/signal.c | 20 ++++++-------------- target/arm/gdbstub64.c | 4 ++-- target/arm/tcg/translate-sve.c | 2 +- 5 files changed, 16 insertions(+), 24 deletions(-) diff --git a/target/arm/internals.h b/target/arm/internals.h index 033d6d66da3a..1381ef9638a3 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -588,7 +588,7 @@ static inline bool arm_cpu_data_is_big_endian(CPUARMSta= te *env) #ifdef CONFIG_USER_ONLY static inline bool arm_cpu_bswap_data(CPUARMState *env) { - return TARGET_BIG_ENDIAN ^ arm_cpu_data_is_big_endian(env); + return target_big_endian() ^ arm_cpu_data_is_big_endian(env); } #endif =20 diff --git a/linux-user/aarch64/cpu_loop.c b/linux-user/aarch64/cpu_loop.c index e7f643d69d56..91ebf4e0778f 100644 --- a/linux-user/aarch64/cpu_loop.c +++ b/linux-user/aarch64/cpu_loop.c @@ -242,13 +242,13 @@ void init_main_thread(CPUState *cs, struct image_info= *info) env->pc =3D info->entry & ~0x3ULL; env->xregs[31] =3D info->start_stack; =20 -#if TARGET_BIG_ENDIAN - env->cp15.sctlr_el[1] |=3D SCTLR_E0E; - for (int i =3D 1; i < 4; ++i) { - env->cp15.sctlr_el[i] |=3D SCTLR_EE; + if (target_big_endian()) { + env->cp15.sctlr_el[1] |=3D SCTLR_E0E; + for (int i =3D 1; i < 4; ++i) { + env->cp15.sctlr_el[i] |=3D SCTLR_EE; + } + arm_rebuild_hflags(env); } - arm_rebuild_hflags(env); -#endif =20 if (cpu_isar_feature(aa64_pauth, cpu)) { qemu_guest_getrandom_nofail(&env->keys, sizeof(env->keys)); diff --git a/linux-user/aarch64/signal.c b/linux-user/aarch64/signal.c index 899fce76436c..f24fcddfec3e 100644 --- a/linux-user/aarch64/signal.c +++ b/linux-user/aarch64/signal.c @@ -208,6 +208,7 @@ static void target_setup_fpsimd_record(struct target_fp= simd_context *fpsimd, CPUARMState *env) { int i; + int big_endian =3D target_big_endian(); =20 __put_user(TARGET_FPSIMD_MAGIC, &fpsimd->head.magic); __put_user(sizeof(struct target_fpsimd_context), &fpsimd->head.size); @@ -216,13 +217,8 @@ static void target_setup_fpsimd_record(struct target_f= psimd_context *fpsimd, =20 for (i =3D 0; i < 32; i++) { uint64_t *q =3D aa64_vfp_qreg(env, i); -#if TARGET_BIG_ENDIAN - __put_user(q[0], &fpsimd->vregs[i * 2 + 1]); - __put_user(q[1], &fpsimd->vregs[i * 2]); -#else - __put_user(q[0], &fpsimd->vregs[i * 2]); - __put_user(q[1], &fpsimd->vregs[i * 2 + 1]); -#endif + __put_user(q[0], &fpsimd->vregs[i * 2 + big_endian]); + __put_user(q[1], &fpsimd->vregs[i * 2 + !big_endian]); } } =20 @@ -402,6 +398,7 @@ static void target_restore_fpsimd_record(CPUARMState *e= nv, { uint32_t fpsr, fpcr; int i; + int big_endian =3D target_big_endian(); =20 __get_user(fpsr, &fpsimd->fpsr); vfp_set_fpsr(env, fpsr); @@ -410,13 +407,8 @@ static void target_restore_fpsimd_record(CPUARMState *= env, =20 for (i =3D 0; i < 32; i++) { uint64_t *q =3D aa64_vfp_qreg(env, i); -#if TARGET_BIG_ENDIAN - __get_user(q[0], &fpsimd->vregs[i * 2 + 1]); - __get_user(q[1], &fpsimd->vregs[i * 2]); -#else - __get_user(q[0], &fpsimd->vregs[i * 2]); - __get_user(q[1], &fpsimd->vregs[i * 2 + 1]); -#endif + __get_user(q[0], &fpsimd->vregs[i * 2 + big_endian]); + __get_user(q[1], &fpsimd->vregs[i * 2 + !big_endian]); } } =20 diff --git a/target/arm/gdbstub64.c b/target/arm/gdbstub64.c index 0c3e5b30bd6a..ee6ed8296e33 100644 --- a/target/arm/gdbstub64.c +++ b/target/arm/gdbstub64.c @@ -122,8 +122,8 @@ int aarch64_gdb_set_fpu_reg(CPUState *cs, uint8_t *buf,= int reg) * On the wire these are target-endian 128 bit values. * In the CPU state these are host-order uint64_t values * with the least-significant one first. This means they're - * the other way around for target_big_endian() (which is - * only true for us for aarch64_be-linux-user). + * the other way around for target_big_endian(), which reflects + * the executable's byte order in Linux-user emulation. */ if (target_big_endian()) { q[1] =3D ldq_p(buf); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 10375577b1e0..6c4cf29238c6 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -5165,7 +5165,7 @@ void gen_sve_str(DisasContext *s, TCGv_ptr base, int = vofs, /* Note that unpredicated load/store of vector/predicate registers * are defined as a stream of bytes, which equates to little-endian * operations on larger quantities. There is no nice way to force - * a little-endian store for aarch64_be-linux-user out of line. + * a little-endian store for big-endian Linux-user guests out of line. * * Attempt to keep code expansion to a minimum by limiting the * amount of unrolling done. --=20 2.55.0 From nobody Thu Nov 12 15:08:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1794492364; cv=none; d=zohomail.com; s=zohoarc; b=BPlMQIQYeOM+wNrbpESVZ1nPAv+l77p+VYSa/1HMfB2EZW92/sjA5ksq5KpHw+YrZvC8M9o7Gh66XK1X+tadFy9OBcStkDznHMNVQkrWIxgO770/uJCKHWcJrjASMhky4Pc8YZw4iOfHiXVhGf+LRFkYm+/EZxcG2QwX8lJc+24= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1794492364; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=T+BUoXt5tn4PGluBlPDbHpmyBXj6a91GEDmrMsa5S2Q=; b=k53r6Dx/1wvhlSp/U7KUiPUoEy14ZBKDgt+gsWDA7nPpYzA0qmPGiJakwLkm4sjCsX3Mav+zlbZKfzDd5Qxiho9nsJ8dagV6k3vN84e01d1owWKgF0TNJImiqmD9NX0ypRqf1rWQ1zKm1vCYVGF+E6DMVX0ZayPDqU2mSqLS9ok= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17944923640821009.1631390987999; Thu, 12 Nov 2026 06:06:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xRVPy-0006jP-B8; Thu, 12 Nov 2026 09:04:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPa-0006Tw-KL for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:04:22 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPY-0007T7-Gh for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:04:22 -0500 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6ACAUnRn1629431 for ; Thu, 12 Nov 2026 14:04:19 GMT Received: from mail-vk1-f197.google.com (mail-vk1-f197.google.com [209.85.221.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hwbs00q61-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 12 Nov 2026 14:04:19 +0000 (GMT) Received: by mail-vk1-f197.google.com with SMTP id 71dfb90a1353d-5eabb3a1bd8so4053226e0c.0 for ; Thu, 12 Nov 2026 06:04:19 -0800 (PST) Received: from localhost.localdomain (pmd666.hd.free.fr. [82.67.153.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4bb4e271378sm81450395e9.13.2026.11.12.06.04.16 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 12 Nov 2026 06:04:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= T+BUoXt5tn4PGluBlPDbHpmyBXj6a91GEDmrMsa5S2Q=; b=d1BhGW3pLnzHBsb/ I1gqXd/YJZ9t0Wh3BE9E4fgzOJ3mfOZVaWlFNM2WISOjUfr9EIm0cuhHrkQN28MY VdsRu02wE0FrpvgC7Lyuk7CAZBRk59IsspMeGlkqQef078DhOX03KKJm9SOGd1PV t7JyL+KBrTja40tnrsbwGBs+Bx7dXElpjSWtChgITJ73InzOikLLDaCteGiWE3r6 7Er0GqkIxpiFRtfJ9McX7InDvsOZ66hfl9M8iBVHdqDj4+jiNYFDQWvUzaSxygb1 FclaBXl1aa4gH9p+wIIkJvlq7xU0643fQHAD5TFtIaUodP6hWFej9ihAVC4anBB1 bfDIBw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1794492259; x=1795097059; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=T+BUoXt5tn4PGluBlPDbHpmyBXj6a91GEDmrMsa5S2Q=; b=I1dKmjUrLwi47FzAlZpdWJDXkxxzJWNTWw9AUpep3jBjKMl/aS8iSRMsf1dpM5XcP1 p1bvXNZOKgV3E0qv45Ic72t59TOFoYqt43N15BUnMomeqyyZElqr5MXcgEIoGKuiJEKQ nutlcCHdIR6h4AhvBx0U4F1Z/uEU66At2MrWjrJiIXk96Tz1IdB88S/65PfJPgLoWE5f d+PV+b1FHtR8R1JOVI0Ex1TJBK2r8PB6KU3cORfnEmUgHifDSrMoClbkr8HfuAbL7SGp /3cTZX0Dm5Uec00+q4ttNoA9/aAmPSl2khWC1IKc/Ty4J9wMaoT2eETxX8/4lyb0GQ2+ 56ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794492259; x=1795097059; h=content-transfer-encoding:content-type: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 :content-type; bh=T+BUoXt5tn4PGluBlPDbHpmyBXj6a91GEDmrMsa5S2Q=; b=C4lLqRZU2FyzMATOk6PsrrW/yoI9Vxrle0EG3Jv0QgIIjmUeGrpzrfeAI3Qdv1Mcf1 hGQtEetPi0HNKzCNt0BiWqLwBxGp3OJBO/lfN+KTBrhIK7CJqKdJ6zvbO83+qwWzsKxn m5b52RJ5cfO1KbJyaFOtjL9csvYJRyGlJ3fNNHK12or+SX5SUKe2s9RGVIN9P3mkEsKB TIKuTfLMt9AGgSV5JKoQildBwt9NAF5+MS1yRwfTNrdI+Iahaz2+n0b0ET2/ozAeLI2n qEGEqqrX0MhYbi/5JOtQDs99fc//zTnKACLDBdnaOpZjbVGLA5EIC6uJ26qfQVEhrjmX D03g== X-Gm-Message-State: APuU4Z+sCDCH9oY3QVa/y8O15bEGiKY7SKXL4pBW0UxvPqT19a7x8dgl z9/Ftm7ANWn81OvxkfWPrVGeiROJwYCm53naVHKXN/zvO0XxoIxbRxrK1K8nlolKCLfUwHzUcX7 w3SfruwBkFWQNk9h5EX8UmFC/czjZkmFMLIN4pPhrrhZdkUWuOpVxweTQ9CIgBBxMMzpd X-Gm-Gg: AYBFou1Op6ZTduhcx3cbJ2PQmpQ9bSFEMWegKssdboUyDnoajPg4hMg2QB4akLMPoA5 UI4yZ4xonzn0iYI9IiAg58JNeXR0V4u3nAW3difYI/rZCmnkcioQbLjvM/1fgc93PeHAvxrUFYX NTo2L9A3FjQI+Mo1nC50BE6ZgdPQW3Zq+KVKeNtJi/DvTtn1aRkHpWP0YdfClVjsstmRVJb7SoH LDyitwq5IdXkYJx/XRVVV1lexUWabJeWbdADgfBSl1Sdu4R+dqLzdzX3L4wq8s0LZc3DfydEADX 5m2B1o8y9xnIwonYEM9knKzNgZZNSFDfDY6HUCaAkKLlRLiMhCafsdP1bWSmyDzpqdbmTFg6FOl UTJmm7V3cZbYGvxrBlNDqoeMYEOY/LRP1w0640zY20JW52Tv6URCx8XhX6CXC1bh1W3JHR5kNv8 4CRF7thzm9GsyS2g== X-Received: by 2002:a05:6122:512:b0:5ea:e052:2ef0 with SMTP id 71dfb90a1353d-5ee1c3ff521mr2403386e0c.9.1794492258752; Thu, 12 Nov 2026 06:04:18 -0800 (PST) X-Received: by 2002:a05:6122:512:b0:5ea:e052:2ef0 with SMTP id 71dfb90a1353d-5ee1c3ff521mr2403318e0c.9.1794492258066; Thu, 12 Nov 2026 06:04:18 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Peter Maydell , Paolo Bonzini , Laurent Vivier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Anton Johansson , devel@lists.libvirt.org, Pierrick Bouvier , qemu-arm@nongnu.org, Richard Henderson , Helge Deller , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PATCH-for-12.0 4/8] target-info: Support runtime-endian Linux-user targets Date: Thu, 12 Nov 2026 15:03:39 +0100 Message-ID: <20261112140343.61634-5-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20261112140343.61634-1-philmd@oss.qualcomm.com> References: <20261112140343.61634-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMTEyMDA1NSBTYWx0ZWRfXzP/LJmnQkypo uiJff3uv20q+6ArfPRXxb32JOBh4h/nbCKkjDVKFTyUUCwumeTdFm8TKMDqE+d8lOMkHIqanCGs 3e9inKEwfDWsHQM0T9SkXzgR5lKkikXE6qrms4z3QdZIc6aujmFK6f1av3hTX3Wl7TWdTOGtecu p6dmFNwe8sN9SQJgkVum2C1OofaW9HlKl7LguaQuobzeoLKSZPLfGkWWvgbQeLf2Az4kKQ3tbM8 7/Ft5NfpJ7m6u524pi8/wvq3JcJcP+dP7tIGXlIJQdS6CMA+R70lk6XaCF3mYaMi77IiRmItNVh mpuazRGtHyHFYDT7mzL6G3IWO37wrxf5BmxdczovW8+1ERTdC9CnLOUih1ng2/dj+r2q2TxSgqD 39YstHwvluvcvmFxFMYmAZ2FtpYATlf5u4JIXMfCHGkwuaE9rFSgxS5y7/sVa6G6wtOIfZfZCpz tXm8ZesQLyqHzn6y6JQ== X-Authority-Analysis: v=2.4 cv=AsF7T+9P c=1 sm=1 tr=0 ts=6af5c763 cx=c_pps a=JIY1xp/sjQ9K5JH4t62bdg==:117 a=nz36NW0qrpeEijYxj/H2Ew==:17 a=IkcTkHD0fZMA:10 a=zJRp6_cAMcgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=oRXqm_aVrHWTxU2XlOwA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=tNoRWFLymzeba-QzToBc:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYxMTEyMDA1NSBTYWx0ZWRfXxudc5btpce0F BOvGWCsdiVumAHFjIfTjXvfEaSFengpmoi1btq8Ivgj9VHkfiBzVZh6INSRtDxcOS9T3cPxKLIz lPeuVEu7hOPFTKkJF4WcHmJl2JT1GQg= X-Proofpoint-GUID: otSYAsU8Br7rrlfy2wdx8yHVmAgRkRId X-Proofpoint-ORIG-GUID: otSYAsU8Br7rrlfy2wdx8yHVmAgRkRId X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-11-12_01,2026-11-11_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 phishscore=0 impostorscore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2611040001 definitions=main-2611120055 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1794492366012158500 Add a write-once ABI byte-order setter for runtime-endian Linux-user targets. Expose const data to readers and inline runtime endian checks, keeping its writable initializer outside LTO. Retain immutable data and compile-time byte swapping for fixed-endian targets. Restrict TARGET_RUNTIME_ENDIAN to Linux-user configurations. Inspired-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- meson.build | 26 ++++++++++++++++++++++++-- include/exec/tswap.h | 11 +++++++---- include/qemu/target-info-def.h | 14 ++++++++++++++ include/qemu/target-info.h | 20 ++++++++++++++++++++ target-info-def.c | 19 +++++++++++++++++++ 5 files changed, 84 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build index d7bcb581c181..04cf5d77f188 100644 --- a/meson.build +++ b/meson.build @@ -3342,6 +3342,11 @@ foreach target : target_dirs =20 config_target +=3D keyval.load('configs/targets' / target + '.mak') =20 + if 'TARGET_RUNTIME_ENDIAN' in config_target + assert(target.endswith('linux-user'), + 'Runtime target endianness is only supported for Linux-user') + endif + target_kconfig =3D [] foreach sym: accelerators if sym =3D=3D 'CONFIG_TCG' or target in accelerator_targets.get(sym, [= ]) @@ -4400,8 +4405,6 @@ foreach target : target_dirs endif endif =20 - arch_srcs +=3D files('target-info-def.c') - if target_base_arch in target_arch t =3D target_arch[target_base_arch].apply(config_target, strict: false) arch_srcs +=3D t.sources() @@ -4470,6 +4473,25 @@ foreach target : target_dirs lib_deps +=3D dep.partial_dependency(compile_args: true, includes: tru= e) endforeach =20 + # Keep the writable runtime-endian definition opaque to const readers, + # as for page-vary-common.c above. + target_info =3D files('target-info-def.c') + if get_option('b_lto') and 'TARGET_RUNTIME_ENDIAN' in config_target + target_info_flags =3D ['-fno-lto'] + if get_option('cfi') + target_info_flags +=3D '-fno-sanitize=3Dcfi-icall' + endif + target_info =3D static_library('target-info-' + target, + sources: target_info + genh + config_targe= t_h[target], + dependencies: lib_deps, + include_directories: target_inc, + c_args: c_args + target_info_flags, + build_by_default: false) + objects +=3D target_info.extract_all_objects(recursive: false) + else + arch_srcs +=3D target_info + endif + lib =3D static_library('qemu-' + target, sources: arch_srcs + genh, dependencies: lib_deps, diff --git a/include/exec/tswap.h b/include/exec/tswap.h index 17ac5444544d..869619bac314 100644 --- a/include/exec/tswap.h +++ b/include/exec/tswap.h @@ -13,14 +13,17 @@ #include "hw/core/cpu.h" =20 /* - * If we're in target-specific code, we can hard-code the swapping - * condition, otherwise we have to do (slower) run-time checks. + * For fixed-endian target-specific code, hard-code the swapping condition. + * Otherwise use run-time checks. */ #ifdef COMPILING_PER_TARGET +#ifndef TARGET_RUNTIME_ENDIAN #define target_needs_bswap() (HOST_BIG_ENDIAN !=3D TARGET_BIG_ENDIAN) -#else +#endif +#endif +#ifndef target_needs_bswap #define target_needs_bswap() (HOST_BIG_ENDIAN !=3D target_big_endian()) -#endif /* COMPILING_PER_TARGET */ +#endif =20 #if defined(CONFIG_USER_ONLY) \ || !defined(TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API) diff --git a/include/qemu/target-info-def.h b/include/qemu/target-info-def.h index 8019d2c7196e..34058955edec 100644 --- a/include/qemu/target-info-def.h +++ b/include/qemu/target-info-def.h @@ -32,6 +32,20 @@ typedef struct TargetInfo { bool page_bits_vary; } TargetInfo; =20 +#ifdef COMPILING_PER_TARGET +#ifdef TARGET_RUNTIME_ENDIAN +/* + * Linux-user selects the ELF byte order before creating CPUs or guest thr= eads. + * The data is then immutable; its writable definition must stay outside L= TO. + */ +#ifdef IN_TARGET_INFO_DEF +extern TargetInfo target_info_stub; +#else +extern const TargetInfo target_info_stub; +#endif +#endif +#endif + /** * target_info: * diff --git a/include/qemu/target-info.h b/include/qemu/target-info.h index 2cd4cc5671b5..6ed4cfda8d7b 100644 --- a/include/qemu/target-info.h +++ b/include/qemu/target-info.h @@ -9,6 +9,12 @@ #ifndef QEMU_TARGET_INFO_H #define QEMU_TARGET_INFO_H =20 +#ifdef COMPILING_PER_TARGET +#ifdef TARGET_RUNTIME_ENDIAN +#include "qemu/target-info-def.h" +#endif +#endif + /** * target_name: * @@ -40,7 +46,21 @@ const char *target_cpu_type(void); * the target, so please do *not* use this function unless you know very * well what you are doing! */ +#ifdef COMPILING_PER_TARGET +#ifdef TARGET_RUNTIME_ENDIAN +static inline bool target_big_endian(void) +{ + return target_info_stub.endianness =3D=3D ENDIAN_MODE_BIG; +} + +/* Select the Linux-user ABI byte order once, before CPUs or guest threads= . */ +void target_set_big_endian(bool big_endian); +#else bool target_big_endian(void); +#endif +#else +bool target_big_endian(void); +#endif =20 /** * target_heterogeneous: diff --git a/target-info-def.c b/target-info-def.c index bcf9cfe1e437..7580993e0bb3 100644 --- a/target-info-def.c +++ b/target-info-def.c @@ -6,6 +6,8 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ =20 +#define IN_TARGET_INFO_DEF 1 + #include "qemu/osdep.h" #include "qemu/target-info.h" #include "qemu/target-info-def.h" @@ -24,7 +26,12 @@ QEMU_BUILD_BUG_ON(offsetof(ArchCPU, env) !=3D sizeof(CPU= State)); QEMU_BUILD_BUG_ON(TARGET_PAGE_BITS < TARGET_PAGE_BITS_MIN); #endif =20 +#ifdef TARGET_RUNTIME_ENDIAN +/* This writable definition must not be compiled with -flto. */ +TargetInfo target_info_stub =3D { +#else static const TargetInfo target_info_stub =3D { +#endif .target_name =3D TARGET_NAME, .target_arch =3D glue(SYS_EMU_TARGET_, TARGET_ARCH_VARIANT), .long_bits =3D TARGET_LONG_BITS, @@ -42,3 +49,15 @@ static const TargetInfo target_info_stub =3D { }; =20 target_info_init(target_info_stub) + +#ifdef TARGET_RUNTIME_ENDIAN +void target_set_big_endian(bool big_endian) +{ + static bool endian_decided; + + assert(!endian_decided); + endian_decided =3D true; + target_info_stub.endianness =3D big_endian ? ENDIAN_MODE_BIG + : ENDIAN_MODE_LITTLE; +} +#endif --=20 2.55.0 From nobody Thu Nov 12 15:08:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1794492417; cv=none; d=zohomail.com; s=zohoarc; b=nag0i5omoEZWLxZQd3JtGGqrMRm8/nzLT7b4/odd5ZApByXFwHn2GkUZDITUJBL4yVsLfDzUX5Ug2qeuJsfpS+fvvqimf+cKIquXPhpwgcv9y/aR7tQaitlZS2ngw3wGV4qIOGx0qNY2WpTTtzxzczIClp49O9JzwSe1wI6WAXc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1794492417; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=I6cWT7Mn8x4MAbwTg29BJU9C1XOGBuMHA9mfZuILgfc=; b=cbC7rf1Yyw4eLxHiwY+CXAA0t2zzfvt1SB8hV9jxua/+BhhHJgETAXQP2vhynIuQrliYjiTVuuGcluETWgr1O3F1BZl37UPyT96ZHGutTAQQri6+8rPtvaw9gBILP7XIgNGrblFf+GlSClXEpAlVmQvboLFuDas+jgQ3WC0o14c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1794492417485384.42042480108717; Thu, 12 Nov 2026 06:06:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xRVRz-00089g-5y; Thu, 12 Nov 2026 09:06:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPh-0006Yd-E4 for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:04:30 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPf-0007UI-Qy for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:04:29 -0500 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6AC9E0mZ480138 for ; Thu, 12 Nov 2026 14:04:26 GMT Received: from mail-vk1-f197.google.com (mail-vk1-f197.google.com [209.85.221.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hwan4ry9a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 12 Nov 2026 14:04:26 +0000 (GMT) Received: by mail-vk1-f197.google.com with SMTP id 71dfb90a1353d-5ee0977403bso3557335e0c.0 for ; Thu, 12 Nov 2026 06:04:26 -0800 (PST) Received: from localhost.localdomain (pmd666.hd.free.fr. [82.67.153.177]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-498366c43f4sm19843995f8f.47.2026.11.12.06.04.24 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 12 Nov 2026 06:04:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= I6cWT7Mn8x4MAbwTg29BJU9C1XOGBuMHA9mfZuILgfc=; b=Y517WP+GD61Askpv K6SjRnJqxc93e5kJeiJgWSdH0E5hCC9twwLKNUCDMrpjRcYxo6DR+ukcFPeHOfZc S/yu1hlFyksZ28W1Ng15YRqfKOa7m/SjscMfmC5cf1kSWGj85ZS10QPy10InQG9S kGRJknOv/2FUuzTG+l5q3itojal+v22sXtjR9xrV/cl5+pC/AqnuwW4c6C8ubOA4 KCdrwYAAP32+b1iDrS2/45OmqeT+jl1S7cojZJT3slQjXOW42ZIbgKJ5DS5Zk5w0 9MLDA4XMMQuKwSblvOAxale5pDMal3eaa6jfhOUVnGDtWbI+HiBxH1f1s1Jb220+ ZQB8cA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1794492266; x=1795097066; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=I6cWT7Mn8x4MAbwTg29BJU9C1XOGBuMHA9mfZuILgfc=; b=YhabHD1FRS4K61gsKrOTSkk1q2sp78nMsgF5QhW9BaNsqyGwzmekHduSCkKLDbEGHO m7TCJM34Uv/mTPLw3iw+EvQzJi83DJwDEeLcBtgYuWuMKRwkbutfo87cv41Zy9jn6mTW K4ZZ7LgNJUxLMCAXQsPk15T0WOE87UX3w1iUGMMGJC6hplUVnL2YhR8WfI8D4jZPZQPo 2C1zpwxjJrtaE/qco20z2+ZUWq7tEPbXGvmWHrQ6GRREZwttqti34b6PEXhfMIamexdX fyf6szAKCgLDIS+78vG998xPIpNqgGvx1/3f2fQOmQoIh/VB39JZ2hRyNpV+ba/+EWGG F6aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794492266; x=1795097066; h=content-transfer-encoding:content-type: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 :content-type; bh=I6cWT7Mn8x4MAbwTg29BJU9C1XOGBuMHA9mfZuILgfc=; b=iyK+oXXHST/niDSQp9zW9Tp9+V19WOjWi6f/Pqv5K7+cqlPKKqh14d2ENC/Ed+QLgN bFQx8d5rEuK/rKdia9Mu/yuNsibal/RkM0yiIxeL/nlA+FenJZisQNPC4cM/43d2nxdv sbMqIf2ci/YDohQxRKn39x3LufAMc2YfkoRYkfybecegjfxzVXgmD6pRtn6AcGi6XOBZ QNRtQ93LVk7PPFfHHNmM+09KSuwqEedTW3vDa5FPbtEzJ9i7bZhi6NKr2RZDkJMJs00f RB4GoJQg1Gdb5OoLSArcP5RX+DWIhsEd0u1V6tXanS3sN7Too9TAmAygyzJdtmMRo9cF XxoA== X-Gm-Message-State: APuU4Z9QsP1lKRds1hJsBVVsri7zGHNeNiZDjDloVVESpCVEwmzQR/xE +1AeZlIALJshsYmWWPFKVqYzjCPDdsO460iwHArWvFCfaNPS0HynI7fd2iN1jn9DOqYi5pOXfRU 8ytSMbpYftCwuYe8CiKllhNyBn5s53pOTW5WTLSn04wMT2+51TlaZ/HItVnsFXd6qCl6f X-Gm-Gg: AYBFou11ltSAYrtsQwKsxJAwDvgcc96WlpFe+aab1kDpPjrwRCNlQ3iJZ/BUO0mTzQs 40c0bl32RUwKPvCUurcUiN1naXsQNePAhrKjBt0r9XqkBs0K7tAxxbHuUtLn2Coe/WOoUf1iBaU WDdLGqwqRmnK2feh5lDcPVn008sxOTL9KEte+uutTJTiryF3/n4oms+fOS8b9WeAn5OYeAPHplT NczwIZ0iwtQ/micIl0cKx5ynpm9T1n4HdgzIZQCAMlQRL9CJUbmcrVjt7TRBCOYNgZrhyTKGisI 7BCWaULGF9KuYyrV6kdQs6pbdYd22vV9v4ervK+bR69h3CDH0VVQJRl/jKDAc/HtuLE+8ZT7Yur T2z6KfjvNW8ikHT9nE9BIML8ZuAY9zVmI3hZAUcyL8oa6R73BCRSftm5Bv2XNFuGTf2uDFAvDLl 0IkMV7LGak38jexA== X-Received: by 2002:a05:6122:3410:b0:5ea:c3bc:c567 with SMTP id 71dfb90a1353d-5ee1c424fd7mr2624283e0c.9.1794492265829; Thu, 12 Nov 2026 06:04:25 -0800 (PST) X-Received: by 2002:a05:6122:3410:b0:5ea:c3bc:c567 with SMTP id 71dfb90a1353d-5ee1c424fd7mr2624206e0c.9.1794492265318; Thu, 12 Nov 2026 06:04:25 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Peter Maydell , Paolo Bonzini , Laurent Vivier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Anton Johansson , devel@lists.libvirt.org, Pierrick Bouvier , qemu-arm@nongnu.org, Richard Henderson , Helge Deller , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-12.0 5/8] linux-user: Honor runtime byte order in ABI accesses Date: Thu, 12 Nov 2026 15:03:40 +0100 Message-ID: <20261112140343.61634-6-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20261112140343.61634-1-philmd@oss.qualcomm.com> References: <20261112140343.61634-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: ENum32MhF7fjX5UEQrYr0ocxMM3uPQqN X-Proofpoint-Spam-Info: AW1haW4tMjYxMTEyMDA1NSBTYWx0ZWRfX0JKZXJzYA3yd FQOEW1X1UHaUMyJWQp7iFNF7FBKx0+dqVi5ugC3NqZuHIh6zaKI6kLxuDVbCfRHIzmGHcrBfE8Q 3GUv8XI8vzHIskhugIqu7vC7//e8Bqk= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMTEyMDA1NSBTYWx0ZWRfX8Pd+adNZUHqy VISZsj8B0b8i1x3c47OJnTA3KGuhh2zCRaEQX+fGrf46orLYAFz4fm1/DQYZ2ova8+TtoA2G0fK 8fEBVE+r9qFBzJsbkQwXehJ0XGAVEOX43QYcD2+A4PQ+ItL+s+DpMNVGR2Hou0HiONkOWeMScO5 OFoxSL2ARyHNJ1d1Xjxib/UXaKL3dhhnlexPJjCgMOV/iBqwRkwCOXtA4FY6iUIrm9tOaejK9Ps fKPLNGb/yeEz5pBcQzz41g1i34koVRO9/nt7vUOOqo4hPGycNUCmBcoMwrgh3QnWadFFe5U1iey iqh8t7BtQN5SqyYxJOkJcMOBRXWIRfglKKTJznBXvEEWBRWSy4vVsG/Q4hOC0sfzGG3e2VaCfGr cm10X2td0ncCLtIbFh8D+xxSE746V5dlf2hDV8FAmoUavT2SrR/dMTgifqbQ/WMyd0jBugITRdj HM4QWvmgZkjVBIJwCMA== X-Proofpoint-ORIG-GUID: ENum32MhF7fjX5UEQrYr0ocxMM3uPQqN X-Authority-Analysis: v=2.4 cv=Gd+CDgXL c=1 sm=1 tr=0 ts=6af5c76a cx=c_pps a=JIY1xp/sjQ9K5JH4t62bdg==:117 a=nz36NW0qrpeEijYxj/H2Ew==:17 a=IkcTkHD0fZMA:10 a=zJRp6_cAMcgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=6Dl1BFdLVJxz0x0sNX0A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=tNoRWFLymzeba-QzToBc:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-11-12_01,2026-11-11_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 spamscore=0 clxscore=1015 malwarescore=0 phishscore=0 suspectscore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2611040001 definitions=main-2611120055 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1794492418852158500 Use the selected ABI byte order for ELF validation and core headers, user-memory accesses, signal masks and /proc/net/route conversion. Retain the fixed-endian paths for targets without runtime selection. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- linux-user/qemu.h | 17 ++++++++++++++++- linux-user/syscall_defs.h | 7 ------- linux-user/elfload.c | 6 +----- linux-user/syscall.c | 6 +++--- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/linux-user/qemu.h b/linux-user/qemu.h index ef7aed2daec6..53567a6c0363 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h @@ -254,7 +254,22 @@ static inline bool access_ok(CPUState *cpu, int type, } while (0) =20 =20 -#if TARGET_BIG_ENDIAN +#ifdef TARGET_RUNTIME_ENDIAN +# define __put_user(x, hptr) do { \ + if (target_big_endian()) { \ + __put_user_e(x, hptr, be); \ + } else { \ + __put_user_e(x, hptr, le); \ + } \ +} while (0) +# define __get_user(x, hptr) do { \ + if (target_big_endian()) { \ + __get_user_e(x, hptr, be); \ + } else { \ + __get_user_e(x, hptr, le); \ + } \ +} while (0) +#elif TARGET_BIG_ENDIAN # define __put_user(x, hptr) __put_user_e(x, hptr, be) # define __get_user(x, hptr) __get_user_e(x, hptr, be) #else diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index f5831a6baddc..c9a1853c9e90 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -462,19 +462,12 @@ typedef struct { abi_ulong sig[TARGET_NSIG_WORDS]; } target_sigset_t; =20 -#if HOST_BIG_ENDIAN !=3D TARGET_BIG_ENDIAN static inline void tswap_sigset(target_sigset_t *d, const target_sigset_t = *s) { int i; for(i =3D 0;i < TARGET_NSIG_WORDS; i++) d->sig[i] =3D tswapal(s->sig[i]); } -#else -static inline void tswap_sigset(target_sigset_t *d, const target_sigset_t = *s) -{ - *d =3D *s; -} -#endif =20 static inline void target_siginitset(target_sigset_t *d, abi_ulong set) { diff --git a/linux-user/elfload.c b/linux-user/elfload.c index c188fa03c31f..c76afb77bbdc 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -102,11 +102,7 @@ int info_is_fdpic(struct image_info *info) return info->personality =3D=3D PER_LINUX_FDPIC; } =20 -#if TARGET_BIG_ENDIAN -#define ELF_DATA ELFDATA2MSB -#else -#define ELF_DATA ELFDATA2LSB -#endif +#define ELF_DATA (target_big_endian() ? ELFDATA2MSB : ELFDATA2LSB) =20 #ifdef USE_UID16 typedef abi_ushort target_uid_t; diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 2fc61b3eabcc..9dec129e1d4f 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -8778,7 +8778,7 @@ void target_exception_dump(CPUArchState *env, const c= har *fmt, int code) =20 #include "target_proc.h" =20 -#if HOST_BIG_ENDIAN !=3D TARGET_BIG_ENDIAN || \ +#if defined(TARGET_RUNTIME_ENDIAN) || HOST_BIG_ENDIAN !=3D TARGET_BIG_ENDI= AN || \ defined(HAVE_ARCH_PROC_CPUINFO) || \ defined(HAVE_ARCH_PROC_HARDWARE) static int is_proc(const char *filename, const char *entry) @@ -8787,7 +8787,7 @@ static int is_proc(const char *filename, const char *= entry) } #endif =20 -#if HOST_BIG_ENDIAN !=3D TARGET_BIG_ENDIAN +#if defined(TARGET_RUNTIME_ENDIAN) || HOST_BIG_ENDIAN !=3D TARGET_BIG_ENDI= AN static int open_net_route(CPUArchState *cpu_env, int fd) { FILE *fp; @@ -8850,7 +8850,7 @@ static int maybe_do_fake_open(CPUArchState *cpu_env, = int dirfd, { "stat", open_self_stat, is_proc_myself }, { "auxv", open_self_auxv, is_proc_myself }, { "cmdline", open_self_cmdline, is_proc_myself }, -#if HOST_BIG_ENDIAN !=3D TARGET_BIG_ENDIAN +#if defined(TARGET_RUNTIME_ENDIAN) || HOST_BIG_ENDIAN !=3D TARGET_BIG_ENDI= AN { "/proc/net/route", open_net_route, is_proc }, #endif #if defined(HAVE_ARCH_PROC_CPUINFO) --=20 2.55.0 From nobody Thu Nov 12 15:08:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1794492374; cv=none; d=zohomail.com; s=zohoarc; b=HcqlUQaXhMAk/1wC64uRAxSO9VjBMOyMw2hxzrWuKnL9sQ58cnlDWShkGz9KyPkrEHm9BBSnmoWcmdFDfbOaEwMRiCsQYbXGh0FHBu9/KLO3ZO80Xrwy1M42skNT+XaL6UVGrWzIkj3k/Rh4pOTsrTFPXNnUsC2gCNCHOTnwmzk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1794492374; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=tvPgX6zbt550DX3PMKCkJzPcSsfzMzrq0LIQQnTkVFE=; b=g/bU1fAtGREFLVtgmqHBE6tx7rcE1/jbagyNMhPpy/Skvw5g+Wh6N1xnX0cZREaBuvdMactOswUHS2QgdR8XMfKls0DzRFXqa2m2zE0NQzSLwIF4I8qZ8RMBtMY9yKZ0X1I21bKeUIvOUbBtj/AcVeODobUpndpEKr9lqC0MbEk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1794492374077152.1849610493408; Thu, 12 Nov 2026 06:06:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xRVQc-00078J-GO; Thu, 12 Nov 2026 09:05:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPq-0006i8-Dl for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:04:39 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPo-0007VH-Lo for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:04:38 -0500 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6ACAfTJV1954234 for ; Thu, 12 Nov 2026 14:04:34 GMT Received: from mail-vk1-f198.google.com (mail-vk1-f198.google.com [209.85.221.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hwbx30p15-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 12 Nov 2026 14:04:33 +0000 (GMT) Received: by mail-vk1-f198.google.com with SMTP id 71dfb90a1353d-5c83124d530so4925264e0c.2 for ; Thu, 12 Nov 2026 06:04:33 -0800 (PST) Received: from localhost.localdomain (pmd666.hd.free.fr. [82.67.153.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4bb4e258e8dsm111259285e9.4.2026.11.12.06.04.31 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 12 Nov 2026 06:04:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= tvPgX6zbt550DX3PMKCkJzPcSsfzMzrq0LIQQnTkVFE=; b=DRlEJmlVJWeoAEAY YIXXMpeTS2nklJs9zqz1ZbfxwQ05JsisA0jptsa+lbL1ux5tv0iMLPhcBvf0G/eY O+e5OyYd2TYwJP4Z9pXr0KH+EJusNQGbzXlb536RlQbXKzD9xa2JdiiyyYz/SqJB JM4QxWo3lSsWOSGGr66VzYpHMeIh0HBFjBF2EDo0Y8HC3VqYdjAQU6WOpfEy+65E gcIAnKSK8iiTKQful3qfQ4cwUGioWC7C575HzX/PRyKyoa5C2leWY2K0GSM0ZuYq G4KmqMk035k8OtVlNg6LfkJE91sDF+kBGN7IM+f6Ea6ZDrqy9UGyy1aWJsJFqKmy M6VyIQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1794492273; x=1795097073; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=tvPgX6zbt550DX3PMKCkJzPcSsfzMzrq0LIQQnTkVFE=; b=CSBa55d7PxQI4rQX1d/94uDuFnIun1O+2O4HhFJ+mnoN3nBonrBfYolLLEdF3b+oLF 9N7j0NbZIOlqPGCDCVYccmo5RUuQZsUTEVDAquGy1qzDnHsyK6wcBDngvsVf0Fz+QU4D e4zC/NMVe+CypwPTVNdYxqPYMj5t5oKVJMV/BclOiZF0SyH73YbNOl7Bzd5+v5uMz+Xd 6FKoTqCmxB5HyZJZexI8kVL7VFEx2LXv6FDZERZ8tymIwnqMQFqvKb0Y0uDD8tHtqCjn ZO6fEWK8n3+dGQM8xNkUFTMXv7Jmy535xeIUPfOK0iZf+1a0nxcgGZnw09JLUbKwRuVz odnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794492273; x=1795097073; h=content-transfer-encoding:content-type: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 :content-type; bh=tvPgX6zbt550DX3PMKCkJzPcSsfzMzrq0LIQQnTkVFE=; b=drVNoGIoxaF+TGbEMt/LJ6Y/uCTacrkfJdV4KN/8zBRxnCTsdGgZdHNyv/x09SR1L1 kZLkgOQ1VWs/v8r//2u+EmqGQ7V3UIawlyOuuaZlRrU+aA2dk5Nx+z5p3Q2tb1TsNRdR ZHh4RtIai6FqetgDm/5sL2RFAVh7rpdTcTJHw093OFrZN23VZP3Kui3X3TM5KRS4lGp/ QlZ5KGde6vkp021n9Q24WKKKKdr1IQS9kKmmGw8i+Tna70u4YA/ycRioOXIW13K2MEUV l8Y3HDHZ1gKW3ssr1fwSpESGkqR7qKjFtMWh/3EA78nkdM614yEA6DdDNk+JeXMXBiZz v5cA== X-Gm-Message-State: APuU4Z86HqR0TuLQ8O4tr9VyuLBXJuMmg3AX+HAyK/yXXogL/1byvCCc CnTPgytZjhUjqNKKTRLPEQ+2iK8/ky0JqBXEffBZLy+r7DDXQBep+3GO8eEjIhsm8rgqyuMfFSr Jzlu2sxgEwSPJFGykIlEiIXYAQpjBt3JRH+89tNVyMzqZq1bFLc4syMUr21Q0mDMaaUEo X-Gm-Gg: AYBFou3Ufq06u+09L/EX6MfG2GcKuXDIX3ISH/6fHSQFGYERPGzg5IitImLBQ4v/ifM eOZC6Whp0gR9mFwZeLLFxCave9jZy8KygeJPgUKUfGtNOv7+bJiMVZbvIzZ+7ofB8HQvDWkdBex bErf0CzGPskfDdCJ9xzFGFmhKMdH2bUVd8nFjBXrh4auqV/4K2hhOH4nJNEfYJ7P89oLaXK04u0 0tFhMF8QFKwP1ZKk58eEsJZ+R3uK3yMn5l/vieKgPcq2KIaY/CQifJCePBkFIK6NX34iadVhI1O OXbdr0fOhd2Jkq03XuHyf50hqU3MDUe5K7FbRHCDtft2OUljkplZn5DW+g0C0I2USJ1NJeUOmkA d3bmeqzubak1UIqqNHsB9Cjz/L7GqaJvO9q10ocD47O+ZKGZ5pa7xaXI+0Hf5AiLSjhLZuhFnrw 5ZV6hRCWydfiQ/nQ== X-Received: by 2002:a05:6122:3c51:b0:5ea:a1ad:6376 with SMTP id 71dfb90a1353d-5ee1c2b5e30mr2711953e0c.1.1794492273028; Thu, 12 Nov 2026 06:04:33 -0800 (PST) X-Received: by 2002:a05:6122:3c51:b0:5ea:a1ad:6376 with SMTP id 71dfb90a1353d-5ee1c2b5e30mr2711913e0c.1.1794492272517; Thu, 12 Nov 2026 06:04:32 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Peter Maydell , Paolo Bonzini , Laurent Vivier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Anton Johansson , devel@lists.libvirt.org, Pierrick Bouvier , qemu-arm@nongnu.org, Richard Henderson , Helge Deller , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-12.0 6/8] linux-user: Select target byte order from the ELF header Date: Thu, 12 Nov 2026 15:03:41 +0100 Message-ID: <20261112140343.61634-7-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20261112140343.61634-1-philmd@oss.qualcomm.com> References: <20261112140343.61634-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=S+5MU4sP c=1 sm=1 tr=0 ts=6af5c772 cx=c_pps a=1Os3MKEOqt8YzSjcPV0cFA==:117 a=nz36NW0qrpeEijYxj/H2Ew==:17 a=IkcTkHD0fZMA:10 a=zJRp6_cAMcgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=kZLfmvQpzMa1BZTGQ20A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=hhpmQAJR8DioWGSBphRh:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMTEyMDA1NSBTYWx0ZWRfX/u4F2K2qHAtx cjOeDZUOoBVQfryXvqmPEgPJCCqmcj0fcaA8DyzcQFXtIqqyUpvt7Rg7mBaaz3AVyctL90eTq5h g0itUpyltL+lC7Rs2sXf2j0ARZhutnDC7UT1p7PPZu7PkdsG9wotNciX52iEYuiKkUbvGngvYdi nr0K5ZLfn7wSENistS/SLlh49I7kr6akzkRKGZ/sqL9/wNxHaMmly7GYcgwer2tpYUTdHfFNOnG jZ5YQpuXwxFL2sqZRvydfzi5MmMcbdN2a+/NRMTGmcLS8h2Ji7q9FrQaqWJgY07Wrp3E8AUj7v0 Kz8l/yYJNOEqDqG2JQXVUggg3T8mqZ9T+4m9QKwLOwrJWOsi02ZUnAuclpXO/PqT3Vq8Ux3FYjw CD6N/Vb3YrFDMlFx8CR7AWZlZLGYpEJ+y2zIFgG2boTP1S/mkNVtlu9hG7zBnxLPoy6/UlDYUYa tw0fXq47LNssArKhK8Q== X-Proofpoint-ORIG-GUID: Fdc2IOO8-rqcC6XD9ZkTc6jZQPZSBvfy X-Proofpoint-Spam-Info: AW1haW4tMjYxMTEyMDA1NSBTYWx0ZWRfX7FSBk7zL12ue ORrh/QQDhJ3xIyjpBdbqM4DTooAUTdMAMnRV/g1Js/yAS72dvXhiISGogxLdMnTmj4iVbVrpWMB GZjL30YF1gDxMmNpIIJmig5Gj/5dWJk= X-Proofpoint-GUID: Fdc2IOO8-rqcC6XD9ZkTc6jZQPZSBvfy X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-11-12_01,2026-11-11_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 clxscore=1015 phishscore=0 malwarescore=0 adultscore=0 spamscore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2611040001 definitions=main-2611120055 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1794492376174158500 Read EI_DATA from the executable descriptor before selecting the CPU and loading the image. This also covers binfmt open-binary execution and an explicitly selected CPU model. Reject invalid ELF byte-order encodings without using the invoked emulator name to select an ABI. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- linux-user/main.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/linux-user/main.c b/linux-user/main.c index 2f0c0a50c8a4..71718f974f6b 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -22,6 +22,7 @@ #include "qemu/units.h" #include "qemu/accel.h" #include "qemu/version.h" +#include "elf.h" #include #include #include @@ -769,6 +770,31 @@ int main(int argc, char **argv, char **envp) } } =20 +#ifdef TARGET_RUNTIME_ENDIAN + { + unsigned char ident[EI_NIDENT]; + ssize_t len =3D pread(execfd, ident, sizeof(ident), 0); + + if (len < 0) { + error_report("Error reading %s: %s", exec_path, strerror(errno= )); + exit(EXIT_FAILURE); + } + if (len =3D=3D sizeof(ident) && memcmp(ident, ELFMAG, SELFMAG) =3D= =3D 0) { + switch (ident[EI_DATA]) { + case ELFDATA2LSB: + target_set_big_endian(false); + break; + case ELFDATA2MSB: + target_set_big_endian(true); + break; + default: + error_report("%s: Invalid ELF byte order", exec_path); + exit(EXIT_FAILURE); + } + } + } +#endif + /* Resolve executable file name to full path name */ /* Keep how we started the program in exec_path, e.g. "./my_program" */ /* Store real path in real_exec_path, e.g. "/usr/local/bin/my_program"= */ --=20 2.55.0 From nobody Thu Nov 12 15:08:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1794492443; cv=none; d=zohomail.com; s=zohoarc; b=K/9Ftk8lZpZ+tT6rqaCrjCfKuIMTImrG8aDTQsaDU8Ftz0wEipTQMvoKd76vyh2PsmZHUDZfs7d9oOHFojqzhBPT689k6Tsjqt8sbv914e65xfTceqOLwd7UmkT2HukgLYCHRehe0zOw5EbPflasGfqkpuL+UphyL8mSCHTjO/A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1794492443; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Szxmyh6AHSFS/1ZMahHiUVQVJ6UFuz/SaFCJMKqS+LM=; b=hCx5dRzR7jTwYeuH/KODLeBYZWhMiA69Wz6Vm/MXHfbiC0qXW5E0vjDDWehQs0x/oLWTyRmFgbYDELJGlMrUS0L5ZcYO0b3X+cikczJRL0A/CUA5cGlYmaqkD1CAKFlwFV5rdxRydnVbkWkDEdnfg7NfjVtlV+n/uUxEC68f0t8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1794492443190580.4509683694133; Thu, 12 Nov 2026 06:07:23 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xRVSP-0000yD-I9; Thu, 12 Nov 2026 09:07:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPy-0006md-H7 for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:04:46 -0500 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVPv-0007Wj-Bk for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:04:45 -0500 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6ACBEVxf3893540 for ; Thu, 12 Nov 2026 14:04:42 GMT Received: from mail-vk1-f199.google.com (mail-vk1-f199.google.com [209.85.221.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hw6re1w6s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 12 Nov 2026 14:04:41 +0000 (GMT) Received: by mail-vk1-f199.google.com with SMTP id 71dfb90a1353d-5ecc172164aso3194717e0c.1 for ; Thu, 12 Nov 2026 06:04:41 -0800 (PST) Received: from localhost.localdomain (pmd666.hd.free.fr. [82.67.153.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4bb4e33ae5bsm66292385e9.3.2026.11.12.06.04.38 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 12 Nov 2026 06:04:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Szxmyh6AHSFS/1ZMahHiUVQVJ6UFuz/SaFCJMKqS+LM=; b=o99/An1GsIl8P5xS 7nJtTcSno6AdLHGZgJxS4Clw6g5QnQMrS7xVXre9VBq8krA6OV6Is1sRxeNclI1K NNVfGORJ394c0pai3kZsewFUEYfj6eWcXcNhoJ8TuFnzWviEEUgN/k2Pgemsx75F twrNRZBBoo3PoAGn/t8lvd526aPvM+Dr7pcBvDHPvnLP1warGWEGZ3Ncm5ZX12Gk YPuMfU5cpK0gHphvDcuV6pfADKHkD4t+vgwHjne8K0kbS0TorOneYZ9PKLU3FM7o dv0hPjQVyfaa3A8MeZ9adiBcSZM0IUREFdP0WOLuyiSW/b1H4NLTuWPnh8bgEGFa vrVX1A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1794492281; x=1795097081; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=Szxmyh6AHSFS/1ZMahHiUVQVJ6UFuz/SaFCJMKqS+LM=; b=EIHe99blfaX0KGceux+LLsF8vnYZBmsS7/lAciF3e6xRVPUTLeHJrhuRsrvxj7MC87 1sUmHyWHENX2Fl6rFyybMJs7KKwJWXudE8bwl5T2IlmEBN8ph+7iVmyTdxpjDuJX+6Kf spq0AGo18sDf7SlxriHtbTU8Wi5lsI7vqyfHVdt61j4e7jR5VvQngdtc5QiZI7sEpYFk kcLk8pyq9sl6EO7z3ATCMrv/lpy8iHaKXgP/5uGzyOVx8AnZImSMGlaDdyEvKVFSO4Nt 9g4DM1DEXixvMvhYF3VkpNULqVYH4Ae9QjFnIulDzaC2LMkV3jOhahBXXbZ/cnq4xvDF hXeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794492281; x=1795097081; h=content-transfer-encoding:content-type: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 :content-type; bh=Szxmyh6AHSFS/1ZMahHiUVQVJ6UFuz/SaFCJMKqS+LM=; b=A9/yFXeXqS2xs7t5GgcBZNXZuUNoz2wbgqjddfF+Zce2UFvb5mlpPXP7fxzWBQo48P OnPNeWkIApAEMM0kFrfeTjazpdGbEJB+08Eq+A+Tw4I43nhavwg3ryPfkQYoV/I6dmO7 CWkE7pLsQw/TJYrLpjdKzRcqWJEhhSMLNUA4HojS0/Jup/jpr8IMRJ95DA0Zblk8gETv HL2g11CrIKjGNWq1dpo8XHOD8eyqltfQqVdUK1K41k83VDUnFrRtnwzV+mGhWNLNWRe5 DvUduOs1N7Tw/hE7pXo7jvgR57agyGMv1oVARFD+QUGlIDbdGmHS0CaDCOZu80d2yMxM nM1w== X-Gm-Message-State: APuU4Z/mg1WPHQ1/sLnwdeQYzBVpVXWkCmRJxQPewEt/zqTlmSErdlv7 YUAkI0XD9mlus5g8nC8WzWbomoQ4pXNz7rq41XMzvaTf+BYZXfwWOqDtduTLmzYUtpL3ax6voHa 8rZ4z4DU4jsjMMGRlTIT4Kn5Wpbt1jzEjxIxMHtrXsIk5Z9EWSVVDDpmiVDH5B74MnJwt X-Gm-Gg: AYBFou0yNYQoZKvCs1/djgPPyTw9SZidBztfnZtYkga7kpD+NgwvYynAuqOwpjLLYp/ PH97i5vQaZZX/J5eWlTbmAq1ks8w5bPLst8Frqlx5+eiBWFpDAIVPCMQ7CLhuw/Hxoam828Lkc3 1tDHJolVz4EAFnl4bZ4adKaH/BrLe+4lqN0lgrgDaFWqkrunhVnTsFHA7No3NnW+uOC9W2Nvybm sfKWKmxy1IBLGC9adhLvKCKgGHZpWQaKOTMr0dmcmSH8iZaVRN5+KC78cpsVX14WiH1M6xL7O8E yrai5G1YAJ7mMfpLzxock2IAtJRAHFajweykc9zUFQk4Y7a0wdci2vP/9k2HapM4ELge/x3a9OT L85KsZ8wQjgZ6/olr3Sk5se3YVCMy7n+kIqOw5JOjj52fYNGu6wScP3b/v6bH9sbZXU0A1MMTLD 0= X-Received: by 2002:a05:6122:d24:b0:5ce:b65d:22c4 with SMTP id 71dfb90a1353d-5ee1c41ab4bmr2728224e0c.16.1794492280497; Thu, 12 Nov 2026 06:04:40 -0800 (PST) X-Received: by 2002:a05:6122:d24:b0:5ce:b65d:22c4 with SMTP id 71dfb90a1353d-5ee1c41ab4bmr2728154e0c.16.1794492279919; Thu, 12 Nov 2026 06:04:39 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Peter Maydell , Paolo Bonzini , Laurent Vivier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Anton Johansson , devel@lists.libvirt.org, Pierrick Bouvier , qemu-arm@nongnu.org, Richard Henderson , Helge Deller , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PATCH-for-12.0 7/8] meson: Support Linux-user executable aliases Date: Thu, 12 Nov 2026 15:03:42 +0100 Message-ID: <20261112140343.61634-8-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20261112140343.61634-1-philmd@oss.qualcomm.com> References: <20261112140343.61634-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: xTx8jZtgjW2LhrRtBgFh6r4ag5i-2y-j X-Proofpoint-GUID: xTx8jZtgjW2LhrRtBgFh6r4ag5i-2y-j X-Authority-Analysis: v=2.4 cv=NJhAaE6g c=1 sm=1 tr=0 ts=6af5c779 cx=c_pps a=+D9SDfe9YZWTjADjLiQY5g==:117 a=nz36NW0qrpeEijYxj/H2Ew==:17 a=IkcTkHD0fZMA:10 a=zJRp6_cAMcgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=zs-5URzUCjn_2RNnlE4A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=vmgOmaN-Xu0dpDh8OwbV:22 X-Proofpoint-Spam-Info: AW1haW4tMjYxMTEyMDA1NiBTYWx0ZWRfX2pRUORRV3twp QsvpLmhZLjC5Zb4LeZts3e5oQ88zSNrgYfDdDounKqtDRwqCJ8X0eB270WKO/H/b0csEN8XP4Tu BKtwPYXPbmf9H6v3PSYMGMhj8XEzAAI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMTEyMDA1NiBTYWx0ZWRfX+L97Qcu7MBgq KZqIw4fXiMBZiDVSVq5dZwx1qrNZyCxyj22U3h9rhltxdc3P3TsG54BxGWt15Ksp33P7GveIbMT FH0L/qrDWohTq05p1p8zdyfWROwLUVXsiizBMSs2WV3JepyUUf7UVGhvJsKBxDOl03Fhk58hcol lmGUxMB5LmVXFYf/swXFpVxRTCuteOteAXCeaf8uju4A81+y2lBMs5aJycr+R62aYet/nkDR8fd ehiczfqUBMvz4Yz1wdvFJ3t/hgxR8FCVK2QtJmVdAhLdcE2n9AW9DMbW5xfuiGRA+LKQDZJ4Wl4 B5R0+UCXUlyAj4Ae7fvE3bh/Smdb7bSGgQUHZT9QUHNgV9rw22J85A851UehFpgwlpQj6/9U9mZ PDmR4iJohoWdTAzYVOnDT3C1lBdZCrdpdi6TdOFJ01PLEzvfaIMIZ9z51h6cwPosLSJVZDQ4AuY PRFeKtiQPCcseP+5ElQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-11-12_01,2026-11-11_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 malwarescore=0 adultscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2611040001 definitions=main-2611120056 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1794492445305158500 Accept TARGET_USER_ALIASES in target configurations and create relative symlinks in both the build and install trees. Depend on the canonical emulator instead of linking a second binary. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- meson.build | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 04cf5d77f188..86b942640abf 100644 --- a/meson.build +++ b/meson.build @@ -3297,7 +3297,7 @@ host_kconfig =3D \ (hv_balloon ? ['CONFIG_HV_BALLOON_POSSIBLE=3Dy'] : []) + \ (have_rust ? ['CONFIG_HAVE_RUST=3Dy'] : []) =20 -ignored =3D [ 'TARGET_XML_FILES', 'TARGET_ABI_DIR' ] +ignored =3D [ 'TARGET_XML_FILES', 'TARGET_ABI_DIR', 'TARGET_USER_ALIASES' ] =20 default_targets =3D 'CONFIG_DEFAULT_TARGETS' in config_host actual_target_dirs =3D [] @@ -4580,6 +4580,17 @@ foreach target : target_dirs emulators +=3D {exe['name']: emulator} endif =20 + foreach alias : config_target.get('TARGET_USER_ALIASES', '').split() + alias_name =3D 'qemu-' + alias + custom_target(alias_name, + output: alias_name, + depends: emulator, + build_by_default: true, + command: [find_program('ln'), '-sf', exe['name'], '@OU= TPUT@']) + install_symlink(alias_name, pointing_to: exe['name'], + install_dir: get_option('bindir')) + endforeach + traceable +=3D [{ 'exe': exe['name'], 'probe-prefix': 'qemu.' + target_type + '.' + target_name, --=20 2.55.0 From nobody Thu Nov 12 15:08:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1794492407; cv=none; d=zohomail.com; s=zohoarc; b=GYKm0OQddLPdx1HflnZLjbo66MKbIBPPDPp9wOTkPafFyqsjQVCl/NHzNvgCAB4tvR+P3QYpocQSG20QirTAQSBqStfwHDC+nTpzrXfkjZyzXuWqXdbFrGKDYxKmiN70wrw4+O2+UkbjiN+UJayZB7JsXr6X8Yu/O5I9cyQf6Ng= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1794492407; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Nfa58+xfGAH+vpjjA2SMc5ddQUpesl6suSt9COV6tek=; b=eiWbKK6h/GfIe2Jpa69nh217De1HdtKI5aWKcVP+WLy3NuUQLoDldJYt2dGDJt5rjx7TTq9UzkLjOeq8+stXmSriTh/hcBT8fKfy/HAklq6pTzEilhGsqMr+6E3r4/dkUTKxlu2N8lbdtiw5ePYUUfnREtO1EOm5BEtdJ8kCn8U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1794492407673953.3647544035557; Thu, 12 Nov 2026 06:06:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xRVRi-0007u3-DZ; Thu, 12 Nov 2026 09:06:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVQ8-0006wB-Qp for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:05:04 -0500 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xRVQ2-0007Xw-U8 for qemu-devel@nongnu.org; Thu, 12 Nov 2026 09:04:53 -0500 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6AC8ucrm4149291 for ; Thu, 12 Nov 2026 14:04:49 GMT Received: from mail-ua1-f71.google.com (mail-ua1-f71.google.com [209.85.222.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hvxc63q7w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 12 Nov 2026 14:04:48 +0000 (GMT) Received: by mail-ua1-f71.google.com with SMTP id a1e0cc1a2514c-99939c0007cso820879241.0 for ; Thu, 12 Nov 2026 06:04:48 -0800 (PST) Received: from localhost.localdomain (pmd666.hd.free.fr. [82.67.153.177]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4983585923bsm17477738f8f.11.2026.11.12.06.04.45 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 12 Nov 2026 06:04:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Nfa58+xfGAH+vpjjA2SMc5ddQUpesl6suSt9COV6tek=; b=pYTeX+X7ffFAJrya jmTlGzsZZcF3ug7w0YSgs2R9VI2MwpahXXgHNCvXiop9tGJ8CRs4QtHO76qluN42 v5yGt8R9fNshOS+Yp1y4yQ7dOo0bH/StfUOrV5RPeJhdrDWtJO5uBjGX++QBelE7 RvCcGaHHNDElgCU5l3pnkOseZpBmmPd7diXBW8PEkldM9RJR+MKr0Y3d0S2a7Yz7 kddjdmfUkJtOXri1SHOKyWAbqADfRLoMd4c2ieXIu5ln2dZbVDuQOinGh9wVMsms wNLyZu8hoQevrb2dny2lNp2UJtlJehoeFFHObnn4Ke1AhucSWal/vxyL+vRypuRp 7MHDUA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1794492288; x=1795097088; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=Nfa58+xfGAH+vpjjA2SMc5ddQUpesl6suSt9COV6tek=; b=IlNjJdAjM0Vb9mHhrCm1hFCu1Ei2g7x2IRFsTD6yGobAR2q9bdemTvDJnjyMmlhz6B R3LZOYrIOMYtlWzY3Vmtk7Yojmj2MDqr7KIjjQZNaLLKOoDxVcpHkrJdfXreTXFBunik cBRDRmrYwUIR64iIWgqb3l6YBGOCXMLTr7MiMh0m6ZUxtD7v7UT7B2c1bYlARcBWh42Z cnq1MvfeMM9sPOaxAALfubZGB7sCefbAZK+DPyQ+Rk6kguTRI9abec4FtPmhgAYQml4h eex5hieTqZMIhZl8jBmAFZJqZVTDBbUM1XdJ8kJGje6X+QPtFQRlmfpiEW3FGl5kx3Wi z1kQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794492288; x=1795097088; h=content-transfer-encoding:content-type: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 :content-type; bh=Nfa58+xfGAH+vpjjA2SMc5ddQUpesl6suSt9COV6tek=; b=VdeSr+hI2HglQfhpxx7T25GE4ViLaEOxz1vr3dC8bhX6pADkWdAz4BQ7Ov01zIZgED BlnCnngp83ED87Y+FH3KXp7pi1WXUMEwLHUElxxuTwZTuM+uytxHywnDBgmXcbT646l9 tFxgdWA9rUFzBhtL0B34hDCwuS4TbAMPgc9KU4nIoPsg/oaLSF37nhfIGyw2CPj//lJT B5n5apIkQEwDIcf+zbUAxEnk1bzxMAsv5zIfLJu1PlTYyf58Vy0uLwmR7PgclTwF4H7J X/xksPtpyjRmCi9CH1DkV9bZuPmSF8EP4fx+dXBk7e+5FKUAPi3migpeZ6OvBT1IyA+Y gagQ== X-Gm-Message-State: APuU4Z/HBsJNkGP25bdLe2uSprinDA7RFhytOK7WcNpp53xkIJtdgxqZ /Ly3TIP+GnklhnCv/pA6xZxsRoGUNJpYrvGuRN9Vgoy7UAy3n+smcEL4ep3jXAhFW9QnGE9ka0n wL/NBiIkp3mTw68Zmlg9QzNq0+ZDInM+LGh9UMLqOdLdnDTZzLUOwWxkGNBHxY0yXGofK X-Gm-Gg: AYBFou3l+Y7+2GsLjjOJnwygZegG9YOz/1ClcPazGEjwxI8ADhsldYswRlitN6564je ayk9pryR+qKaHWKQGpRadgzP6bBpLO6hufl0CJ6VL6KUv8sp9XnZCqLh1JD5fybknx995LeZzNp j7Mas+hhe3iw4Ytj0pY7qvEGnkuZc3QX5aE31TosbcL8ifJOIA9MULNWTrsZlTN3snAzCTdaWQ9 JRFuVKpxcN4EUfAoZlHulJ54pAXo9eXIE65p1BqH7570DrpKQipmlh3oqnGNvWAY9kJf8CJwNSd 3UDjXDt5gL8g70jGJav25GjpTAzy7qei6D4G2OzEcNBc2pcntAcRnBe6zmGkda/cvZHd1ekhTAz icjRm6BHn+rTN0ow22knWTYERZ1MHQNvdQthRhpeSI20Bu2QNm/n8xbXU6MR1dbUQ7DvCSQhf5g Didd26n0Kv4JdvSQ== X-Received: by 2002:a05:6122:3116:b0:5e9:7c82:99ee with SMTP id 71dfb90a1353d-5ee1c3f641cmr2113581e0c.9.1794492287988; Thu, 12 Nov 2026 06:04:47 -0800 (PST) X-Received: by 2002:a05:6122:3116:b0:5e9:7c82:99ee with SMTP id 71dfb90a1353d-5ee1c3f641cmr2113516e0c.9.1794492287251; Thu, 12 Nov 2026 06:04:47 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Peter Maydell , Paolo Bonzini , Laurent Vivier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Anton Johansson , devel@lists.libvirt.org, Pierrick Bouvier , qemu-arm@nongnu.org, Richard Henderson , Helge Deller , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-12.0 8/8] linux-user/aarch64: Unify both byte orders under qemu-aarch64 Date: Thu, 12 Nov 2026 15:03:43 +0100 Message-ID: <20261112140343.61634-9-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20261112140343.61634-1-philmd@oss.qualcomm.com> References: <20261112140343.61634-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: BaquRULpq66V9HtutFM9UIhpYMCgO2HN X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMTEyMDA1NiBTYWx0ZWRfX8Z6ocRrp+jI4 la5WOYs8hYahbzhgpLFGwhlOaQRVpaiR0OB5U4rnMrDydZ3EE+ZQsbqesPi9AK2ouFTj03O0uJ8 t3FuKQpKr15ptsAn4Bw2MyD/z18pleGphoVeAyNtY5QbtqbqwwSfOvxx7Y/49i9wpCY5nxUPTIT 73Mjx3huXHFUPMgKHQZbzYkEmEnKRppSZ1Ych4y+EX42a6twsZ02TkoehiJVzCMYo7ubxntA6Cm s4TK4XsOvQSPge9tRESzAiwlIL/pgxXjewL/mbwbzg3k5I6y6HqEmjVC6owsFYtXly2TSiE6I95 CDHcA3aVSfHXZ6E3kvSycGyzSeXu97fnKBovF1D0HFW/ChBa0z6cmmZxhSU29nPLEf6T1ARX/4U Ri64QCdzxRjROhaiMl0QyH0I+lxuYrV7PQvufVdPpaoNN3VCe+viviPeEEEPgwaWORGow4deeJR 9FeTIfBLePtDrDZLwdA== X-Proofpoint-Spam-Info: AW1haW4tMjYxMTEyMDA1NiBTYWx0ZWRfXxA5bzct3ATW4 C0X2Or3GTAM6pTIP5HogmpZVyvSvuLRNHWMhMfeTMDxe7M363+LZkmQ65iRy0pdzFBm+dFveCFP MlH+77guE2tBjtBEVlJ17ogBwpT7jXA= X-Proofpoint-GUID: BaquRULpq66V9HtutFM9UIhpYMCgO2HN X-Authority-Analysis: v=2.4 cv=O/ysLx9W c=1 sm=1 tr=0 ts=6af5c780 cx=c_pps a=KB4UBwrhAZV1kjiGHFQexw==:117 a=nz36NW0qrpeEijYxj/H2Ew==:17 a=IkcTkHD0fZMA:10 a=zJRp6_cAMcgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=Nw0S1nEOTGD2y6cCEogA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=o1xkdb1NAhiiM49bd1HK:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-11-12_01,2026-11-11_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 adultscore=0 malwarescore=0 impostorscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2611040001 definitions=main-2611120056 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1794492408646158500 Enable runtime byte-order selection for aarch64-linux-user and retain qemu-aarch64_be as a compatibility symlink. Deprecate the symlink since 12.0 and recommend qemu-aarch64 for both ELF byte orders. Remove the separate aarch64_be-linux-user build target and obsolete CI exclusions. Run the existing big-endian hello test through qemu-aarch64 while retaining its big-endian fixture toolchain. Document that executable name compatibility does not preserve the removed target-list spelling. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- docs/about/deprecated.rst | 13 +++++++++++++ docs/user/main.rst | 7 +++++++ configs/targets/aarch64-linux-user.mak | 2 ++ configs/targets/aarch64_be-linux-user.mak | 10 ---------- .gitlab-ci.d/buildtest.yml | 2 +- .gitlab-ci.d/crossbuild-template.yml | 4 ++-- tests/tcg/aarch64_be/meson.build | 4 ++-- 7 files changed, 27 insertions(+), 15 deletions(-) delete mode 100644 configs/targets/aarch64_be-linux-user.mak diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 0891bbc44ded..20eb4268f640 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -438,6 +438,19 @@ It was implemented as a no-op instruction in TCG up to= QEMU 9.0, but only with ``-cpu max`` (which does not guarantee migration compatibility across versions). =20 +linux-user mode executables +--------------------------- + +.. _deprecated-qemu-aarch64-be: + +``qemu-aarch64_be`` executable name (since 12.0) +'''''''''''''''''''''''''''''''''''''''''''''''' + +The ``qemu-aarch64_be`` compatibility symlink is deprecated. +Use ``qemu-aarch64`` instead for both little- and big-endian +Linux ELF executables. The emulator selects the byte order from +the ELF header, regardless of the executable name used to invoke it. + linux-user mode CPUs -------------------- =20 diff --git a/docs/user/main.rst b/docs/user/main.rst index a8ddf9142495..9dcea8dac4d0 100644 --- a/docs/user/main.rst +++ b/docs/user/main.rst @@ -65,6 +65,13 @@ emulator. Linux User space emulator ------------------------- =20 +For AArch64, ``qemu-aarch64`` runs both little- and big-endian Linux ELF +executables, selecting the byte order from the ELF header. ``qemu-aarch64_= be`` +is a :ref:`deprecated compatibility symlink ` +to the same emulator; its name does not override the ELF byte order. +Build both names with ``--target-list=3Daarch64-linux-user``; the separate +``aarch64_be-linux-user`` build target is no longer supported. + Command line options ~~~~~~~~~~~~~~~~~~~~ =20 diff --git a/configs/targets/aarch64-linux-user.mak b/configs/targets/aarch= 64-linux-user.mak index ddfacc092ddf..efe372021ce8 100644 --- a/configs/targets/aarch64-linux-user.mak +++ b/configs/targets/aarch64-linux-user.mak @@ -1,5 +1,7 @@ TARGET_ARCH=3Daarch64 TARGET_BASE_ARCH=3Darm +TARGET_RUNTIME_ENDIAN=3Dy +TARGET_USER_ALIASES=3Daarch64_be TARGET_XML_FILES=3D aarch64-core.xml aarch64-fpu.xml aarch64-pauth.xml aar= ch64-mte.xml aarch64-sme2.xml TARGET_HAS_BFLT=3Dy CONFIG_SEMIHOSTING=3Dy diff --git a/configs/targets/aarch64_be-linux-user.mak b/configs/targets/aa= rch64_be-linux-user.mak deleted file mode 100644 index 83209fa2ae54..000000000000 --- a/configs/targets/aarch64_be-linux-user.mak +++ /dev/null @@ -1,10 +0,0 @@ -TARGET_ARCH=3Daarch64 -TARGET_BASE_ARCH=3Darm -TARGET_BIG_ENDIAN=3Dy -TARGET_XML_FILES=3D aarch64-core.xml aarch64-fpu.xml aarch64-pauth.xml aar= ch64-mte.xml aarch64-sme2.xml -TARGET_HAS_BFLT=3Dy -CONFIG_SEMIHOSTING=3Dy -CONFIG_ARM_COMPATIBLE_SEMIHOSTING=3Dy -TARGET_SYSTBL_ABI=3Dcommon,64,renameat,rlimit,memfd_secret -TARGET_SYSTBL=3Dsyscall_64.tbl -TARGET_LONG_BITS=3D64 diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml index b1e95395d0c3..a603c93cb799 100644 --- a/.gitlab-ci.d/buildtest.yml +++ b/.gitlab-ci.d/buildtest.yml @@ -451,7 +451,7 @@ clang-user: variables: IMAGE: debian-all-test-cross CONFIGURE_ARGS: --cc=3Dclang --cxx=3Dclang++ --disable-system --enable= -ubsan - --target-list-exclude=3Dalpha-linux-user,microblazeel-linux-user,aar= ch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xte= nsaeb-linux-user + --target-list-exclude=3Dalpha-linux-user,microblazeel-linux-user,i38= 6-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user --extra-cflags=3D-fno-sanitize-recover=3Dundefined MAKE_CHECK_ARGS: check-unit check-tcg =20 diff --git a/.gitlab-ci.d/crossbuild-template.yml b/.gitlab-ci.d/crossbuild= -template.yml index 94423814a751..32c11f4895b5 100644 --- a/.gitlab-ci.d/crossbuild-template.yml +++ b/.gitlab-ci.d/crossbuild-template.yml @@ -70,8 +70,8 @@ - cd build - section_start configure "Running configure" - ../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS - --disable-system --target-list-exclude=3D"aarch64_be-linux-user - alpha-linux-user m68k-linux-user microblazeel-linux-user + --disable-system --target-list-exclude=3D"alpha-linux-user + m68k-linux-user microblazeel-linux-user or1k-linux-user ppc-linux-user sparc-linux-user xtensa-linux-user $CROSS_SKIP_TARGETS" - section_end configure diff --git a/tests/tcg/aarch64_be/meson.build b/tests/tcg/aarch64_be/meson.= build index c1873cd5606c..08d29a94e702 100644 --- a/tests/tcg/aarch64_be/meson.build +++ b/tests/tcg/aarch64_be/meson.build @@ -6,7 +6,7 @@ tests +=3D { 'hello.c': {'cflags': ['-mbig-endian', '-ffreestanding', '-nostdlib']}, } =20 -if 'qemu-aarch64_be' in emulators +if 'qemu-aarch64' in emulators tcg_tests +=3D { 'aarch64_be-linux-user': { 'cc': 'aarch64-linux-gnu-gcc', @@ -14,7 +14,7 @@ if 'qemu-aarch64_be' in emulators 'cc_dockerfile': 'debian-all-test-cross', 'folder': 'aarch64_be', 'gdb_arch': 'aarch64_be', - 'qemu': emulators['qemu-aarch64_be'], + 'qemu': emulators['qemu-aarch64'], 'tests': tests, } } --=20 2.55.0