Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2228028/?format=api
{ "id": 2228028, "url": "http://patchwork.ozlabs.org/api/patches/2228028/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260424230103.1579600-2-pierrick.bouvier@oss.qualcomm.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": "<20260424230103.1579600-2-pierrick.bouvier@oss.qualcomm.com>", "list_archive_url": null, "date": "2026-04-24T23:01:02", "name": "[1/2] meson.build: define stubs library per target base architecture", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "a2223dc11fddaa1dbafbf33fc46fcf7e533bb621", "submitter": { "id": 93152, "url": "http://patchwork.ozlabs.org/api/people/93152/?format=api", "name": "Pierrick Bouvier", "email": "pierrick.bouvier@oss.qualcomm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260424230103.1579600-2-pierrick.bouvier@oss.qualcomm.com/mbox/", "series": [ { "id": 501408, "url": "http://patchwork.ozlabs.org/api/series/501408/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=501408", "date": "2026-04-24T23:01:01", "name": "single-binary: add stubs for target/", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/501408/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2228028/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2228028/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 (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=hy3Ee/39;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=emBD/9B3;\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=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists1p.gnu.org (lists1p.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 4g2T4k11dqz1yHS\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 09:02:28 +1000 (AEST)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wGPWm-0000sQ-Pk; Fri, 24 Apr 2026 19:01:40 -0400", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <pierrick.bouvier@oss.qualcomm.com>)\n id 1wGPWV-0000nf-Ug\n for qemu-devel@nongnu.org; Fri, 24 Apr 2026 19:01:29 -0400", "from mx0b-0031df01.pphosted.com ([205.220.180.131])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <pierrick.bouvier@oss.qualcomm.com>)\n id 1wGPWO-0004Ym-LO\n for qemu-devel@nongnu.org; Fri, 24 Apr 2026 19:01:19 -0400", "from pps.filterd (m0279873.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63OLp1Kk3724597\n for <qemu-devel@nongnu.org>; Fri, 24 Apr 2026 23:01:15 GMT", "from mail-dy1-f199.google.com (mail-dy1-f199.google.com\n [74.125.82.199])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4drbqg19yq-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <qemu-devel@nongnu.org>; Fri, 24 Apr 2026 23:01:15 +0000 (GMT)", "by mail-dy1-f199.google.com with SMTP id\n 5a478bee46e88-2c0ba59a830so13087484eec.0\n for <qemu-devel@nongnu.org>; Fri, 24 Apr 2026 16:01:14 -0700 (PDT)", "from hu-pbouvier-lv.qualcomm.com (Global_NAT1.qualcomm.com.\n [129.46.96.20]) by smtp.gmail.com with ESMTPSA id\n 5a478bee46e88-2e53d8b944bsm34075003eec.28.2026.04.24.16.01.11\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 24 Apr 2026 16:01:11 -0700 (PDT)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n cc:content-transfer-encoding:date:from:in-reply-to:message-id\n :mime-version:references:subject:to; s=qcppdkim1; bh=1M0G2MAUiu5\n P1kUDffZ343P1Cx0BWZfKyzwGOnhMS6o=; b=hy3Ee/39OZ5+xDcgCMQKw5Q7b+s\n e0p5fHdlHMI7K2qvJLu7s8ezzmfHUMp9ffPTTtCdBqnyffiJDTaBvoA2IVtG0KR1\n ALTuRbvSXazkN/c7c6loWgS4oElc8DqELiDgnyojW35kziDFN9XVQxzuPWPSLUOg\n i+rOBW669Yhe2d5h7D+ke3i7cFyFgFSlU58BMolnhblYYrIL4UYZgZcgbK/u24Vs\n NEM9XrbpI1xYG9C+FpiWwbdLJBFk163uOk42GHSwB199zPVZV2IKxXz7FlASV8I2\n mJ4lchk5EZn2drks32JBAMEddObyE7Qji5at6Ug1ayxg/oey18l8XtxZTyw==", "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1777071673; x=1777676473; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=1M0G2MAUiu5P1kUDffZ343P1Cx0BWZfKyzwGOnhMS6o=;\n b=emBD/9B3CsAEISXNAwTlYYyqKeWbBg81kmpdIc5iUDg9v17jxjxZrDsxF5NKZCou7Z\n Y0r91PCbWGmTGZKNe5+StUMxpa4U9ZlA3VLhqVPS7nscTWu/w9nveP7N8R6j9rTtpVc9\n Yupotzyr175w7sPyNqUG1HvmzApEZ5gIR2g4wUNkd2pPQetuPEU59iGPdHyqH9B9OTmo\n N4BcT1lNBjheFNX/ycHUIuhd/Dq2kHV9B8i2sHOCYHGKeY0k8lzIltKxhJr8A/Ldl6Hn\n Z6P3GK8vAt4DRx/2XsOr3GQdLjaD3QJcZZfc3os7w6vkPcYump3VoYHhAQIfj3BiqLoh\n N6kw==" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777071673; x=1777676473;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=1M0G2MAUiu5P1kUDffZ343P1Cx0BWZfKyzwGOnhMS6o=;\n b=o3Aw0K4xR7okhT/UM9rHSyOGXpxLrhmscPQeP//ryrqEx8Ono125TyLuM9rHi4VfdE\n NCW4Ss5VCbwYhOfP79/qzVD/1hvRyVsIDvDqWuDZQNAXInq0ldWnRbhQieQxPzEI8AOC\n b/pa6+U4KuS2GyxGvrhtI0QHvyXfF5XfIf+uWdLO8EJmB+FSBOBWvANTrBYMYivZXdpL\n VvIUrpygXoVibvss3Yv2QPNlM5pgF6bY4E44BM6OCemPmckQoQw2UbIx5d7J/lA9cbZb\n A1YQNkpL85P5lXhfTIIhttojsyBiQlluZ7N9920mKXwF/bZr823Uae+0TQU1b28r6QbT\n Qlvw==", "X-Gm-Message-State": "AOJu0Ywm8pBxOhuxpk6ZEmw8cgg8/eGhSnj4MehpfVkDz0a/j2obd7Mb\n Pc7riTAZdkmQf8I2KshVf9rzp+LQ1st+FOGPtFOSSUXH0IPvDupmVm8SewfI7JUYRuWDCvvi5+x\n G9oL+ONCpUcze5r0GjvxhGXG4tE1e3s8N+gep3i3He8O37Nx9DHg59Swnb/Fxgid6gfsP", "X-Gm-Gg": "AeBDievPH5VTKMS1TuNgaxUT/GK/6Qhf54bX/gU3d4Kqv3/OTB2mID24LIXka+xsiyq\n +M8u6u9tZBHImD0HYGaVTl7btjXd9IAN+HxgJ+YCKYGVQtmkmPlexkKUlAfa3IVXU8fbmmN2/ru\n 55KKlbjIHf88kjpCrPjDUtB7pe46kqlOgVQWPvbFD33hvx9hGcF5SBqZAFBLzCa7PUWhnvNKbIQ\n HhCboP+53/k3rm61NhRKC+l92X/+erjVbt9b8rF9kplQ5N6hjGyrpdYvBvsEZQWzW0fVHyEs4/P\n TZaO/RKWmIPYFXK4lCE3p/jMgl2o5O5Q5ucQpoMLGPHA7u4sbfwePQ6wT3ZgL4r3MlBzpmn33ew\n 4lFgf22KIKmCEAwFSrFeaasag7BL3CYdLHpBoppgbMfPAiERmfSfGmEgtH6heloZBaC/UysgJRz\n FIYaLaEyL9fGkvwYvq", "X-Received": [ "by 2002:a05:7301:4288:b0:2da:2ec2:64e5 with SMTP id\n 5a478bee46e88-2e479c042b2mr12729881eec.18.1777071673053;\n Fri, 24 Apr 2026 16:01:13 -0700 (PDT)", "by 2002:a05:7301:4288:b0:2da:2ec2:64e5 with SMTP id\n 5a478bee46e88-2e479c042b2mr12729858eec.18.1777071672469;\n Fri, 24 Apr 2026 16:01:12 -0700 (PDT)" ], "From": "Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>", "To": "qemu-devel@nongnu.org", "Cc": "=?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,\n qemu-arm@nongnu.org, Richard Henderson <richard.henderson@linaro.org>,\n\t=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,\n Peter Maydell <peter.maydell@linaro.org>,\n Paolo Bonzini <pbonzini@redhat.com>,\n =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>,\n Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>", "Subject": "[PATCH 1/2] meson.build: define stubs library per target base\n architecture", "Date": "Fri, 24 Apr 2026 16:01:02 -0700", "Message-ID": "<20260424230103.1579600-2-pierrick.bouvier@oss.qualcomm.com>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20260424230103.1579600-1-pierrick.bouvier@oss.qualcomm.com>", "References": "<20260424230103.1579600-1-pierrick.bouvier@oss.qualcomm.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwNDI0MDIyNSBTYWx0ZWRfX2rdXwv5qCLxx\n Uu5+7Z8qkilLj4BHmutQ9HFas38giaLfIapjkzyg6XzwxN0/4jS02EecMFdYrMZu1tkH5odxXrg\n A4bgQunD2Zfw1XqulOV0l3FIQVrZNZfk4puAbg2RCBcbJRzQzEkQ1GIuCk872bhFCisiMDSFJCN\n w42hHtpO7esE0yEaJ2mjwX8GBBycbkzKkDL3SUojgnUe2X7g4lCgm4JDmFnzcAmd3P4PSSBuYoB\n Up+kWF1el78yCqDaVxDysFSzqZLAEBr36gncdWKxvJjmhnjKxQMGoTpYSehP3D8L/A9RnIr8qNk\n Wb9r4dkr5Sd8r3fPQafMVOrpDdYQxLwn9G6ZuarSGzIjZ5JzD1BL2COafxTD8+S472t90m/dNSr\n NJetSvqQr13i8S/1xkRT9NpjERAQKOrmEWj6KeBDPnOipZNoTQC+LaXHbAs6/BwSIEYTMFSzYNh\n QwyP+ZqJXxF6uR0DWkg==", "X-Proofpoint-GUID": "alyC2hac1NCG_BQy2Y9QZb6lULPko__m", "X-Authority-Analysis": "v=2.4 cv=DKu/JSNb c=1 sm=1 tr=0 ts=69ebf63b cx=c_pps\n a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17\n a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8\n a=vAAjUAkajoglRl0kLfkA:9 a=scEy_gLbYbu1JhEsrz4S:22", "X-Proofpoint-ORIG-GUID": "alyC2hac1NCG_BQy2Y9QZb6lULPko__m", "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-24_04,2026-04-21_02,2025-10-01_01", "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n malwarescore=0 phishscore=0 lowpriorityscore=0 adultscore=0\n priorityscore=1501 impostorscore=0 suspectscore=0 spamscore=0 clxscore=1015\n bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound\n adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000\n definitions=main-2604240225", "Received-SPF": "pass client-ip=205.220.180.131;\n envelope-from=pierrick.bouvier@oss.qualcomm.com;\n 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,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001,\n 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 <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": "QEMU stubs (from stubs folder) have a unique feature: they emulate weak\nsymbols. Weak symbols are not supported on Windows with gcc. This is\nachieved by defining a static library, so the linker can pick a file\nonly when one of its symbol is needed.\n\nThe problem is that common stubs are embedded in qemuutil, which is\ndefined and created before any target code. Thus, to benefit from the\nsame feature for target code, we need to create stub static libraries\nfor each target architecture.\n\nTo keep things simple, we declare one library per target base\narchitecture. This implies that stubs are compiled only once, and we\nchoose them to be system common files. This is not a big issue, since\nstubs definition have no specific behaviour, out of returning a default\nvalue, or stopping execution, which makes this safe to link them in user\nbinaries also.\n\nSigned-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>\n---\n meson.build | 22 +++++++++++++++++++---\n 1 file changed, 19 insertions(+), 3 deletions(-)", "diff": "diff --git a/meson.build b/meson.build\nindex 096303f021c..d5f4fe25928 100644\n--- a/meson.build\n+++ b/meson.build\n@@ -3742,6 +3742,7 @@ target_user_arch = {}\n hw_common_arch = {}\n target_common_arch = {}\n target_common_system_arch = {}\n+target_stubs_arch = {}\n \n # NOTE: the trace/ subdirectory needs the qapi_trace_events variable\n # that is filled in by qapi/.\n@@ -4147,6 +4148,7 @@ common_all = static_library('common',\n # construct common libraries per base architecture\n target_common_arch_libs = {}\n target_common_system_arch_libs = {}\n+target_stubs_arch_libs = {}\n foreach target_base_arch, config_base_arch : config_base_arch_mak\n target_inc = [include_directories('target' / target_base_arch)]\n inc = [common_user_inc + target_inc]\n@@ -4206,6 +4208,15 @@ foreach target_base_arch, config_base_arch : config_base_arch_mak\n dependencies: src.all_dependencies() + common_deps + system_deps)\n target_common_system_arch_libs += {target_base_arch: lib}\n endif\n+\n+ if target_base_arch in target_stubs_arch\n+ src = target_stubs_arch[target_base_arch]\n+ lib = static_library('stubs_' + target_base_arch,\n+ sources: src.all_sources() + genh,\n+ include_directories: inc,\n+ c_args: target_system_c_args)\n+ target_stubs_arch_libs += {target_base_arch: lib}\n+ endif\n endforeach\n \n if have_rust\n@@ -4365,6 +4376,11 @@ foreach target : target_dirs\n objects += lib.extract_objects(src.sources())\n arch_deps += src.dependencies()\n endif\n+ lib_target_stubs = []\n+ if target_base_arch in target_stubs_arch_libs\n+ lib_target_stubs = [target_stubs_arch_libs[target_base_arch]]\n+ endif\n+ target_stubs = declare_dependency(link_with: lib_target_stubs)\n \n target_specific = specific_ss.apply(config_target, strict: false)\n arch_srcs += target_specific.sources()\n@@ -4410,14 +4426,14 @@ foreach target : target_dirs\n 'name': 'qemu-system-' + target_name,\n 'win_subsystem': 'console',\n 'sources': [main_rs, files('system/main.c')],\n- 'dependencies': [sdl]\n+ 'dependencies': [sdl, target_stubs],\n }]\n if host_os == 'windows' and (sdl.found() or gtk.found())\n execs += [{\n 'name': 'qemu-system-' + target_name + 'w',\n 'win_subsystem': 'windows',\n 'sources': [main_rs, files('system/main.c')],\n- 'dependencies': [sdl]\n+ 'dependencies': [sdl, target_stubs],\n }]\n endif\n if get_option('fuzzing')\n@@ -4434,7 +4450,7 @@ foreach target : target_dirs\n 'name': 'qemu-' + target_name,\n 'win_subsystem': 'console',\n 'sources': [],\n- 'dependencies': []\n+ 'dependencies': [target_stubs]\n }]\n endif\n foreach exe: execs\n", "prefixes": [ "1/2" ] }