From nobody Mon May 13 20:55:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=none dis=none) header.from=gentoo.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1646302765898893.0671980930562; Thu, 3 Mar 2022 02:19:25 -0800 (PST) Received: from localhost ([::1]:48636 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nPiYN-0006V1-St for importer@patchew.org; Thu, 03 Mar 2022 05:19:23 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40964) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nPiXI-0005n7-0R for qemu-devel@nongnu.org; Thu, 03 Mar 2022 05:18:16 -0500 Received: from [2001:470:ea4a:1:5054:ff:fec7:86e4] (port=57239 helo=smtp.gentoo.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256) (Exim 4.90_1) (envelope-from ) id 1nPiXF-0004Z2-Ol for qemu-devel@nongnu.org; Thu, 03 Mar 2022 05:18:15 -0500 Received: (nullmailer pid 55842 invoked by uid 1000); Thu, 03 Mar 2022 10:18:06 -0000 From: =?UTF-8?q?Andreas=20K=2E=20H=C3=BCttel?= To: qemu-devel@nongnu.org Subject: [PATCH] qemu-binfmt-conf.sh: allow elf EI_ABIVERSION=1 for mips Date: Thu, 3 Mar 2022 11:17:50 +0100 Message-Id: <20220303101750.55833-1-dilfridge@gentoo.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2001:470:ea4a:1:5054:ff:fec7:86e4 (failed) 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=lists.gnu.org; Received-SPF: none client-ip=2001:470:ea4a:1:5054:ff:fec7:86e4; envelope-from=huettel@www.akhuettel.de; helo=smtp.gentoo.org X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_MED=-2.3, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Andreas=20K=2E=20H=C3=BCttel?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1646302769480100001 With the command line flag -mplt and a recent toolchain, ELF binaries generated by gcc can obtain EI_ABIVERSION=3D1, see below, which makes, e.g., gcc three-stage bootstrap in a mips-unknown-linux-gnu qemu-user chroot fail since the binfmt-misc magic does not match anymore. qemu executes these binaries just fine, so relax the mask slightly. CHOST=3Dmips-unknown-linux-gnu CFLAGS=3D"-O2 -march=3Dmips32 -mabi=3D32 -mplt -pipe" gcc-11.2, binutils-2.37, glibc-2.34 | /* | - * ELF dump of './prev-gcc/build/gengenrtl' | - * 29608 (0x73A8) bytes | + * ELF dump of './gcc/build/gengenrtl' | + * 54532 (0xD504) bytes | */ | | Elf32_Dyn dumpedelf_dyn_0[]; | struct { | Elf32_Ehdr ehdr; | Elf32_Phdr phdrs[12]; | - Elf32_Shdr shdrs[33]; | + Elf32_Shdr shdrs[44]; | Elf32_Dyn *dyns; | } dumpedelf_0 =3D { | | .ehdr =3D { | .e_ident =3D { /* (EI_NIDENT bytes) */ | /* [0] EI_MAG: */ 0x7F,'E','L','F', | /* [4] EI_CLASS: */ 1 , /* (ELFCLASS32) */ | /* [5] EI_DATA: */ 2 , /* (ELFDATA2MSB) */ | /* [6] EI_VERSION: */ 1 , /* (EV_CURRENT) */ | /* [7] EI_OSABI: */ 0 , /* (ELFOSABI_NONE) */ | - /* [8] EI_ABIVERSION: */ 0 , | + /* [8] EI_ABIVERSION: */ 1 , | /* [9-15] EI_PAD: */ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x= 0, | }, | .e_type =3D 2 , /* (ET_EXEC) */ | .e_machine =3D 8 , /* (EM_MIPS) */ | .e_version =3D 1 , /* (EV_CURRENT) */ | (...) Signed-off-by: Andreas K. H=C3=BCttel --- scripts/qemu-binfmt-conf.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh index e9bfeb94d3..2ac2226f26 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh @@ -61,7 +61,7 @@ m68k_family=3Dm68k # FIXME: We could use the other endianness on a MIPS host. =20 mips_magic=3D'\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\= x02\x00\x08' -mips_mask=3D'\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\= xff\xff\xfe\xff\xff' +mips_mask=3D'\xff\xff\xff\xff\xff\xff\xff\x00\xfe\xff\xff\xff\xff\xff\xff\= xff\xff\xfe\xff\xff' mips_family=3Dmips =20 mipsel_magic=3D'\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0= 2\x00\x08\x00' --=20 2.34.1