Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2219009/?format=api
{ "id": 2219009, "url": "http://patchwork.ozlabs.org/api/patches/2219009/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260402095132.29245-6-thuth@redhat.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260402095132.29245-6-thuth@redhat.com>", "list_archive_url": null, "date": "2026-04-02T09:51:27", "name": "[05/10] target/i386/cpu: Allow to limit the 64-bit binary to 32-bit mode only", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "321be7a68306308c2b2c7e882c0f7827b0eed56e", "submitter": { "id": 66152, "url": "http://patchwork.ozlabs.org/api/people/66152/?format=api", "name": "Thomas Huth", "email": "thuth@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260402095132.29245-6-thuth@redhat.com/mbox/", "series": [ { "id": 498459, "url": "http://patchwork.ozlabs.org/api/series/498459/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=498459", "date": "2026-04-02T09:51:22", "name": "Deprecate the qemu-system-i386 binary", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/498459/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2219009/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2219009/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=S520Cr0O;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fmccn5w1Xz1yGH\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 20:53:45 +1100 (AEDT)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1w8Eif-00071H-ET; Thu, 02 Apr 2026 05:52:09 -0400", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <thuth@redhat.com>) id 1w8Eid-0006yf-8z\n for qemu-devel@nongnu.org; Thu, 02 Apr 2026 05:52:07 -0400", "from us-smtp-delivery-124.mimecast.com ([170.10.133.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <thuth@redhat.com>) id 1w8Eib-0008Rj-Mk\n for qemu-devel@nongnu.org; Thu, 02 Apr 2026 05:52:07 -0400", "from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-80-vir7AfNrO3OJaPqoP7-ShQ-1; Thu,\n 02 Apr 2026 05:52:00 -0400", "from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id D01461956096; Thu, 2 Apr 2026 09:51:59 +0000 (UTC)", "from thuth-p1g4.redhat.com (unknown [10.44.34.44])\n by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id 8574719373D8; Thu, 2 Apr 2026 09:51:56 +0000 (UTC)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1775123525;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=+FNWndfStrXRe45c1QA3gdzqzvHq7VxWRyMNbGtJxVg=;\n b=S520Cr0OnOoBzHdgnhm6fcuBO7sEoz3twcKwQbLABo0kUy9ulftG0RfBX9pdeEbAZTxoik\n JabrrSPn4TD1TKzxJNTKmXDBSr9CmSJU1NGqBdGC9tl3QmTcuRkGXScNGPYzMRKLbD6uHZ\n 7BzSCvvCmmjCdHS4Ea9z9kWdXBdSHr4=", "X-MC-Unique": "vir7AfNrO3OJaPqoP7-ShQ-1", "X-Mimecast-MFC-AGG-ID": "vir7AfNrO3OJaPqoP7-ShQ_1775123519", "From": "Thomas Huth <thuth@redhat.com>", "To": "Paolo Bonzini <pbonzini@redhat.com>,\n\tqemu-devel@nongnu.org", "Cc": "Pierrick Bouvier <pierrick.bouvier@linaro.org>,\n \"Michael S. Tsirkin\" <mst@redhat.com>,\n Richard Henderson <richard.henderson@linaro.org>, =?utf-8?q?Philippe_Mathie?=\n\t=?utf-8?q?u-Daud=C3=A9?= <philmd@linaro.org>, Zhao Liu <zhao1.liu@intel.com>,\n Thomas Huth <thuth@redhat.com>", "Subject": "[PATCH 05/10] target/i386/cpu: Allow to limit the 64-bit binary to\n 32-bit mode only", "Date": "Thu, 2 Apr 2026 11:51:27 +0200", "Message-ID": "<20260402095132.29245-6-thuth@redhat.com>", "In-Reply-To": "<20260402095132.29245-1-thuth@redhat.com>", "References": "<20260402095132.29245-1-thuth@redhat.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Scanned-By": "MIMEDefang 3.0 on 10.30.177.17", "Received-SPF": "pass client-ip=170.10.133.124; envelope-from=thuth@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com", "X-Spam_score_int": "27", "X-Spam_score": "2.7", "X-Spam_bar": "++", "X-Spam_report": "(2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.54,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.01, RCVD_IN_SBL_CSS=3.335,\n RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1,\n SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no 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 <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "From: Thomas Huth <thuth@redhat.com>\n\nqemu-system-x86_64 is pretty much a proper superset of qemu-system-i386,\nso in the long run, it does not make too much sense that we continuously\nbuild two binaries here, we should deprecate the latter rather sooner\nthan later.\nHowever, some people still might want to start QEMU in a mode that limits\nthe environment to 32-bit. Thus allow qemu-system-x86_64 to run in 32-bit\nmode if the binary name ends in \"-i386\".\n\nSigned-off-by: Thomas Huth <thuth@redhat.com>\n---\n target/i386/cpu.h | 15 +++------------\n target/i386/cpu.c | 20 ++++++++++----------\n target/i386/gdbstub.c | 2 +-\n 3 files changed, 14 insertions(+), 23 deletions(-)", "diff": "diff --git a/target/i386/cpu.h b/target/i386/cpu.h\nindex 0b539155c40..9cb357aa797 100644\n--- a/target/i386/cpu.h\n+++ b/target/i386/cpu.h\n@@ -36,13 +36,8 @@\n \n #define XEN_NR_VIRQS 24\n \n-#ifdef TARGET_X86_64\n-#define I386_ELF_MACHINE EM_X86_64\n-#define ELF_MACHINE_UNAME \"x86_64\"\n-#else\n-#define I386_ELF_MACHINE EM_386\n-#define ELF_MACHINE_UNAME \"i686\"\n-#endif\n+#define I386_ELF_MACHINE (target_x86_64() ? EM_X86_64 : EM_386)\n+#define ELF_MACHINE_UNAME (target_x86_64() ? \"x86_64\" : \"i686\")\n \n enum {\n R_EAX = 0,\n@@ -277,11 +272,7 @@ typedef enum X86Seg {\n #define CR4_PKS_MASK (1U << 24)\n #define CR4_LAM_SUP_MASK (1U << 28)\n \n-#ifdef TARGET_X86_64\n-#define CR4_FRED_MASK (1ULL << 32)\n-#else\n-#define CR4_FRED_MASK 0\n-#endif\n+#define CR4_FRED_MASK (target_x86_64() ? (1ULL << 32) : 0)\n \n #define CR4_RESERVED_MASK \\\n (~(target_ulong)(CR4_VME_MASK | CR4_PVI_MASK | CR4_TSD_MASK \\\ndiff --git a/target/i386/cpu.c b/target/i386/cpu.c\nindex c6fd1dc00eb..e30d47831d6 100644\n--- a/target/i386/cpu.c\n+++ b/target/i386/cpu.c\n@@ -8094,18 +8094,18 @@ uint64_t x86_cpu_get_supported_feature_word(X86CPU *cpu, FeatureWord w)\n }\n \n switch (w) {\n-#ifndef TARGET_X86_64\n case FEAT_8000_0001_EDX:\n /*\n * 32-bit TCG can emulate 64-bit compatibility mode. If there is no\n * way for userspace to get out of its 32-bit jail, we can leave\n * the LM bit set.\n */\n- unavail = tcg_enabled()\n- ? CPUID_EXT2_LM & ~CPUID_EXT2_KERNEL_FEATURES\n- : CPUID_EXT2_LM;\n+ if (target_i386()) {\n+ unavail = tcg_enabled()\n+ ? CPUID_EXT2_LM & ~CPUID_EXT2_KERNEL_FEATURES\n+ : CPUID_EXT2_LM;\n+ }\n break;\n-#endif\n \n case FEAT_8000_0007_EBX:\n if (cpu && !IS_AMD_CPU(&cpu->env)) {\n@@ -8351,11 +8351,11 @@ static void x86_cpu_load_model(X86CPU *cpu, const X86CPUModel *model)\n \n static const gchar *x86_gdb_arch_name(CPUState *cs)\n {\n-#ifdef TARGET_X86_64\n- return \"i386:x86-64\";\n-#else\n- return \"i386\";\n-#endif\n+ if (target_x86_64()) {\n+ return \"i386:x86-64\";\n+ } else {\n+ return \"i386\";\n+ }\n }\n \n static void x86_cpu_cpudef_class_init(ObjectClass *oc, const void *data)\ndiff --git a/target/i386/gdbstub.c b/target/i386/gdbstub.c\nindex 5c5fa727216..951c443e6d2 100644\n--- a/target/i386/gdbstub.c\n+++ b/target/i386/gdbstub.c\n@@ -498,7 +498,7 @@ void x86_cpu_gdb_init(CPUState *cs)\n #ifdef TARGET_X86_64\n CPUX86State *env = &X86_CPU(cs)->env;\n \n- if (env->features[FEAT_7_1_EDX] & CPUID_7_1_EDX_APXF) {\n+ if (target_x86_64() && (env->features[FEAT_7_1_EDX] & CPUID_7_1_EDX_APXF)) {\n gdb_register_coprocessor(cs, i386_cpu_gdb_get_egprs,\n i386_cpu_gdb_set_egprs,\n gdb_find_static_feature(\"i386-64bit-apx.xml\"));\n", "prefixes": [ "05/10" ] }