From patchwork Wed Apr 16 08:14:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053447 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7F01EC369B1 for ; Wed, 16 Apr 2025 08:17:41 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xvX-0000vd-Oh; Wed, 16 Apr 2025 04:15:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xvS-0000to-Fk; Wed, 16 Apr 2025 04:15:19 -0400 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xvQ-0005YT-AC; Wed, 16 Apr 2025 04:15:18 -0400 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-736b98acaadso5934088b3a.1; Wed, 16 Apr 2025 01:15:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791311; x=1745396111; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+SwF/zcvg5LcbyTBGVajfiTYVcj76iSNgPiX/V8HAlI=; b=PqSq4ZhD8aIb6cLvTxCT3dML3M6hAvh8uKlX995idnyTrlQiOerYFQQ4YPh1jXSAvY dZ676wfmq3IKHyjYOnovoH6Icbbutr2l0VknLm7NZ8jANNdyzhFV/OfKH3o1aSrcqYsm 6KHjiT4+z/otxOdz/irc/SvzVZrFIKURehhHHvMkkuAR5v6bc5hhs7hnymhXqs1r8FNk DmWeHo4aHQZrt3h2oQCXLB3SVLLXxOs8GCGCCn+dCSmy5qRTmSuC/h3h9G/kSMbVhAFh QIwyQ8+l7PENSerLKFyjkSP+MV2cb72uQLquBSYyVBllp1zzqgubbH9z5H6JyDv3n7XX JWiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791311; x=1745396111; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+SwF/zcvg5LcbyTBGVajfiTYVcj76iSNgPiX/V8HAlI=; b=sA8WfZLfUBlPaMQkAbHSH24FfsnYIwKnpHGVNLseKjBtUHs02ttQHFUEXEa+YuECu+ PoJ8tkO4iLtDY3+/MkhIzh7sLgpWDehaxb9Dg7/GHhTeGf3IzpXbc6u2cWxqj6qRnv06 IAbS8V23/Jk2AXDOF4h079PV3YmiolhXWRS4pzs7xt9WMi4JDBBn1NauBmSj6+j3PG9F PkLpoSSIHSjn2YR/4JfMOzzxe73138K0PwOQMK3kY+kMp98KvgdM/EyQ7M3RCC8WsMA9 S2hcUoTf0SkH/SJc1VApAlztpjZxsMrhFeEHDf4IXaJ5MXo8BOvVLIgE1DYpAMxRXhD8 L4zQ== X-Forwarded-Encrypted: i=1; AJvYcCUZ+8pIOwiBxkiZG2ujBB/ScSpMkDwRTA4rYRn6G6NVYDTt0YMlkZAd/XjkWdCiSj3ZHXIb+WR3Bf0hFg==@nongnu.org, AJvYcCVT0yw2eEUje4WJkd4Be6Q2L7poFnFmWpDIRV8OWWDNpA+GaaE2LBHVKPDTLf//bLxGshejITz1M2apuA==@nongnu.org, AJvYcCVWZyk2Uw/i9pjMYbJXAKh9Em8RhpL8U2PA8akQ0WdUoZFEetmNASKh1L56kMh8ozWKB/e1PxmBrYY=@nongnu.org, AJvYcCW+CgqY95kAwLlOliwpheXJaV+/+H5NRtHX7OMXVCT/e70ruSpvXB8pDioYdID3rA4a9pgNListEA==@nongnu.org X-Gm-Message-State: AOJu0Ywb9cpWaQi89bAybtUXnnFDHtrfY8DcNBo/bYI0o9m65X+IFpQC 5QwWOsUByY2jrA0F8H+ixwWhYs0mJCbGmgVY+jquEi4GiBJznALaaA16gsCa X-Gm-Gg: ASbGncs5HNLWGj1V1pfqLhuHCRwuyudDatRfB+mtKI/ezrHMSdIjZyKIuWiLfKpvQ4t Tym5aWe7J0pwoX3BYFHQ1PYc4UouwcvfqD6Z3R8me0cPNmokUZ+nZP7GgZK0KarhOWcDd87bJsB xeyn/lteVFygJHUFuhtV9KcvZQwmIawmEqKR0XowIbqLt/qoLpgMkhOWjvsjdDz2+xrScOP6XsF U/orsBjjtFxr1YoF9iTJ8cWc40cHHxJfS4pjteN/gltDyDyDAJIxq3eV1FZU4qvZKK0E/t3/yKW ZG5qdRA5IxFZOqt+/+e+ObKoqBYlR+i+H9DKb64b4BCbPHpnubHTdLsIQw== X-Google-Smtp-Source: AGHT+IFcRXS74eGqHFoObLFx38Z2SJtnXeKU/q+O9awZgeadeFbL75vkrelwK4pBvPI7MLCNBkk4gg== X-Received: by 2002:aa7:9a84:0:b0:736:46b4:beef with SMTP id d2e1a72fcca58-73c266b9c4amr1660367b3a.3.1744791311267; Wed, 16 Apr 2025 01:15:11 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.15.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:15:10 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 01/19] hw/core/loader.c: Fix type conflict of GLib function pointers Date: Wed, 16 Apr 2025 17:14:06 +0900 Message-Id: <44e9ef95ea6e8aa33560ca8580db0033623f0e91.1744787186.git.ktokunaga.mail@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42d; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On emscripten, function pointer casts can cause function call failure. This commit fixes the function definition to match to the type of the function call using g_list_sort_with_data. Signed-off-by: Kohei Tokunaga --- hw/core/loader.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/core/loader.c b/hw/core/loader.c index 2e35f0aa90..93a8b45d28 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -1410,7 +1410,7 @@ typedef struct RomSec { * work, but this way saves a little work later by avoiding * dealing with "gaps" of 0 length. */ -static gint sort_secs(gconstpointer a, gconstpointer b) +static gint sort_secs(gconstpointer a, gconstpointer b, gpointer d) { RomSec *ra = (RomSec *) a; RomSec *rb = (RomSec *) b; @@ -1463,7 +1463,7 @@ RomGap rom_find_largest_gap_between(hwaddr base, size_t size) /* sentinel */ secs = add_romsec_to_list(secs, base + size, 1); - secs = g_list_sort(secs, sort_secs); + secs = g_list_sort_with_data(secs, sort_secs, NULL); for (it = g_list_first(secs); it; it = g_list_next(it)) { cand = (RomSec *) it->data; From patchwork Wed Apr 16 08:14:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053476 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D81C2C369B1 for ; Wed, 16 Apr 2025 08:18:01 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xvd-0000yU-MA; Wed, 16 Apr 2025 04:15:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xvZ-0000x3-Qn; Wed, 16 Apr 2025 04:15:25 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xvX-0005Zk-Iy; Wed, 16 Apr 2025 04:15:25 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2240b4de12bso88138295ad.2; Wed, 16 Apr 2025 01:15:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791319; x=1745396119; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=c9Qi7tBom5Vd967CqXnYUihx6jXTbGRTUe5KQdGWTvQ=; b=SpCz4HYtCDtuC1SavBywNdwZQ95HibTWo9QtU6WQWolPvxweFfnxX+ukJgUViR0R5c EQNZO1c4F0rirB45n+RWZbMF7jzB9iZCU8dDrWtLkpdf6BSG89Y0/4hRiyAegwxZOfzA EPFXwqR4Qe7z4clIqxI0ChPdk5k67pdtucikMMP/syfdL8tpeoBoZCt7sEwb5X9+7wbk fu7ljoQ8SfeMyxwjmpopcvGvnNylGCzKEm+9r1NiPnaoAjhTISpZlRiKAr0xPXWEjDRR 8+1qCIPmqhQXmSurKJ6Fy5lsdYOQLDSVAslWkjmA0CHe6GpS0sf/BpiQcH0m03Dv24Vj D/9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791319; x=1745396119; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c9Qi7tBom5Vd967CqXnYUihx6jXTbGRTUe5KQdGWTvQ=; b=lDUmYoTXci3Qf8+zLXN64pQzEAARlfnNcLqRpD36N2mmiwD2tdh9vH2lhO3SrTg/+r vJ4NI/psf8/TkQol3sdY0JPPjDIzghw1mzutt4gJVITAL3KhL1O3SaIDSyM8fTfc7+sa t2y3efKjkCixVjMbhlr+yc8SzVXUOu8WKDIBXo48GjfBC+QBj3yuTtDV5hNVjCCSbOmp ojuYwWk9PdEXIU6e3tFzfeYV7EdCFto8r7x4eJ3PsGs3W2GF0s3/UA607K0534tCRLsY qCYcKAkQ6iFuVqGOIcgxqK0aiVgNB/8ZSlOxQ7DYMMKM6JdbW0+I5J1G4aOwOWi5t1VH 0tHA== X-Forwarded-Encrypted: i=1; AJvYcCVKo+SntgSY3gPgd9sugpEoiaPvUVwsmSBv80cxDU2MyTULPeBq0AcBejiT2I1+3f9vQLbDke0BUUyCuQ==@nongnu.org, AJvYcCVbvRrfdb3C8nRuLp3Reg/IRQtNj/Kg2MxTbbaVXVzaXGeQ+GMemmZ15+iNBGDXdw3hD8g2ch1c2Go=@nongnu.org, AJvYcCW4gy+INKNKDQPMvi+we2EJAkTeXX7jPw3u/H6JCt0cmK3b6dT2y7PHjWLqIDUpVux00ak8Z19ih+sWDg==@nongnu.org, AJvYcCW7jZw4p9mwOxuu32nyUapzuwYaG7zP0q4E0dJQ+mC9eAi7x81TzLHyqsHaMu+HkbeWbov5+cFBrw==@nongnu.org X-Gm-Message-State: AOJu0YyvI01pGya/+G+1KHQW2EypucGWUft3a8zEpZE9ehcHyPSVAtqY 8mpE45scWW2aOUmWoQwrc4yKCjrr/lVQNT6ghYu/EsAScT6SCLCRwHuqsjh/ X-Gm-Gg: ASbGncuYec8mjsP1Su4aVkE4aB4ZAOH5OhLT0In3wFfD1XtBOjEBmOpl/t/mQaNCafA MxrnJ3w3Sc2lDvmu8LqQ5BGqYmXLb9DVYzD18Vs6Ez/lRH2P/KhqW7Vk+6rIL2vceDnbsi/6AWG nvYA0p1WWGmZD/c+ZE/e2pkFk4g6lkaC5ELUulpy8+IOUFkVrB9Q0fWhyjCJVvwYOcAqHAsilRm +Duij4ntdAjfa+EphqywDUocsCcOwoBKwgDy4n8VNGUunfa6fTRjXNixwwXRFLlonWXnIwiROUo q2SrhhfQ45VCtrqdN491C6c5KijQj1LTKI8EL6WDTE7OOqeHymkVC3qG2w== X-Google-Smtp-Source: AGHT+IHs7Zf9k0205llWie78fgPTs0fh8TUGkAJGR/jHsaTgOeEs1xBeZHSl7kCo5gtKYgBFUS5wTA== X-Received: by 2002:a17:903:2302:b0:220:c86d:d7eb with SMTP id d9443c01a7336-22c3597f330mr13078545ad.36.1744791318942; Wed, 16 Apr 2025 01:15:18 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.15.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:15:18 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 02/19] qom/object.c: Fix type conflict of GLib function pointers Date: Wed, 16 Apr 2025 17:14:07 +0900 Message-Id: <9774bf5ed472be69d5a1e4cd7bbb34184ab0a202.1744787186.git.ktokunaga.mail@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::62b; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pl1-x62b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On emscripten, function pointer casts can cause function call failure. This commit fixes the function definition to match to the type of the function call using g_slist_sort_with_data. Signed-off-by: Kohei Tokunaga --- qom/object.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/qom/object.c b/qom/object.c index 01618d06bd..87f84bac41 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1191,7 +1191,7 @@ GSList *object_class_get_list(const char *implements_type, return list; } -static gint object_class_cmp(gconstpointer a, gconstpointer b) +static gint object_class_cmp(gconstpointer a, gconstpointer b, gpointer d) { return strcasecmp(object_class_get_name((ObjectClass *)a), object_class_get_name((ObjectClass *)b)); @@ -1200,8 +1200,9 @@ static gint object_class_cmp(gconstpointer a, gconstpointer b) GSList *object_class_get_list_sorted(const char *implements_type, bool include_abstract) { - return g_slist_sort(object_class_get_list(implements_type, include_abstract), - object_class_cmp); + return g_slist_sort_with_data( + object_class_get_list(implements_type, include_abstract), + object_class_cmp, NULL); } Object *object_ref(void *objptr) From patchwork Wed Apr 16 08:14:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053445 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EEF48C369C1 for ; Wed, 16 Apr 2025 08:16:54 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xwD-0001C3-0I; Wed, 16 Apr 2025 04:16:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xvf-0000zF-FV; Wed, 16 Apr 2025 04:15:31 -0400 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xvd-0005bP-O0; Wed, 16 Apr 2025 04:15:31 -0400 Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-736b34a71a1so7521893b3a.0; Wed, 16 Apr 2025 01:15:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791327; x=1745396127; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=54fvmwWjMs9r9UxnEGWRIsjHuD2f1lQSXGzb4EteMDc=; b=ejfh4lWaon5/yvWPNzCr041/ZLYHT/gbyu6fc4p0bdQYBHHUqlWFrNAdDyJps/SeYx diWjA3aW67X6VpyUcNn/69q6Gmcwkrn8NcXCkhmBAJ2Yao1WEFYnpPkkBCgyjg/EB2g9 Rvz8aLEDhQSk99wsH2yryBBP6cURW9OhFQSva5o17vjgQWwhlRSIBfqwR9/tW0BaSZlO djluD4Uq2rNVXgHAG4fVpYuOtMd3lf8FichHj2FDRQUIox8kHFVbtjKNQj5w8xK2FkdN ZQ5OXX0Y52lSgoKXUwWEBGyeU7LwKCEneaLXxcgVAUYniUb9it3FRAcvgTiA183sXCpo ugBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791327; x=1745396127; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=54fvmwWjMs9r9UxnEGWRIsjHuD2f1lQSXGzb4EteMDc=; b=ZhGnyUiipwRonzfEu/E761T1GBLSYuWgYyPbSRSvDHbop9xSj2r/MjlqqJrxBVDepn DweDi0vFtrUQMZK1CRDf+r5+VbVev1r4iaaZhxR1CFZjYsmBrValQSwKt+v+Jhare4zZ QF9YByxd3EOxtf9XaEaiYxvQhMqacp9a0WmqN4/4qxMXXwQoROm30sOWWkxMUHBdxd+4 quFxfagBhSVxf1EXWhkrCRbLMLplmxKBHPed9Q1b6vPUbcD7FNddC98FJ+K1zUkkYcng emoxR9cBFvjfPWwm8m+VjP5v81rrfwMWEUQypwnRPIdLGm7fHzr9KAIaj3Wg9BihCjL5 HhtA== X-Forwarded-Encrypted: i=1; AJvYcCUDIF7Bzu/lE/wM8nSTNdgfO+e2PIBvf/AYLgW8Fbe3BmoszGcQ1YxFevrPdlFe+EhSuIJ+IuUkV8ULHw==@nongnu.org, AJvYcCW/dcafNPuUUTj3M4jDLT342kaNNbQ43TLtLIkxHN6G4JC6DRCFda6doW9Pfpvov7iwk16BhhnAXA==@nongnu.org, AJvYcCWKSv2PHJRzJAVxN3UucgnDuTKunf6/PE4/QoZIDfAzwXj7AXdWX6M3XuRHxJQI8Mq9cwQnTcxaS4f/Ag==@nongnu.org, AJvYcCXM7zhbe4efSJImiIkBdeY0vgCSEHnUgGyh6bTOkKnFTiuMOkLHGI01w5h16S8BK9qX+MZdKmvMRYw=@nongnu.org X-Gm-Message-State: AOJu0YzsWfFLVSpJ5irOUd1fcpvUrLoCGpkNTj6AjzLFk9+LTDoytSGS UeV69pnXYgol2KHjp3nksGxC5aXtlIW/AbKnhZhw3KMFm0SGIjdWC/XtJ0df X-Gm-Gg: ASbGncuMYxhKqA86XSd3wd44EpIHBRkeSPHy3gTjmf9bc9l1UNGEr23wEClRfmQCSYX Thh0bh4Fl0EceGmz18sHsFM1+UVNVlE14sZTX3XFG8LgWPTlq9ie4N6bl3p1DbTebpUyrfuPRyL 9otqRJzpPWpu3XGEIhQERIV2/DnNyoj0itpiYaUgNy+evuBM54Td7ZG4zMq0rfF8elEf/tdWpeW 7J9qeYOJN8wjHZe8/tUE3Tv0f0XvxuBSKp46w6G1OUgZNucmRzR7wCnaCWyd70BSia51WcvVun6 qumS/+NTRFWLVrGnwH3EC6/fBs9q1nsL1A3U+9hd3ZxgIZX/zaTS3OyJd/EQCx6ujRxt X-Google-Smtp-Source: AGHT+IFsEp+s42sEcYEFipg6DWWv1zGm/h/cH9AFZLSWq7fBYiIxmgXiSE9RfWArjeKLVvHcyDiDpA== X-Received: by 2002:a05:6a00:198c:b0:736:a638:7f9e with SMTP id d2e1a72fcca58-73c26700979mr1705820b3a.8.1744791326551; Wed, 16 Apr 2025 01:15:26 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.15.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:15:25 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 03/19] system/vl.c: Fix type conflict of GLib function pointers Date: Wed, 16 Apr 2025 17:14:08 +0900 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::435; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x435.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On emscripten, function pointer casts can cause function call failure. This commit fixes the function definition to match to the type of the function call using g_slist_sort_with_data. Signed-off-by: Kohei Tokunaga --- system/vl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/vl.c b/system/vl.c index ec93988a03..8d89394b45 100644 --- a/system/vl.c +++ b/system/vl.c @@ -1523,7 +1523,7 @@ static bool debugcon_parse(const char *devname, Error **errp) return true; } -static gint machine_class_cmp(gconstpointer a, gconstpointer b) +static gint machine_class_cmp(gconstpointer a, gconstpointer b, gpointer d) { const MachineClass *mc1 = a, *mc2 = b; int res; @@ -1573,7 +1573,7 @@ static void machine_help_func(const QDict *qdict) } printf("Supported machines are:\n"); - machines = g_slist_sort(machines, machine_class_cmp); + machines = g_slist_sort_with_data(machines, machine_class_cmp, NULL); for (el = machines; el; el = el->next) { MachineClass *mc = el->data; if (mc->alias) { From patchwork Wed Apr 16 08:14:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053483 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DC451C3DA4A for ; Wed, 16 Apr 2025 08:21:47 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xwE-0001Gk-Ae; Wed, 16 Apr 2025 04:16:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xvm-00010V-Aj; Wed, 16 Apr 2025 04:15:40 -0400 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xvk-0005d1-L6; Wed, 16 Apr 2025 04:15:37 -0400 Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-7399a2dc13fso8562126b3a.2; Wed, 16 Apr 2025 01:15:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791334; x=1745396134; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fFdycMSzFipz9Zxr0ZH3h/HarCGC0DbvNHYJF0RN1dM=; b=SzMDKvvhj/1mdbuTHhao3NfMegrLrbY06gGATowELGB16UiyJDdBV76Da/BM5kOGkr qZaPp4ZwVuYVGFHXV6T4+8cCcXqsNDU9Ynb3zRWyyljg6GTxozm+lxXBAuCR4hh0G3Hr HRfUTsb/zTmMHUm5iKeePCPbnWoZ/JOD9TAAxDo/4+CU0JqQx7L2JtA95pVJZQfNYJdU +0k9kWz30fkeJR/WxnGhYhdwpReXDf15+0BIwAcZX3H44+IzbY7urQaLttBL6mUHtrS1 ufUgRe1a9XOG3L/k25BkFsyqk/kSKfjKxY9qV3dKxqguXPAqAG+5SyhiSz1nq+jdVJNo DRvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791334; x=1745396134; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fFdycMSzFipz9Zxr0ZH3h/HarCGC0DbvNHYJF0RN1dM=; b=kO3MGWKzBbqzgvEYJS/x4h9g/53hHmLQlXt4xqZnkESe/TDtNjbljYlO/YAxcYEA8l cBRpA9ku/p712fEMEEYg2jJjYPuSqJKUoD2xYHURQ6p1Y1M99RkUia4VDFciGYtpc8Gd gOcB10l38YJAruQk0vFTJrCdeiAMlNt9m4Wm0YBFEd1e/sX2lPavsQNug3+y6MC6XZGz HkSfnePvl5DXcgJCCcdQCzUf6JhXcdzlzgKW7MCXPtOROpykl2okIxFFOT7jvs8yZn33 ZVD9Hg2bHmcBPPgCEm3RyjsrAUncSxGYka3rbjwLEcDWmVNmKykh/J7Vf7yzDlMF5/1+ gCaA== X-Forwarded-Encrypted: i=1; AJvYcCU+RIKQYqvBukigMYamg8UlAYpT5fdYyQ9WVEqh0Wxq6rp8667XdfSWgMJM+6ArA8WSL5XpRpGxfZJfHQ==@nongnu.org, AJvYcCUYNzzT7ACanX56CdMY4GZStOQIZofSbpogT5ZmH/8UX0bY1O+K6PP98iikdw7dUp5rx4iBhFYqtQ==@nongnu.org, AJvYcCVrgv9H/Yb/SFRh/YKd1sisMJS0OzJLzaT5WPSmvy4A9oys2NTVdM8BiL7WykoHz0ptFI8gPpT7PV4=@nongnu.org, AJvYcCXW189ahhLfPJL+lmXfHVOUpl3w78xdfQMSMWB9KCuvhi2iE6kdCQ/+PKiey5+cgk3bUZJQeG46YwRTEg==@nongnu.org X-Gm-Message-State: AOJu0YyN0IK0uka7hTVtS5NwJZ98AsRuOvuZwczcJCebWsvFeigZm5ld k4qhe7Y84Kz59vRxA4Bk2QWG23xQxDSWWkKcnwJC7I0TJ9EkwifUEkgLxrYF X-Gm-Gg: ASbGncuR0+/vepwXkY3iWP6m8yzEiymLYVBE+74MHxN6Qtf0YFs/7CsvOnpI5lgZWqd BC8jA+Uc0oE2UXoQac78jWgPdUmKtxLq63T0uUMV8I7ZkbHBZHchicybVbjAvclskswaoFZ8kXJ oduIViX4eTp+BFdxlwMLkScx0osq1Z6I5SzmwJIH6lxv0kPgL0W9g+qxZ1LXPrZ7pmOOMT1nO3q fmlEeF7+UKLgiNdEdaWFV/1ErS+6lZOM7GJ4V0+M6dwPKARQSO07elT62Io6kF3xKrHlCvtEXJK Hwi/hi7Or392Vmq4zZCkMCEpH/2TN7OzhNYpbXiYyHQ/YjAsSB+MMWfbC2E5s/uVOnwZ X-Google-Smtp-Source: AGHT+IFJGr+vW9xLmlInModOrpRdhxEYHBP65U5/zipWn3lToz5KEXtzcMWCVlmEzka/wjvIBdQPuw== X-Received: by 2002:a05:6a00:896:b0:736:5664:53f3 with SMTP id d2e1a72fcca58-73c267d4f79mr1287060b3a.15.1744791333882; Wed, 16 Apr 2025 01:15:33 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.15.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:15:33 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 04/19] target/arm/helper.c: Fix type conflict of GLib function pointers Date: Wed, 16 Apr 2025 17:14:09 +0900 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::435; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x435.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On emscripten, function pointer casts can cause function call failure. This commit fixes the function definition to match to the type of the function call using g_list_sort_with_data. Signed-off-by: Kohei Tokunaga --- target/arm/helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index bb445e30cd..05793a6c97 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -220,7 +220,7 @@ static void count_cpreg(gpointer key, gpointer opaque) } } -static gint cpreg_key_compare(gconstpointer a, gconstpointer b) +static gint cpreg_key_compare(gconstpointer a, gconstpointer b, void *d) { uint64_t aidx = cpreg_to_kvm_id((uintptr_t)a); uint64_t bidx = cpreg_to_kvm_id((uintptr_t)b); @@ -244,7 +244,7 @@ void init_cpreg_list(ARMCPU *cpu) int arraylen; keys = g_hash_table_get_keys(cpu->cp_regs); - keys = g_list_sort(keys, cpreg_key_compare); + keys = g_list_sort_with_data(keys, cpreg_key_compare, NULL); cpu->cpreg_array_len = 0; From patchwork Wed Apr 16 08:14:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053444 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DB0D9C369BA for ; Wed, 16 Apr 2025 08:16:52 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xwL-0001YC-Cp; Wed, 16 Apr 2025 04:16:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xw0-00012k-TZ; Wed, 16 Apr 2025 04:16:00 -0400 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xvt-0005fn-Qg; Wed, 16 Apr 2025 04:15:50 -0400 Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-736ab1c43c4so5947718b3a.1; Wed, 16 Apr 2025 01:15:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791341; x=1745396141; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WpJvxCQGaFnF6HY7NcaQ25KSvKw9uO9sC1x3AjQFOq0=; b=WsXJpWl7bfdeyN8nMABcUNYxoiU85xAqlrsyRgZXeY8gctRWBKKqs25skkGq2TAN0Y iYvR2EdmjSPKeooHUofLRIu5r2Qb6fLF/VC4Q3u5P+OuevE4QLdONKVqekN5BA3Z2mcw rOeIHUdr8+7ITgM8/Qq2Tvp0Yfxcz3w7BSkMOFfTzgGAKqQFqUP+xoWP4VDZSIfcFGwy 707e6xJzUmtZQJcUvW26sm3Ezv9tNcDfz94lCeSzyv1OWPq2EtpNbJFsmy8u8zIywZEP tgONpfwtNJKH83Cmsbl6eTEdBE25axWJW5KS0KiuhWamMGdGlxkvGucFEeKPcI2q+6QO k3/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791341; x=1745396141; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WpJvxCQGaFnF6HY7NcaQ25KSvKw9uO9sC1x3AjQFOq0=; b=rPJT2mhKWJtMkvXnNX0b9041aB9opR0Gfnsou9bOYQXfBFBSsC8vkLjgk3H69HPbgN vNZ9IuT8jYIBVxQacBGThwtJJbHv9bWUAc4vqyjzRwz6DtAEiiommIqtMxP+x9YskuYM q0xfAAKbuELeyOuK2oZkwAC1AQHiyfCJ4mn9QS3767pfIyn5bKsINBLGEfqjf7KrwAKo 0ZGtFMslktEiKOcjOQpOSic0yce8jphjwWBN3OLk2fPEwZikpgENuHyyuewWN9169/uh onM4xw87CNdrowMfhM0L+iqV1Vu8cFfGUs0sKP0CmwN5IEQww8hDOwuaUezNBKaNKkEU mShQ== X-Forwarded-Encrypted: i=1; AJvYcCU4i1pJz+EMb5v0TOTm/GXu2QvnuoAu5qwQ5cKHAYK4gBP/q6QiXQOs3sv19tr035p8Yyfa6nR53yTdZg==@nongnu.org, AJvYcCUzj7WS73Og2li/1P0EpXNw2i8/8aooNtaJkSGB8F0fwARpl5xznjPcpA7uLihDyu+ZQaQ3TCoGEydo+Q==@nongnu.org, AJvYcCWgGnPGd+LUKQNNU+KhjrnOCj5rzgsCuWHYrpeTzhxJWSsZgZ+/rui2H2wuXpTuqn9As7c/JE7hMiM=@nongnu.org, AJvYcCXlvMfwH/qjs/GD4EKlozius1KD4nxJHXXjRtj0tNC94DluBSZ/Vq0uSIk6IJAbRvP5Tm19fT4wpQ==@nongnu.org X-Gm-Message-State: AOJu0YwDmE/DlcnJ5Qc6BMSWesah2IkdugJ11zQaRfHR4sQGTxDKijCF w1WAOpbaHxjwqZKn/xNF9OmuASBrsayIZNEMuD7MJZr44qCZ7/FtkC7qITzC X-Gm-Gg: ASbGnct4SEUZHFnZZSpc3WmB61YwXbK8v7Nudw2fbfGxbXGVEOa467LaIGuyfTKd6Cb d5h0wmEkYzFRlXWxlO2VE/yMpPULoWgDESoAcxrfjPuA2D6Kamx158veEgOIQH10/+6Ta0Rxomj uqHn18LD/EH8icLerNlb+sv19y4E6fARj51JGFqnYhhmgEkMF87t0yUyGobhA+IrC+jWObgi99h jddow5Zhj7cHLKNz8rWjE4KdpG6pUIR60CI2PYgAWZKksZhZzCGezjkrX6rx/J/OWJetvUH4S6t ImYzYwwSe/syELxxPk6CQqt9FPCr/TMP/JnjOYkYDyZuzz14ApNKCCcmJg== X-Google-Smtp-Source: AGHT+IGxLpFGOdeLk9mPFSkfHfbJw8A0iENnrM/+hSulZm4CxoTeH4oVbmxYU8fUDsz6zRCOaAXueA== X-Received: by 2002:a05:6a21:670d:b0:1f5:60ce:6cc6 with SMTP id adf61e73a8af0-203b3eed04emr1324160637.21.1744791341546; Wed, 16 Apr 2025 01:15:41 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.15.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:15:40 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 05/19] target/i386/cpu.c: Fix type conflict of GLib function pointers Date: Wed, 16 Apr 2025 17:14:10 +0900 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::430; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x430.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On emscripten, function pointer casts can cause function call failure. This commit fixes the function definition to match to the type of the function call using g_list_sort_with_data and g_slist_sort_with_data. Signed-off-by: Kohei Tokunaga --- target/i386/cpu.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 1b64ceaaba..2c494e4b0b 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -6226,7 +6226,7 @@ static void listflags(GList *features) } /* Sort alphabetically by type name, respecting X86CPUClass::ordering. */ -static gint x86_cpu_list_compare(gconstpointer a, gconstpointer b) +static gint x86_cpu_list_compare(gconstpointer a, gconstpointer b, gpointer d) { ObjectClass *class_a = (ObjectClass *)a; ObjectClass *class_b = (ObjectClass *)b; @@ -6247,7 +6247,7 @@ static gint x86_cpu_list_compare(gconstpointer a, gconstpointer b) static GSList *get_sorted_cpu_model_list(void) { GSList *list = object_class_get_list(TYPE_X86_CPU, false); - list = g_slist_sort(list, x86_cpu_list_compare); + list = g_slist_sort_with_data(list, x86_cpu_list_compare, NULL); return list; } @@ -6304,6 +6304,11 @@ static void x86_cpu_list_entry(gpointer data, gpointer user_data) qemu_printf(" %-20s %s\n", name, desc); } +static gint strcmp_wrap(gconstpointer a, gconstpointer b, gpointer d) +{ + return strcmp(a, b); +} + /* list available CPU models and flags */ void x86_cpu_list(void) { @@ -6326,7 +6331,7 @@ void x86_cpu_list(void) } } - names = g_list_sort(names, (GCompareFunc)strcmp); + names = g_list_sort_with_data(names, strcmp_wrap, NULL); qemu_printf("\nRecognized CPUID flags:\n"); listflags(names); From patchwork Wed Apr 16 08:14:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053478 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 07EC6C369BA for ; Wed, 16 Apr 2025 08:18:33 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xwL-0001YB-Cd; Wed, 16 Apr 2025 04:16:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xw5-0001AK-P6; Wed, 16 Apr 2025 04:16:00 -0400 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xw1-0005k5-4i; Wed, 16 Apr 2025 04:15:55 -0400 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-7399838db7fso483745b3a.0; Wed, 16 Apr 2025 01:15:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791349; x=1745396149; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YLS6yLiQ1Mf5QnPvZYo55MhWKQTC2OarW9pme0RmkFs=; b=MSeMwibloTewYe2zzBBua1hCOPpWwaurWlMve0YBztL4q0AM5xNm4i8o4PFh2zosHC L/QXJ9aVjpjK6rceHA8LRfqGHtp8GomG2O9sXFP4CCJSt68ZWPEdw0vR6SxD+DD083Qo kUf4C++tG4kdCpoG4Cvs93yXqZxgitbiqXE++fJtzGAgTnMgdDuPpLCTr42LOcQMuh/8 DaEQogQDszWUBzihqE9s+AsUtvZpvFRXpX6KmO80pj8Y9ZQl1EV8CpdVNoKwrRqqLLE1 6DndxTAkAuJeN+CGNNH3nvKL/29x9YTqKI2zqx37dxf3Rw+oTSu6abiSMdnNzdH+WV3T aDIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791349; x=1745396149; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YLS6yLiQ1Mf5QnPvZYo55MhWKQTC2OarW9pme0RmkFs=; b=otwHn056gIoVgOITeutPkMVEglxDaqAPhuAZYpRbbX2X1uZB8E6nit655CguOE3Odr IDpoKyl35g8iC24pz8wMJNaf27ggExc9Va3IOkl0XSkk2/B4E1NdVuhvf5qBz2CmWAdl DEsNWyEM5qg9vPoU++yfJUofuV7/p7Hz+/rQZK+dKzqpNtuMVWYvrDIM4oda0mk0JA/2 qbR14dyssK4Lk8Q36zBCrCQklO0WuZhs5xzZs569V1kO39o+Jv57b7EJSrwtCrba/y4L XN6V8XrxVNiPCF74Ug1hxbyRG3/NsSv0gYAvcBOG6HHGwz2ZErJwOi5vWuCl5qRjjfts 4K5g== X-Forwarded-Encrypted: i=1; AJvYcCUozKNfnxbhO1JuCiCAT9d/QaWMnJhP+SpyBJPsb35m7+X8nc+Qqgs4Ck7Jwj6yWFmdxSoqwNQETFqBCA==@nongnu.org, AJvYcCVx5c9kmPpEDgXep+8N7RVuhWbinJD1SiZWO7vBUzw4f2P83IB2ASq9eAiAAxCOrf+UTDBzF0rGxjs=@nongnu.org, AJvYcCX2bFpSk10AIC0aqhanOAiWa2lEQTDEAQN2VnCLzt1bAR41H46FlOPrdM70S7SzP8m5zIvF2wwnNjNJ2Q==@nongnu.org, AJvYcCXkD8qmyotbP9zGmMK/nf6yjuZ8NdhYbTNXfIhX2XmnUOhIaCL6Dr7ZyXcO0S/eDJK9YAEdPFy2cQ==@nongnu.org X-Gm-Message-State: AOJu0YyEnvu04AiRGsqf7ERleCnPoVkaQkL0IYySbAdlJAVjjEI0DxQs MTk0Gf+sBfkCo5F0ZvuEJxGxWQKmlGfpUidDBKY7jZjlR1z4kEBP+gzZ+7Vb X-Gm-Gg: ASbGncu0p0wHBuuAZKwvMPggsr82v9zGjRIKHf1fQSrz8380oycuHhYGkXq2iSgvB8N E8/Zc/tRXzZ7yv7w8fb6vJlMIfu/fAD4o9z11g7/M+e8+qyUjvGZsV1xgPLKTtyvxfBYepxSm2t 1tlmDD5sLPBNJzqHK+xd9/iFr4fwd+MfIdy+gQLPsfEFY2XmYSfbuCUI8prVf1t1N0kmhzkEfP4 hpWnH2Gi4X795fxkbG6rkO12Qa0EdttX6B9CJl74LJJDKA9JCXKaYLWiG8OzxELx2fSRFPeqEnS miBsIwg5N1Dfi3iyr2YjFKJN1JFpWP/I68ta07n90awZv/LCH/zGZdHUKg== X-Google-Smtp-Source: AGHT+IENMKjfdhGzf7kqBp8NXUGixVOGLTQfJgHI0y0GI+HSpVK6nMqsODrZOEyt9kh+1JN/MlNNWA== X-Received: by 2002:a05:6a00:4644:b0:730:9637:b2ff with SMTP id d2e1a72fcca58-73c26e06d63mr1106371b3a.7.1744791349159; Wed, 16 Apr 2025 01:15:49 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.15.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:15:48 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 06/19] contrib/plugins: Fix type conflict of GLib function pointers Date: Wed, 16 Apr 2025 17:14:11 +0900 Message-Id: <7f24174c2659cc61b29e707686ceb9c58833e93b.1744787186.git.ktokunaga.mail@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42d; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On emscripten, function pointer casts can cause function call failure. This commit fixes the function definition to match to the type of the function call using g_list_sort_with_data. Signed-off-by: Kohei Tokunaga --- contrib/plugins/cache.c | 12 ++++++------ contrib/plugins/cflow.c | 10 +++++----- contrib/plugins/hotblocks.c | 4 ++-- contrib/plugins/hotpages.c | 4 ++-- contrib/plugins/howvec.c | 4 ++-- contrib/plugins/hwprofile.c | 8 ++++---- tests/tcg/plugins/mem.c | 4 ++-- tests/tcg/plugins/syscall.c | 4 ++-- 8 files changed, 25 insertions(+), 25 deletions(-) diff --git a/contrib/plugins/cache.c b/contrib/plugins/cache.c index 7cfd3df249..56508587d3 100644 --- a/contrib/plugins/cache.c +++ b/contrib/plugins/cache.c @@ -576,7 +576,7 @@ static void sum_stats(void) } } -static int dcmp(gconstpointer a, gconstpointer b) +static int dcmp(gconstpointer a, gconstpointer b, gpointer d) { InsnData *insn_a = (InsnData *) a; InsnData *insn_b = (InsnData *) b; @@ -584,7 +584,7 @@ static int dcmp(gconstpointer a, gconstpointer b) return insn_a->l1_dmisses < insn_b->l1_dmisses ? 1 : -1; } -static int icmp(gconstpointer a, gconstpointer b) +static int icmp(gconstpointer a, gconstpointer b, gpointer d) { InsnData *insn_a = (InsnData *) a; InsnData *insn_b = (InsnData *) b; @@ -592,7 +592,7 @@ static int icmp(gconstpointer a, gconstpointer b) return insn_a->l1_imisses < insn_b->l1_imisses ? 1 : -1; } -static int l2_cmp(gconstpointer a, gconstpointer b) +static int l2_cmp(gconstpointer a, gconstpointer b, gpointer d) { InsnData *insn_a = (InsnData *) a; InsnData *insn_b = (InsnData *) b; @@ -645,7 +645,7 @@ static void log_top_insns(void) InsnData *insn; miss_insns = g_hash_table_get_values(miss_ht); - miss_insns = g_list_sort(miss_insns, dcmp); + miss_insns = g_list_sort_with_data(miss_insns, dcmp, NULL); g_autoptr(GString) rep = g_string_new(""); g_string_append_printf(rep, "%s", "address, data misses, instruction\n"); @@ -659,7 +659,7 @@ static void log_top_insns(void) insn->l1_dmisses, insn->disas_str); } - miss_insns = g_list_sort(miss_insns, icmp); + miss_insns = g_list_sort_with_data(miss_insns, icmp, NULL); g_string_append_printf(rep, "%s", "\naddress, fetch misses, instruction\n"); for (curr = miss_insns, i = 0; curr && i < limit; i++, curr = curr->next) { @@ -676,7 +676,7 @@ static void log_top_insns(void) goto finish; } - miss_insns = g_list_sort(miss_insns, l2_cmp); + miss_insns = g_list_sort_with_data(miss_insns, l2_cmp, NULL); g_string_append_printf(rep, "%s", "\naddress, L2 misses, instruction\n"); for (curr = miss_insns, i = 0; curr && i < limit; i++, curr = curr->next) { diff --git a/contrib/plugins/cflow.c b/contrib/plugins/cflow.c index 930ecb46fc..b5e33f25f9 100644 --- a/contrib/plugins/cflow.c +++ b/contrib/plugins/cflow.c @@ -98,7 +98,7 @@ static GHashTable *nodes; struct qemu_plugin_scoreboard *state; /* SORT_HOTTEST */ -static gint hottest(gconstpointer a, gconstpointer b) +static gint hottest(gconstpointer a, gconstpointer b, gpointer d) { NodeData *na = (NodeData *) a; NodeData *nb = (NodeData *) b; @@ -107,7 +107,7 @@ static gint hottest(gconstpointer a, gconstpointer b) na->dest_count == nb->dest_count ? 0 : 1; } -static gint exception(gconstpointer a, gconstpointer b) +static gint exception(gconstpointer a, gconstpointer b, gpointer d) { NodeData *na = (NodeData *) a; NodeData *nb = (NodeData *) b; @@ -116,7 +116,7 @@ static gint exception(gconstpointer a, gconstpointer b) na->early_exit == nb->early_exit ? 0 : 1; } -static gint popular(gconstpointer a, gconstpointer b) +static gint popular(gconstpointer a, gconstpointer b, gpointer d) { NodeData *na = (NodeData *) a; NodeData *nb = (NodeData *) b; @@ -138,7 +138,7 @@ static void plugin_exit(qemu_plugin_id_t id, void *p) { g_autoptr(GString) result = g_string_new("collected "); GList *data; - GCompareFunc sort = &hottest; + GCompareDataFunc sort = &hottest; int i = 0; g_mutex_lock(&node_lock); @@ -162,7 +162,7 @@ static void plugin_exit(qemu_plugin_id_t id, void *p) break; } - data = g_list_sort(data, sort); + data = g_list_sort_with_data(data, sort, NULL); for (GList *l = data; l != NULL && i < topn; diff --git a/contrib/plugins/hotblocks.c b/contrib/plugins/hotblocks.c index f12bfb7a26..98404b6885 100644 --- a/contrib/plugins/hotblocks.c +++ b/contrib/plugins/hotblocks.c @@ -39,7 +39,7 @@ typedef struct { unsigned long insns; } ExecCount; -static gint cmp_exec_count(gconstpointer a, gconstpointer b) +static gint cmp_exec_count(gconstpointer a, gconstpointer b, gpointer d) { ExecCount *ea = (ExecCount *) a; ExecCount *eb = (ExecCount *) b; @@ -79,7 +79,7 @@ static void plugin_exit(qemu_plugin_id_t id, void *p) g_string_append_printf(report, "%d entries in the hash table\n", g_hash_table_size(hotblocks)); counts = g_hash_table_get_values(hotblocks); - it = g_list_sort(counts, cmp_exec_count); + it = g_list_sort_with_data(counts, cmp_exec_count, NULL); if (it) { g_string_append_printf(report, "pc, tcount, icount, ecount\n"); diff --git a/contrib/plugins/hotpages.c b/contrib/plugins/hotpages.c index c6e6493719..9d48ac969e 100644 --- a/contrib/plugins/hotpages.c +++ b/contrib/plugins/hotpages.c @@ -48,7 +48,7 @@ typedef struct { static GMutex lock; static GHashTable *pages; -static gint cmp_access_count(gconstpointer a, gconstpointer b) +static gint cmp_access_count(gconstpointer a, gconstpointer b, gpointer d) { PageCounters *ea = (PageCounters *) a; PageCounters *eb = (PageCounters *) b; @@ -83,7 +83,7 @@ static void plugin_exit(qemu_plugin_id_t id, void *p) if (counts && g_list_next(counts)) { GList *it; - it = g_list_sort(counts, cmp_access_count); + it = g_list_sort_with_data(counts, cmp_access_count, NULL); for (i = 0; i < limit && it->next; i++, it = it->next) { PageCounters *rec = (PageCounters *) it->data; diff --git a/contrib/plugins/howvec.c b/contrib/plugins/howvec.c index 2aa9029c3f..42bddb6566 100644 --- a/contrib/plugins/howvec.c +++ b/contrib/plugins/howvec.c @@ -155,7 +155,7 @@ static ClassSelector class_tables[] = { static InsnClassExecCount *class_table; static int class_table_sz; -static gint cmp_exec_count(gconstpointer a, gconstpointer b) +static gint cmp_exec_count(gconstpointer a, gconstpointer b, gpointer d) { InsnExecCount *ea = (InsnExecCount *) a; InsnExecCount *eb = (InsnExecCount *) b; @@ -208,7 +208,7 @@ static void plugin_exit(qemu_plugin_id_t id, void *p) counts = g_hash_table_get_values(insns); if (counts && g_list_next(counts)) { g_string_append_printf(report, "Individual Instructions:\n"); - counts = g_list_sort(counts, cmp_exec_count); + counts = g_list_sort_with_data(counts, cmp_exec_count, NULL); for (i = 0; i < limit && g_list_next(counts); i++, counts = g_list_next(counts)) { diff --git a/contrib/plugins/hwprofile.c b/contrib/plugins/hwprofile.c index 2a4cbc47d4..a9838ccc87 100644 --- a/contrib/plugins/hwprofile.c +++ b/contrib/plugins/hwprofile.c @@ -71,7 +71,7 @@ static void plugin_init(void) devices = g_hash_table_new(NULL, NULL); } -static gint sort_cmp(gconstpointer a, gconstpointer b) +static gint sort_cmp(gconstpointer a, gconstpointer b, gpointer d) { DeviceCounts *ea = (DeviceCounts *) a; DeviceCounts *eb = (DeviceCounts *) b; @@ -79,7 +79,7 @@ static gint sort_cmp(gconstpointer a, gconstpointer b) eb->totals.reads + eb->totals.writes ? -1 : 1; } -static gint sort_loc(gconstpointer a, gconstpointer b) +static gint sort_loc(gconstpointer a, gconstpointer b, gpointer d) { IOLocationCounts *ea = (IOLocationCounts *) a; IOLocationCounts *eb = (IOLocationCounts *) b; @@ -126,13 +126,13 @@ static void plugin_exit(qemu_plugin_id_t id, void *p) if (counts && g_list_next(counts)) { GList *it; - it = g_list_sort(counts, sort_cmp); + it = g_list_sort_with_data(counts, sort_cmp, NULL); while (it) { DeviceCounts *rec = (DeviceCounts *) it->data; if (rec->detail) { GList *accesses = g_hash_table_get_values(rec->detail); - GList *io_it = g_list_sort(accesses, sort_loc); + GList *io_it = g_list_sort_with_data(accesses, sort_loc, NULL); const char *prefix = pattern ? "off" : "pc"; g_string_append_printf(report, "%s @ 0x%"PRIx64"\n", rec->name, rec->base); diff --git a/tests/tcg/plugins/mem.c b/tests/tcg/plugins/mem.c index d87d6628e0..ca4e8883dd 100644 --- a/tests/tcg/plugins/mem.c +++ b/tests/tcg/plugins/mem.c @@ -67,7 +67,7 @@ static enum qemu_plugin_mem_rw rw = QEMU_PLUGIN_MEM_RW; static GMutex lock; static GHashTable *regions; -static gint addr_order(gconstpointer a, gconstpointer b) +static gint addr_order(gconstpointer a, gconstpointer b, gpointer d) { RegionInfo *na = (RegionInfo *) a; RegionInfo *nb = (RegionInfo *) b; @@ -94,7 +94,7 @@ static void plugin_exit(qemu_plugin_id_t id, void *p) if (do_region_summary) { GList *counts = g_hash_table_get_values(regions); - counts = g_list_sort(counts, addr_order); + counts = g_list_sort_with_data(counts, addr_order, NULL); g_string_printf(out, "Region Base, Reads, Writes, Seen all\n"); diff --git a/tests/tcg/plugins/syscall.c b/tests/tcg/plugins/syscall.c index 47aad55fc1..42801f5c86 100644 --- a/tests/tcg/plugins/syscall.c +++ b/tests/tcg/plugins/syscall.c @@ -180,7 +180,7 @@ static void print_entry(gpointer val, gpointer user_data) qemu_plugin_outs(out); } -static gint comp_func(gconstpointer ea, gconstpointer eb) +static gint comp_func(gconstpointer ea, gconstpointer eb, gpointer d) { SyscallStats *ent_a = (SyscallStats *) ea; SyscallStats *ent_b = (SyscallStats *) eb; @@ -197,7 +197,7 @@ static void plugin_exit(qemu_plugin_id_t id, void *p) g_mutex_lock(&lock); GList *entries = g_hash_table_get_values(statistics); - entries = g_list_sort(entries, comp_func); + entries = g_list_sort_with_data(entries, comp_func, NULL); qemu_plugin_outs("syscall no. calls errors\n"); g_list_foreach(entries, print_entry, NULL); From patchwork Wed Apr 16 08:14:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053446 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 58226C369BD for ; Wed, 16 Apr 2025 08:16:54 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xwJ-0001RE-JF; Wed, 16 Apr 2025 04:16:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xwB-0001B2-9W; Wed, 16 Apr 2025 04:16:04 -0400 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xw9-0005lu-6r; Wed, 16 Apr 2025 04:16:02 -0400 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-736b34a71a1so7522174b3a.0; Wed, 16 Apr 2025 01:15:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791357; x=1745396157; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LLrrsrQZzD72xGTbhwYlmsLnhFUFIFLCF7fWNU0pNNM=; b=UgNa8+igYjK1RgjVuLXnp1Sj2z6srH9CGU5RMymGbVdtqCuYwWGDmKnYDr3RnfrpTg wjgjM1yKl8YexdxVqnxzOHQjMnpU6yri8C6oJpyz4vX9etYg+OU9/yAMIUpJxKk10dPB pemUZuHriuPRBoq1hdttc+2vWQxA3QxDFudBPb+XwaWVU2RPWXHtBLivjHHfw7iO+qSh AUr0taDYPaCCetgSanMFk2vQEDS3i89OMM+VGKfdRs6iOk1r5C6OidktPqCe1vm37uc+ wi/lfgJ5KOsvMPTu2vTwmvYJ6q8HMC99SZr+oMiZzYMIAKqxv4xFTJHCrXhoG0+HcSsW 5O7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791357; x=1745396157; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LLrrsrQZzD72xGTbhwYlmsLnhFUFIFLCF7fWNU0pNNM=; b=Q0Ae/IuVOKP/OWnGyBMTkG27hgjMbewB0YCP9yXKlfcQuxA3xTVET0aJehPmxAnxrW ZtiqmYIKmHZMcsac8ro6XoKCZ4VZuZfukw7lMBWEWJ40PVQwrjDx7BJjtYFb+3mi7fr0 5ugehlVD29656Gv75KqfMUcO+N34N+6EK9PoXPVIj8a3DHXa23i3QExLUyghuPJYowcL YORwJYevaZiNg2YeN5BzskGKlW7jGEB/qi+N2qeK1QbYuT9JAnmxTFW1Oy+AY1CGgW9B 5ydVH4I9H+uRXRVEbkPbty+nWRXNsIL52v8EifXTbZlpdq4mcKeMjJEUAHiw1fXyQxaH UlvA== X-Forwarded-Encrypted: i=1; AJvYcCVHL6Rt+LrW4UVO1YEjZ7okg3XYheypPYDiH8lMdQ/x1sce1fshjwZh8GzMhcnmwywpiJ+hJYTQmg==@nongnu.org, AJvYcCWIlchQBi3TPij8ogw/r46mKO0w8g9DEHn9SYBwOXkKxhB222geZxvLuEjNBhQbqGD7GVHCsUW2AY99GQ==@nongnu.org, AJvYcCX9rjjuodktQKDqhb+IhGlKcAQOG7LRq4GQzSgNQTWsYaWU1kr8AhggK+H9ocv7CklCjYgzWNcFJxWmBg==@nongnu.org, AJvYcCXVYo65yXz8zyimtdP2eyAqbLQr60MWhd5cDB7zFEtKctpJfstN5ItC5N7f4LlcMr/GvyAZ+ZW2sb8=@nongnu.org X-Gm-Message-State: AOJu0YwGlY3J5S7jAI98FjaoCl8LyOttXxrgibxsyen9WgOD7TRfJ6v6 2uqG8rgpNW+VhEJlHWpHNe1NwzS5ePXAyZtlIGlsrSlmxJxIBqpvHUmR+DAr X-Gm-Gg: ASbGncufbyNLWDfa7bcCjpGzy0iJM684CyEpVtQwDE0qBfbEBaiahjQ1ilKDFg3YTVA CM8qAyibA9mGMsV2B4i3udjMaPlkw8EZzuswTCeTR9dzD7Rd5RdCtp5ZLXRkKNYde8vTZbStpU8 f31dtjnZHpipV7gZopfSn0da+oRkB4Q0uxoUweF61l3rTExr74DEL7jka175gOXKN/H/kgOQ9DU FRrrISOtwjqY88xGVWxBeNSYmnq8Mr4/c03TgyVpvWRdIFo4P7j+8hBw0Ig3t00wNIsBYUknFAD UO1lVygeZDsBJxRV0eE35EHoN+DahH0MdVd2oWCXk/ieXS3EvgEyOS2Tkw== X-Google-Smtp-Source: AGHT+IElp/3KeYgC/T6jv5Txgk/XiOizl7AfYjlspAIvyy7iNx5MfvQinIdw27QmjbVp2QBCODsp4g== X-Received: by 2002:a05:6a00:aa8d:b0:736:a973:748 with SMTP id d2e1a72fcca58-73c267f8ba4mr1454869b3a.22.1744791356930; Wed, 16 Apr 2025 01:15:56 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.15.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:15:56 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 07/19] hw/net/can: Fix type conflict of GLib function pointers Date: Wed, 16 Apr 2025 17:14:12 +0900 Message-Id: <4ddec141849368fa77f9fd68942f09f5338ef9c6.1744787186.git.ktokunaga.mail@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::431; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x431.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On emscripten, function pointer casts can cause function call failure. This commit fixes the function definition to match to the type of the function call using g_slist_sort_with_data. Signed-off-by: Kohei Tokunaga --- hw/net/can/xlnx-versal-canfd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/net/can/xlnx-versal-canfd.c b/hw/net/can/xlnx-versal-canfd.c index dc242e9215..013ebc10dc 100644 --- a/hw/net/can/xlnx-versal-canfd.c +++ b/hw/net/can/xlnx-versal-canfd.c @@ -1278,7 +1278,7 @@ static void tx_fifo_stamp(XlnxVersalCANFDState *s, uint32_t tb0_regid) } } -static gint g_cmp_ids(gconstpointer data1, gconstpointer data2) +static gint g_cmp_ids(gconstpointer data1, gconstpointer data2, gpointer d) { tx_ready_reg_info *tx_reg_1 = (tx_ready_reg_info *) data1; tx_ready_reg_info *tx_reg_2 = (tx_ready_reg_info *) data2; @@ -1318,7 +1318,7 @@ static GSList *prepare_tx_data(XlnxVersalCANFDState *s) temp->can_id = s->regs[reg_num]; temp->reg_num = reg_num; list = g_slist_prepend(list, temp); - list = g_slist_sort(list, g_cmp_ids); + list = g_slist_sort_with_data(list, g_cmp_ids, NULL); } reg_ready >>= 1; From patchwork Wed Apr 16 08:14:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053479 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EC71CC369B1 for ; Wed, 16 Apr 2025 08:19:21 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xxs-0002rE-Tu; Wed, 16 Apr 2025 04:17:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xwH-0001Pm-SS; Wed, 16 Apr 2025 04:16:10 -0400 Received: from mail-pf1-x429.google.com ([2607:f8b0:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xwG-0005od-1q; Wed, 16 Apr 2025 04:16:09 -0400 Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-7398d65476eso360053b3a.1; Wed, 16 Apr 2025 01:16:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791365; x=1745396165; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9eM0jw4nOu+oWx9X+qy9FQBh8QDUlsZEwEq7XZqMA8s=; b=VIp/Aw0Fl0vQRU3W7Q5O8xdWa1OpuJkFJDQ5QDJOMzU7PHpeSYq/SQYDwaDRuanq5W EJ6onWcpznYUWUQ40HHdGC+dE9k1CbFHLC0bKkxOvKBnLcSAGsZZ2oDTd2hPkN/xUjLw avTupz88Jp3t0cEdFiIDUA+SlY0WCxHWRW52/jtyLf0Hi3kK6nuOOT4CQxBRZgEpjow6 yI5Az610h7i+wtJcFdj9Yq+GLHlOp39Up5/l3lOmdt7ZYT79snzEb1xXAfZexCKWu3rH JyEYGyL5PwG8rz7payvlLvsOC2wWeQie6GI2+OqVfNanqX9PeEmsRb9fuiEWkcqhA5JM qW0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791365; x=1745396165; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9eM0jw4nOu+oWx9X+qy9FQBh8QDUlsZEwEq7XZqMA8s=; b=lQxNg6pvpb8cRhqUMhzOrgoYhBXg6b4j9Ch1g4DtsIYRwKoumjKD6CaJWvGT3wtlmv 8K89+55l0qZxs5HImkxAscrKGIJS82Gb1BJ2tdulldRHaynQl+Os6IJYqOn5/7ehMYjk grS5U8jcKljm+sOrppWvZ3DMGpLoXVnqdM+JS3yKVTnmiQjAJQ69ighcSmm7QKQALxUF St1IYh5kvE81bACEpG0rH3VBBsmfMp2/k/pafDpdRJ9DBdsLCFl4YSzmdi7JyjSSk5Bk ZZ8anglN4VRJ2t5OMao48toSs0A85o8uGRR0URKgN+j6nqNyBG4CaOS2DVJSxgaeQg/M cbow== X-Forwarded-Encrypted: i=1; AJvYcCViI76Z4rjTgKFI9Tgc9Yi/uDSxdTCQCQ12RyXI01AMXkj4L1Jllr0W6jbUZrvqqDAzMCPgO36lGzDRYw==@nongnu.org, AJvYcCWK8wvBcz1l1oWHQFL1t5v8fCq/Kh1tMU00jSRWagu3o5POoHGIOD666bXjfz2hpQTdJ3PoEPhuFw==@nongnu.org, AJvYcCWwnFtIbSWMZmZz+PQbxaj8d22gprM93v/SwG6CYxgeqCJUep0ShpYAFhTsNtZ0a+L5WUjvuwJtm1UVJQ==@nongnu.org, AJvYcCX6WCiQ8z9ViPmcSvb/IQhLPAbkznvBOD8bikVTlof+/oWKriPKuw/dZk9d0Xjk4z4XWbAqjgS9nfM=@nongnu.org X-Gm-Message-State: AOJu0Yyco5gFO5aMBqXZ/lxsERIKf9Nqlqr4l0KRs3zFAy8HZPznoad7 9lcinTZFLZezzfX3a3eYbaMHjFJIeR13P+FpfjAPf/lQVlBGxI4KrrTXenkY X-Gm-Gg: ASbGnctlmGXgNG5cSOS50LMkVn91jDQjtMcWWnMpRju5JLycuoHXbl1kxo2O/M1E1T8 /H+5pa7sp5EvPbFbP2xJC1TU0+ILblqCUCAPmzAyFmrwHBBbDgnn8HhiiKI/wKLbMAd1E7glD9p 2BmESaZ7zRbEQXoMdadGs6UwVs3uBQL1F1hqmXX/SUQdwPIV22aAUz55CbyTkXj6pop9RDZZdtZ YNn3C42ZGnd80gu9u+kYs89qEfvp1/jOnM1AnQndyvQ1907JeJIhC8BHr2bj64088zC3ej50Yyw SjTvWA87mRUS+OK5VL3T0CfoxcN+5+yI10RGbfFxIrp9rJZj8NLlmwC9iA== X-Google-Smtp-Source: AGHT+IHuXOMzEgeut1wt/ioMVDm9sPvMSsSZ72Ps6KyQRsi/9QtAQ22BiRbOpCSbljETerW1LR+dBA== X-Received: by 2002:aa7:8890:0:b0:728:f21b:ce4c with SMTP id d2e1a72fcca58-73c26d3939bmr1349443b3a.5.1744791364649; Wed, 16 Apr 2025 01:16:04 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.15.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:16:04 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 08/19] target/ppc: Fix type conflict of GLib function pointers Date: Wed, 16 Apr 2025 17:14:13 +0900 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::429; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x429.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On emscripten, function pointer casts can cause function call failure. This commit fixes the function definition to match to the type of the function call using g_slist_sort_with_data. Signed-off-by: Kohei Tokunaga --- target/ppc/cpu_init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c index f81cb680fc..f03e48ba31 100644 --- a/target/ppc/cpu_init.c +++ b/target/ppc/cpu_init.c @@ -7115,7 +7115,7 @@ PowerPCCPUClass *ppc_cpu_get_family_class(PowerPCCPUClass *pcc) } /* Sort by PVR, ordering special case "host" last. */ -static gint ppc_cpu_list_compare(gconstpointer a, gconstpointer b) +static gint ppc_cpu_list_compare(gconstpointer a, gconstpointer b, gpointer d) { ObjectClass *oc_a = (ObjectClass *)a; ObjectClass *oc_b = (ObjectClass *)b; @@ -7183,7 +7183,7 @@ void ppc_cpu_list(void) qemu_printf("Available CPUs:\n"); list = object_class_get_list(TYPE_POWERPC_CPU, false); - list = g_slist_sort(list, ppc_cpu_list_compare); + list = g_slist_sort_with_data(list, ppc_cpu_list_compare, NULL); g_slist_foreach(list, ppc_cpu_list_entry, NULL); g_slist_free(list); From patchwork Wed Apr 16 08:14:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053477 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5B194C369B1 for ; Wed, 16 Apr 2025 08:18:30 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xx3-00025d-J9; Wed, 16 Apr 2025 04:16:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xwP-0001lk-Ve; Wed, 16 Apr 2025 04:16:18 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xwN-0005qe-V5; Wed, 16 Apr 2025 04:16:17 -0400 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-739525d4e12so5952950b3a.3; Wed, 16 Apr 2025 01:16:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791373; x=1745396173; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GZwfnw5vxnLL2zR1KniO5W7Nb6K9SEbOa4Rm3mdsFsU=; b=l8q1Lp3DqL+73LdSXLFHoMCAelNn0OYN4JO3R+5jTpMrde5wWkjV/giYr9RCiHrCva F5zaHxNYdqiMEQVyeO0NajWvpHKSt4oPyMc6I7I3Lgmw79l9T/qCfY5oa/mD7CAe0eHb 7RKiGEVMJpLoVwRnVp6IxNpJkQCkS9Hdz172bzMEa8L0M7QLNAoV2rZJC7/lNeUx14MV +NJGQgehsvFmFEzKVYmGt1860eAfFw0m7s/EHFjLZI7BLygk9qx1fD/deIhEYwFnkxui Y6055qlRjiktMfeKR0/S9XcaVQAkFJGSmklhi3qYVgSCbvKlZHRRyBzVmU4lypnGEqac sT5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791373; x=1745396173; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GZwfnw5vxnLL2zR1KniO5W7Nb6K9SEbOa4Rm3mdsFsU=; b=SU2NwByCh3FsAOIlY4TYwI1CM89r0yzIm29XqPNtrsmaBfr06ptgeqlMZ1x5WAKGx1 kPcrTojVqWGw5xkP+j84SFkXuwe5Y+LK9oBRfKAyOvCgGCkGsHL9WkxHKt5vO6MCAT2F SWayGqe6kpcTpP7btPt4SxIjFOFz2XocbAV41rNVxfYb26lg4pO+dAJ9Q3svE1fBqXxs 3F39PJ+bSxddBH1LB2S6ZG5fgSmoeTvbpInPFDbid7+9Pce++wwUj3UvaLxK4cEnl5xJ hyy7oa/1X67HVUyaq8OQkRDz3yStYnP+TfDUCkT9xjAwQRirQxMzNCjR01VIagkEvr42 W8LA== X-Forwarded-Encrypted: i=1; AJvYcCUHngnwCygZlD3hDtcU/H0UlaWLdbu2DGqg0ZNKBbMvEZscQjT8egNWEQ13qIsKEx2aMJUKPITiW6o=@nongnu.org, AJvYcCVxNtLCa67uZ4p9M33KIknp0z925zNnZrPRMG4HhYqcXAN93+s61+VKokX77iIhH1FOsesftazD+g==@nongnu.org, AJvYcCX8N/JoWD5zKVKE1Irk3KGclgP5TQhHsCWAgR4cCezWDEVaNoNeeOXcCGxjWT6acUcOWPdjveyqHo6kGA==@nongnu.org, AJvYcCXY3frG5ryaHEVVzYUXaF9vneyrc9tpE1RhddLoa4Lc9HkpYRkIy0bLNQfBX9x9FV4YD5PaAymHnRdQHA==@nongnu.org X-Gm-Message-State: AOJu0YxJiR0RzFWQ6wdsR+1WP4tWnvKxZYAkQkO9rOOHKGQiqr3S7UuC 6BxrzWZC29uxm/ldjV/wSmeOco7Fa9t7+hrdPBmftLoW1os+Vg3a8hsZONMB X-Gm-Gg: ASbGnctt7p7BmvVUzFDBjDXrI5DN+Qyzlu0jcIAlVuVaMi5QzTPJEw+vTDq4cEp8N0u iO9pBW7JFFGW13FJ4cXmiZ2EWBFFYouGZZR/nFPkG+ObcuovkmtaDNg6jqOAibwEw7MXva9o3W3 96a7u82yDoVey0eJ5CjnrYZPEtrnUSTKzQLlBQYwGkku8aCR0OPeVBKvON1fvfXKvASZS36bnGW 1HVeVJV0PYl+ay7nUOO46AFWuuk2JdqYpf2Geac6tb/psX5GfkUTtleorw7QD7ipyM3ZNstEXrp dGn25ojY9s/XxMZPu9+fq+qkmz+pDLlFEWTXPFlSx7RWJj+M6OvJn05CcQ== X-Google-Smtp-Source: AGHT+IGQOK7n+6TprGHiO2Lrr347LOOWE18O3SkbS/KKjF+Q4XTcV+l8OwYIIP3q4cnQwUmzahCevA== X-Received: by 2002:a05:6a21:789d:b0:1fe:9537:84a0 with SMTP id adf61e73a8af0-203b3e9fec3mr1108892637.15.1744791372610; Wed, 16 Apr 2025 01:16:12 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.16.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:16:11 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 09/19] target/s390x: Fix type conflict of GLib function pointers Date: Wed, 16 Apr 2025 17:14:14 +0900 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x432.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On emscripten, function pointer casts can cause function call failure. This commit fixes the function definition to match to the type of the function call using g_slist_sort_with_data. Signed-off-by: Kohei Tokunaga --- target/s390x/cpu_models.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c index 93a05e43d7..48cdef285d 100644 --- a/target/s390x/cpu_models.c +++ b/target/s390x/cpu_models.c @@ -373,7 +373,7 @@ static void s390_print_cpu_model_list_entry(gpointer data, gpointer user_data) g_free(name); } -static gint s390_cpu_list_compare(gconstpointer a, gconstpointer b) +static gint s390_cpu_list_compare(gconstpointer a, gconstpointer b, gpointer d) { const S390CPUClass *cc_a = S390_CPU_CLASS((ObjectClass *)a); const S390CPUClass *cc_b = S390_CPU_CLASS((ObjectClass *)b); @@ -415,7 +415,7 @@ void s390_cpu_list(void) qemu_printf("Available CPUs:\n"); list = object_class_get_list(TYPE_S390_CPU, false); - list = g_slist_sort(list, s390_cpu_list_compare); + list = g_slist_sort_with_data(list, s390_cpu_list_compare, NULL); g_slist_foreach(list, s390_print_cpu_model_list_entry, NULL); g_slist_free(list); From patchwork Wed Apr 16 08:14:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053480 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 13F2BC369B1 for ; Wed, 16 Apr 2025 08:19:46 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xyc-00048m-89; Wed, 16 Apr 2025 04:18:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xwX-0001vq-5y; Wed, 16 Apr 2025 04:16:34 -0400 Received: from mail-pf1-x436.google.com ([2607:f8b0:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xwV-0005rK-8V; Wed, 16 Apr 2025 04:16:24 -0400 Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-73bf1cef6ceso3176137b3a.0; Wed, 16 Apr 2025 01:16:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791380; x=1745396180; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SASE3XTeg/hH1Bv2p0ymNoIDo1zAKPv9dOqsCm+H98Y=; b=ghWV6wmrFsmZ25MEH74EsWWmIFXkfgJMdftkvrXai/7gE6KH5cHbH7yoKL28nwyWSP c/xQn/28wTAJmEjCajTEKg/AKY94+bkAlcYyCUr3K4zYN3wF/dh+WfPSakzx3O7lTp57 TToMN1F1umlGSlqK1x8CH37dcgOQke7dvEH005rhU2pWIEew6yc64/Y7Eltwbr9chTvX JRNlkb62XSuTG0K5wa+6iYdRTC2AiPQ1mfliG91LM6U87F9qFEkgZPCTtFZBYtD1N44F zavo/xsy9sBiBrjDrVU/q8rtA+y/Ao3uGw7xviyCGXV7t0Cu3xTTwLcZHXcda6tB+UtG xorQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791380; x=1745396180; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SASE3XTeg/hH1Bv2p0ymNoIDo1zAKPv9dOqsCm+H98Y=; b=m+Amvye3kzJ5WV+A1Sis96kCwPmoym6m3IKet029uF3KpjToA6Eff7MfHlm0B5viHG /vPdoKO0FyQ4ek3VWCvWf8GXG1lH356MGqGRM9crmg+Gg7P+zgLli3oj6mC26vs6uStf HmOx4dpL0o6kzJcOR8LndhpHuD2ERYnvZB7OAzYhdHAO2TNw1nGKSqW1o98kFvou2e2D OJj8v/VDoKybxAgIj4YaIZ6/iY4SzRWoI7x1WlLSKDS+znPOHlcA2UXvWIZHX5l0+41n 0tohy2lzvubZUfhGJJgW5wwQxaS6MkaWx3TcOKbF+BidsBkDNPnitPFcsgylkbw/ocfY vu4Q== X-Forwarded-Encrypted: i=1; AJvYcCUH34aKJA3HxOiIMlK/SLlQLNBRxi2LDVBdungfwt36JpYxFm/o3TjnwqXyJ+KJeEb2VHzY4v3kugo=@nongnu.org, AJvYcCVSSYjktOWe4Bk4Lnwl9aDgPuwKJnPetX4VT6DzwmerhgnTJRIEDVbkhyGAh9u5Mme/3v+O1cxaBPm0hw==@nongnu.org, AJvYcCWDdRLIrmmDMOj9hsOC+t9bEnxD8wLVuXMo/1oynDwdgLtufDZfZ7mwkQn/pApI6uP7iB0KLtzVqXfmSw==@nongnu.org, AJvYcCX9B5BxMZcOcuOgwQL8r9L0wJg7CnGZ6r8bgh7D/G6v6q6MMIKbITLDVE9BgqN3BHSXO0h+XgkVHw==@nongnu.org X-Gm-Message-State: AOJu0YzzuG2piX4Pxoj/OUzN1DV95wdHhw+/Zqdw/f81+KMcMFudAbzP rVe1/hxw9Az0j8wGNmHrtxwuc9e6QZEby1lGwX7fjbu7GYP5hW/Tw07lvnAD X-Gm-Gg: ASbGncv43BaLy6gYSFUuIi719NfupainD989tOk/9ameeXVtdvMP3jqg3Hvl7ThSu8O SqySO/1+WPnLz9p52cypfzrtKS7RueiS7MB3YtcpUtQfpQdfsQP7tG6g/PIym5WwHBtvjoJ2C2o /+L/bFGwAqNGw/VuiZPMzj5Qf4u9Ob5tTGtl0BmxQW56b3oLk515hWV9qyi2SnAVupoqP1hub8Q gMMdoI9F9GJrzwpNj+D6oJYRf4f7L5W9jIxBzOpA1DtxiLz4EOteH60AosE6/E8x6bNz+eMZWKf kpgjjHcRAXekZNt8zb9G0jyS2yeFKBifTKirMSQvCSpp56HF5F9/lKb95g== X-Google-Smtp-Source: AGHT+IGZVnR6iExg3SaeGbXovRMHfu4V9AyLUD1Bp7HiSc7H8Bjv2sq7p9nu4P9mJ0RjhTJsAOhTYQ== X-Received: by 2002:a05:6a21:150b:b0:1f5:97c3:41b9 with SMTP id adf61e73a8af0-203b3e4ffe2mr1258840637.5.1744791380301; Wed, 16 Apr 2025 01:16:20 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.16.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:16:19 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 10/19] include/glib-compat.h: Poison g_list_sort and g_slist_sort Date: Wed, 16 Apr 2025 17:14:15 +0900 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::436; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x436.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On emscripten, function pointer casts can cause function call failure. g_list_sort and g_slist_sort performs this internally so can't be used on Emscripten. Instead, g_list_sort_with_data and g_slist_sort_with_data should be used. Signed-off-by: Kohei Tokunaga --- include/glib-compat.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/glib-compat.h b/include/glib-compat.h index 86be439ba0..e441b396ef 100644 --- a/include/glib-compat.h +++ b/include/glib-compat.h @@ -36,6 +36,12 @@ #include #endif +/* These functions perform function pointer casts which can cause function call + * failure on Emscripten. Use g_slist_sort_with_data and g_list_sort_with_data + * insted of these functions. + */ +#pragma GCC poison g_slist_sort g_list_sort + /* * Note that because of the GLIB_VERSION_MAX_ALLOWED constant above, allowing * use of functions from newer GLib via this compat header needs a little From patchwork Wed Apr 16 08:14:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053504 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5EED1C369B1 for ; Wed, 16 Apr 2025 08:24:19 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xya-0003xh-5d; Wed, 16 Apr 2025 04:18:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xwe-0001x5-Ph; Wed, 16 Apr 2025 04:16:35 -0400 Received: from mail-pf1-x42b.google.com ([2607:f8b0:4864:20::42b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xwd-0005sg-3v; Wed, 16 Apr 2025 04:16:32 -0400 Received: by mail-pf1-x42b.google.com with SMTP id d2e1a72fcca58-736e52948ebso7314475b3a.1; Wed, 16 Apr 2025 01:16:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791388; x=1745396188; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lYpO1k305Wtiuq/zmuKPfj735nkTtZMPOH5ZuTPK1tU=; b=KUhgGu6MEinhgdxkPlV2nrVl7g1wQZTs0/pLcjQ40AVV72KlxTNDt8QnSHcQ6HbxPw GgFuggZJRfPVpnWBTlAwHynSDwvuNZHAOTY5vZzLbhZgHG7r3+BRi24Lmfumv94xd++y ZNWyqLyOYZlGSBpEuV2OdmWRynp2NemdeAtsAUkCBd35twRxxZQiI7q0iMV3Ys86cedi LB7ieDEYYqf8QrlRf1nrC7LNxDRKjcfF3xkinxAR17OJh03xadvoSNHxJxP2fGMj4fZM xl9EHhJ/TJ+RCW3XTCsPPhcbvlLMWtFhIonTpivG9BIMQHXEo3TEB8jx8ATNjkChVlMF newQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791388; x=1745396188; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lYpO1k305Wtiuq/zmuKPfj735nkTtZMPOH5ZuTPK1tU=; b=Z58TC7Tm/QnrrfdFi/J2KSrxKaE5zf+INE3svyOzc5KGKhOdTrL6yaq0g3ceEFlEc9 mDwhDX24m2J9jcOC+bJekWqs0fFmFKLOXuD1vezTP3rTuxgOPMSQyyiEnhJf6TAg1ata lPU/hGrm1l19Rye7th7NJmudmafj/D4DZLT2uZG8lE9o7zhYBHBHX4WPLMoPaI6GrIbJ FtDnu+5CmfMPUEQl9iQBnHKZuD/YxmWvlnC4u8e5PD68tFDJKBOsSGME+tKNcNGVuZKi 88VueWYLNJeO5lILVItMFigR9TnRx8l6iBsSnCwStJUOxSSlqn0sJFV113pKFd3WxXHL FELw== X-Forwarded-Encrypted: i=1; AJvYcCUO1e3oaI2C6kIneXC95wq6NtANe91V3E8YvxkdRbbkY+OO38PV7Jy8kHyzredR5nd2XbJU2YFMLAA=@nongnu.org, AJvYcCVUqcq9Ip+JUz7J4CJJGJvvn/EBFBGdSrt3YqRqjr1rSqgUaVxsXvUI9RC0tXtb1uxaDF4zLsMmDSs48g==@nongnu.org, AJvYcCXe/+NvADZhdJDPzZmW1p5bXb7BNsvl7sb+u+FL3FZIaSqKrpurxn5rLcF9TUi49NthyS4drF7iUpPgEQ==@nongnu.org, AJvYcCXm64hitflcZ0vbsp1A/INdfUTrBGxSq+3TfGxPpbsfwnS2UO9eeIP9kkDpOX2E2wNmbeichJN+hg==@nongnu.org X-Gm-Message-State: AOJu0YyUl+UDFKUYHLfjFzGuAG+e3MEavhPWbaCevq7YYonGodlOao5J N3w0yOzwPIBvz5cofAdoO6TEaMHsdQY9hkRyjab0FQwj13AdC1Cm2ND0+80M X-Gm-Gg: ASbGnctPKZOuaAJEH8g0/hNrHvdEb1lw2fiB3Cf+jWU86WiKGC5T8UwSRc2N//s5sIe kf/RYSL3pzljTwHQCWisZu5jdNNCy7z2szvKreG4Bw2u58ld+HMEgHNooxA/36f7dVdkFyBvku0 R50yUsVluh6Ykm3fxDaMAn3FjRUNex+cMp5UnMpaPL58vHHVKdR/NK4WBHFaXAjg3OQUXcPR/Dl f/EfB0LZsRaBw+f7Ypqnrlc4CGM73ib8WCswUxovVJy3pMDq11NAQ3ux7kUf0uaRXEXEOfkUs/R 2H1asOCmwE2NSawNXbcCzio6XNrH0YciUN3bC16VaSK1UauU7IWuq74xKA== X-Google-Smtp-Source: AGHT+IF9bDDZbwuPJU2PpdK5gj1XZbWq4WLDXyolVao4ExtH4EJUgh98Q5i9ZONRA1Uraq4j6nEIYg== X-Received: by 2002:a05:6a00:4c8d:b0:736:562b:9a9c with SMTP id d2e1a72fcca58-73c267d2f14mr1548869b3a.18.1744791388065; Wed, 16 Apr 2025 01:16:28 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.16.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:16:27 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 11/19] util/cacheflush.c: Update cache flushing mechanism for Emscripten Date: Wed, 16 Apr 2025 17:14:16 +0900 Message-Id: <97a2164b3f428265136bb1c01615a16b516138c2.1744787186.git.ktokunaga.mail@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42b; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x42b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Signed-off-by: Kohei Tokunaga --- include/qemu/cacheflush.h | 3 ++- util/cacheflush.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/qemu/cacheflush.h b/include/qemu/cacheflush.h index ae20bcda73..84969801e3 100644 --- a/include/qemu/cacheflush.h +++ b/include/qemu/cacheflush.h @@ -19,7 +19,8 @@ * mappings of the same physical page(s). */ -#if defined(__i386__) || defined(__x86_64__) || defined(__s390__) +#if defined(__i386__) || defined(__x86_64__) || defined(__s390__) \ + || defined(EMSCRIPTEN) static inline void flush_idcache_range(uintptr_t rx, uintptr_t rw, size_t len) { diff --git a/util/cacheflush.c b/util/cacheflush.c index 1d12899a39..e5aa256cd8 100644 --- a/util/cacheflush.c +++ b/util/cacheflush.c @@ -225,7 +225,8 @@ static void __attribute__((constructor)) init_cache_info(void) * Architecture (+ OS) specific cache flushing mechanisms. */ -#if defined(__i386__) || defined(__x86_64__) || defined(__s390__) +#if defined(__i386__) || defined(__x86_64__) || defined(__s390__) || \ + defined(EMSCRIPTEN) /* Caches are coherent and do not require flushing; symbol inline. */ From patchwork Wed Apr 16 08:14:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053482 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CC0C4C369BA for ; Wed, 16 Apr 2025 08:21:47 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xzN-0005D5-1V; Wed, 16 Apr 2025 04:19:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xwo-00021l-OC; Wed, 16 Apr 2025 04:16:46 -0400 Received: from mail-pf1-x436.google.com ([2607:f8b0:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xwm-0005ti-5Q; Wed, 16 Apr 2025 04:16:41 -0400 Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-739be717eddso5044949b3a.2; Wed, 16 Apr 2025 01:16:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791396; x=1745396196; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kXW9TkBOCeygIoZUCLTmx3/WoYw9rEQTC6TItKA27ak=; b=SY4YoePHygCuqB5g3LPZxmx2fWWx4u5GXGqiDogVJMNwWA4RB01q5VXsHEPjaNB4pg qUCDY7z0Q9WkgKVE7x/xGI8MwO1z5gsS8ICm5/5FBtfpsQyWzLd/hSsoiTzJWQjSMo6p fJIne28AhGW2YVMPFoZkYUHHZ8jDZoT3nFChgwBxlSO6sslKogrtsIOPpPjPwRBFfgae t/Zvwf/mCVxCPmb7EKy9TWBWJ1VaLh7kKTrtiS4+drymCTE/iLiZ2/4wo4pn0C2ByKLU 66rZGeR0QA73AdbbZrQ99L0DVOUEYnm6oJVNCwpnqY0q0q7zchzFow5JKqp+4VAiJSnw 0Mtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791396; x=1745396196; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kXW9TkBOCeygIoZUCLTmx3/WoYw9rEQTC6TItKA27ak=; b=aod21WUJNsPBV37K4rU0xZWlYcRB3WRBqbboAE2R5KLwULX6mxdWRG60ZhLQWCBzdf 0XfUOwny2lZpzZ5ogpsi+D9iBfgKVzfcGua0vlSwSDsi05z9yuV2XUILZ9evF4OrwFYs wQPcul8DIDzbjfpmHfpqUqFo3HVreBqwP0HEKaXmgK0MkLjs08WxgFgrqLCz1Pi67hTP qcqk7Yc0Gp5Aa0jR1FTDwTfGoNRvFO982RFMSSrf4wub3y6AbfUVI696y3svAvSyUmol xbPhb9dExHohrhsPE3glfau+jeMaPvmKHnCY9ah1OuIEkRnIiV0qNjf1p8PNUZqBF+Nq YqqA== X-Forwarded-Encrypted: i=1; AJvYcCUqUPnSiChDEVgMK2yaZs5lCcnotHPeT5TmBtsBaV9aLqzLmHiuZFd1IS1S6kDilQYgDT1gTUFskVx5HQ==@nongnu.org, AJvYcCUtujKF8Mj82mhUkT2nTdeiAXm7PjjCat8jJcrFv73K1VqZ4s+6re62Yagl350141RJUHAlErbRBD4JKg==@nongnu.org, AJvYcCVNiqNJk3NK+W/ifpPT5dCNGwfDcwgZDspAgNEwjH1S4kc45VYUlNQ/qHItJ8ufyCwMud4/iftm7SA=@nongnu.org, AJvYcCVpJ99hmQfpjCrO/h3o+ewb0KBeK1BbEXURdvyZU7foU9W4gTPYscrsLNxQk1jt19GxJKBFbRLvTw==@nongnu.org X-Gm-Message-State: AOJu0YynJPqySq/LjjI+PxKwQY/gnFLyoHlbWUa3uS46aLAGF3WCLK0z W/vQE3fSkUcyHPg7CH4JMoW/ymtMe8f/rlNN2bGz4G20ZpwyEJZht0cOmgyY X-Gm-Gg: ASbGncuI6/0JcMKHZI2PHNJZ8NCnqzjYBlZ+giSDhoOGIWZWS+7QQoMjNMChQsTjlBc aSFU2wLrvoTuQFLi98n8RxgXYYFL02dj5zG0EAXZUTaM5q/lzZwFh4ffGINazPmhNrMNMwZi96y AgJS2EvVFXvT7k1eFIFjsJHySZPQVwf1XgQj6ntIX6eEPvKtb4oL9ijssMO5nq40yATLod1//6D qKFfZc+owgxi3hGNQot+Hbvf4PY0jzi1tXzk4EbNdFF1XGTQnSVhGz34jmgmxhMeIOA6TSsheaE Y6Ilm4UijNBM0g+Qo7mZaChP7549a6Fwqvnj5GbwDzTPZrVotdoAq5tRww== X-Google-Smtp-Source: AGHT+IFot2Prutev9vQh238P3Y8Qu6FWMP21RaEkJWIAAcrPZLBNFGYxFnfgXEoks8g52jfCfyjKGg== X-Received: by 2002:a05:6a00:ac2:b0:736:3be3:3d77 with SMTP id d2e1a72fcca58-73c267c9faemr1430041b3a.16.1744791395895; Wed, 16 Apr 2025 01:16:35 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.16.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:16:35 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 12/19] block: Update block to compile with Emscripten Date: Wed, 16 Apr 2025 17:14:17 +0900 Message-Id: <9da41d784991f77e2c1f38d0781cd047b593e053.1744787186.git.ktokunaga.mail@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::436; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x436.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org emscripten exposes copy_file_range declaration but doesn't provide the implementation in the final link. Define the emscripten-specific stub function to avoid type conflict with the emscripten's header. Signed-off-by: Kohei Tokunaga --- block/file-posix.c | 6 ++++++ stubs/emscripten.c | 13 +++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 stubs/emscripten.c diff --git a/block/file-posix.c b/block/file-posix.c index 56d1972d15..22e0ed5069 100644 --- a/block/file-posix.c +++ b/block/file-posix.c @@ -110,6 +110,10 @@ #include #endif +#ifdef EMSCRIPTEN +#include +#endif + /* OS X does not have O_DSYNC */ #ifndef O_DSYNC #ifdef O_SYNC @@ -2010,6 +2014,7 @@ static int handle_aiocb_write_zeroes_unmap(void *opaque) return handle_aiocb_write_zeroes(aiocb); } +#ifndef EMSCRIPTEN #ifndef HAVE_COPY_FILE_RANGE static off_t copy_file_range(int in_fd, off_t *in_off, int out_fd, off_t *out_off, size_t len, unsigned int flags) @@ -2023,6 +2028,7 @@ static off_t copy_file_range(int in_fd, off_t *in_off, int out_fd, #endif } #endif +#endif /* * parse_zone - Fill a zone descriptor diff --git a/stubs/emscripten.c b/stubs/emscripten.c new file mode 100644 index 0000000000..2157d6349b --- /dev/null +++ b/stubs/emscripten.c @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#include "qemu/osdep.h" +/* + * emscripten exposes copy_file_range declaration but doesn't provide the + * implementation in the final link. Define the stub here but avoid type + * conflict with the emscripten's header. + */ +ssize_t copy_file_range(int in_fd, off_t *in_off, int out_fd, + off_t *out_off, size_t len, unsigned int flags) +{ + errno = ENOSYS; + return -1; +} From patchwork Wed Apr 16 08:14:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053484 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A88E9C369BA for ; Wed, 16 Apr 2025 08:22:06 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xzw-000636-DF; Wed, 16 Apr 2025 04:19:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xwu-00025k-W6; Wed, 16 Apr 2025 04:16:56 -0400 Received: from mail-pf1-x42b.google.com ([2607:f8b0:4864:20::42b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xws-0005v0-J1; Wed, 16 Apr 2025 04:16:48 -0400 Received: by mail-pf1-x42b.google.com with SMTP id d2e1a72fcca58-736c062b1f5so5499966b3a.0; Wed, 16 Apr 2025 01:16:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791404; x=1745396204; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ccz4kSlOllk0cHThqsViRN91zI+kCPXhAybNKVHZI0w=; b=AfgbLcJQXBmGT0/CqE5COVr+lhjQskB/Vw08wG+Myv5ksWu5TEEDz8ey2ZOJvvsgYb JnYixP5JdvbmWXevjAtEQchtxl7C+JKoULvWLLKhT51UxhPML1bJpfKVF3pptggZgKGN bf9FYmER7KKUS84LPu0J4f3psT+OGVe6vb73E4dMHnVstwSOsuNjDKZu+1vARwYtBoN3 ZW+q7+iP+/WTcakAte9IRn4pR4ssa3CBCn861XIxEwt/cqKC7Fgs+cKFrB30BMx0bBu5 5+wpBFtnS4rzV1GkdLmvOMJoctmc+gNc4FbXEalVLcxvitn1KorfANyckaoWEXR0MrDU Gn1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791404; x=1745396204; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ccz4kSlOllk0cHThqsViRN91zI+kCPXhAybNKVHZI0w=; b=Clf8H5lrjVBQ4cm4bcoQRo++2MVAIGQYiI8PUTWh232dxLJJYphWBhWoYz5keb/jvC sfagj4rpqWmRmw36otp0uW9A3IdbvHNKPpQ6MmhK+UvUDlHrfPRWayZuXswSvdRTWc7K oBzIo9qP8pd1nnn/JTziz4Wr/iYfN1ajNQpPOCzMPearkrj30DBLpmbUyXKMn2TS/6my 6i0zT57hKhqBQphUKFKVThWT+SbqbNd2EwI0ejXmvxlWQp56iieXW+/POqrqhPeTiOOl wDKVQX4Yyde/UNpKrTk9vErMaSMvBqArLtZXQczuhSQ786o0Ax1bnUlKbEulPiwdYSyr keNw== X-Forwarded-Encrypted: i=1; AJvYcCURiaNlxT0laODNkPpTQsQBSV2NrsiVpyH84GlmybWBmOyaa5Dk3ABSepzbs5Vi5C8nSFMRI3k2ZxHvlg==@nongnu.org, AJvYcCUpn0k1d1cZMZPfTD8oHBKv+x+IsxNrPHF0J7XvTqXI+5qmSAadSrkOO736ENNillc8boTHMNU9LdXM7Q==@nongnu.org, AJvYcCWhSGJ7z1r1ZL0V6yLPMfGmYDu4CYMCu8nz/ioAW4XEcpeX5Q/iJgIdcn8A6BKCWT6uw8ZZgU5UqWU=@nongnu.org, AJvYcCXug7fqCpIXghWFy1zsngr/lVCMs39+S9H2y8qQA6/y4ExYvCnWD9WwrsoRudikhKjKbJxR9x4moA==@nongnu.org X-Gm-Message-State: AOJu0YyoqWSp8eDAgiWKa48hgqBuk7lAN5DK+0RagzydC/8//8T8D4sC zVXCTBSrBH+WMZQuHzk2Z3OJEtk1AevjKFLGUXAV+sigO8AbKCsJrU+n+cqb X-Gm-Gg: ASbGnctguwD0o33hd9YmcB5BbAwGdW6q17SzBFzBKlPA02LEbnhvpJ7yIKHyVQMQfSE Ig6Y6++PWYqsoJMtG3KcSvzbJaeIjtId7bOIh218ApFTYLvuWb/HExcaUMb76IoIgFKgCeptBa4 7ge+YB9fv7QIifUOAtVChiU5acS/wnU1T2Vay+LNY4fFilghQoePIZlCoURyjZ5PEXzw5aWP3Hr YWbOY1G9WLXHn0KIJvsxb1SErzc/TkX5lcaZjYKaVrJ7b/8xJw2OYEEvMQjkGFONZzlsPatlmOA Y8uLIAOh/WxNl1Pk87RPPKKUvsLFnIrjJE8TRoPAlulQWIKcFUAyyU5XSA== X-Google-Smtp-Source: AGHT+IH7FmqWppk3JQIuvW4w32pZOoVj/pSA/IO3rWgKznIiLqDu3RFZw5/AmwOBaT1ZsrARHCFbIg== X-Received: by 2002:a05:6a00:3d09:b0:739:b288:13e7 with SMTP id d2e1a72fcca58-73c267d3801mr1274214b3a.15.1744791403571; Wed, 16 Apr 2025 01:16:43 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.16.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:16:42 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 13/19] include/qemu/osdep.h: Add Emscripten-specific OS dependencies Date: Wed, 16 Apr 2025 17:14:18 +0900 Message-Id: <58863961cf88a72b76a90279da09ea332943924d.1744787186.git.ktokunaga.mail@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42b; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x42b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On emscripten, some implementations in os-posix.c can't be used such as daemonizing and changing user. This commit introduces os-wasm.c and os-wasm.h which are forked from os-posix.c and os-posix.h and patched for targetting Emscripten. Signed-off-by: Kohei Tokunaga --- include/qemu/osdep.h | 8 ++- include/system/os-posix.h | 3 +- include/system/os-wasm.h | 105 +++++++++++++++++++++++++++++++++ os-wasm.c | 119 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 232 insertions(+), 3 deletions(-) create mode 100644 include/system/os-wasm.h create mode 100644 os-wasm.c diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h index 4397a90680..96fe51bc39 100644 --- a/include/qemu/osdep.h +++ b/include/qemu/osdep.h @@ -8,7 +8,7 @@ * To avoid getting into possible circular include dependencies, this * file should not include any other QEMU headers, with the exceptions * of config-host.h, config-target.h, qemu/compiler.h, - * system/os-posix.h, system/os-win32.h, glib-compat.h and + * system/os-posix.h, system/os-win32.h, system/os-wasm.h, glib-compat.h and * qemu/typedefs.h, all of which are doing a similar job to this file * and are under similar constraints. * @@ -164,10 +164,14 @@ QEMU_EXTERN_C int daemon(int, int); #include "system/os-win32.h" #endif -#ifdef CONFIG_POSIX +#if defined(CONFIG_POSIX) && !defined(EMSCRIPTEN) #include "system/os-posix.h" #endif +#if defined(EMSCRIPTEN) +#include "system/os-wasm.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/include/system/os-posix.h b/include/system/os-posix.h index ce5b3bccf8..e87cc36a3a 100644 --- a/include/system/os-posix.h +++ b/include/system/os-posix.h @@ -1,5 +1,6 @@ /* - * posix specific declarations + * posix specific declarations forked from os-posix.c, removing functions not + * working on Emscripten * * Copyright (c) 2003-2008 Fabrice Bellard * Copyright (c) 2010 Jes Sorensen diff --git a/include/system/os-wasm.h b/include/system/os-wasm.h new file mode 100644 index 0000000000..061c123c6f --- /dev/null +++ b/include/system/os-wasm.h @@ -0,0 +1,105 @@ +/* SPDX-License-Identifier: MIT */ +/* + * posix specific declarations + * + * Copyright (c) 2003-2008 Fabrice Bellard + * Copyright (c) 2010 Jes Sorensen + * + * Forked from os-posix.h, removing functions not working on Emscripten + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef QEMU_OS_WASM_H +#define QEMU_OS_WASM_H + +#include +#include +#include +#include +#include +#include +#include + +#ifdef CONFIG_SYSMACROS +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +void os_set_line_buffering(void); +void os_setup_early_signal_handling(void); +void os_set_proc_name(const char *s); +void os_setup_signal_handling(void); +void os_setup_limits(void); +void os_setup_post(void); +int os_mlock(bool on_fault); +static inline int os_set_daemonize(bool d) +{ + return -1; +}; +bool is_daemonized(void); +static inline void os_daemonize(void) {} + +/** + * qemu_alloc_stack: + * @sz: pointer to a size_t holding the requested usable stack size + * + * Allocate memory that can be used as a stack, for instance for + * coroutines. If the memory cannot be allocated, this function + * will abort (like g_malloc()). This function also inserts an + * additional guard page to catch a potential stack overflow. + * Note that the memory required for the guard page and alignment + * and minimal stack size restrictions will increase the value of sz. + * + * The allocated stack must be freed with qemu_free_stack(). + * + * Returns: pointer to (the lowest address of) the stack memory. + */ +void *qemu_alloc_stack(size_t *sz); + +/** + * qemu_free_stack: + * @stack: stack to free + * @sz: size of stack in bytes + * + * Free a stack allocated via qemu_alloc_stack(). Note that sz must + * be exactly the adjusted stack size returned by qemu_alloc_stack. + */ +void qemu_free_stack(void *stack, size_t sz); + +/* POSIX and Mingw32 differ in the name of the stdio lock functions. */ + +static inline void qemu_flockfile(FILE *f) +{ + flockfile(f); +} + +static inline void qemu_funlockfile(FILE *f) +{ + funlockfile(f); +} + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/os-wasm.c b/os-wasm.c new file mode 100644 index 0000000000..d240c180c5 --- /dev/null +++ b/os-wasm.c @@ -0,0 +1,119 @@ +/* SPDX-License-Identifier: MIT */ +/* + * os-wasm.c + * Forked from os-posix.c, removing functions not working on Emscripten + * + * Copyright (c) 2003-2008 Fabrice Bellard + * Copyright (c) 2010 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "qemu/osdep.h" +#include +#include +#include +#include +#include + +#include "qemu/error-report.h" +#include "qemu/log.h" +#include "system/runstate.h" +#include "qemu/cutils.h" + +void os_setup_post(void){} +void os_set_line_buffering(void) +{ + setvbuf(stdout, NULL, _IOLBF, 0); +} +void os_setup_early_signal_handling(void) +{ + struct sigaction act; + sigfillset(&act.sa_mask); + act.sa_flags = 0; + act.sa_handler = SIG_IGN; + sigaction(SIGPIPE, &act, NULL); +} +void os_set_proc_name(const char *s) +{ + error_report("Change of process name not supported by your OS"); + exit(1); +} +static void termsig_handler(int signal, siginfo_t *info, void *c) +{ + qemu_system_killed(info->si_signo, info->si_pid); +} + +void os_setup_signal_handling(void) +{ + struct sigaction act; + + memset(&act, 0, sizeof(act)); + act.sa_sigaction = termsig_handler; + act.sa_flags = SA_SIGINFO; + sigaction(SIGINT, &act, NULL); + sigaction(SIGHUP, &act, NULL); + sigaction(SIGTERM, &act, NULL); +} +void os_setup_limits(void) +{ + struct rlimit nofile; + + if (getrlimit(RLIMIT_NOFILE, &nofile) < 0) { + warn_report("unable to query NOFILE limit: %s", strerror(errno)); + return; + } + + if (nofile.rlim_cur == nofile.rlim_max) { + return; + } + + nofile.rlim_cur = nofile.rlim_max; + + if (setrlimit(RLIMIT_NOFILE, &nofile) < 0) { + warn_report("unable to set NOFILE limit: %s", strerror(errno)); + return; + } +} +int os_mlock(bool on_fault) +{ +#ifdef HAVE_MLOCKALL + int ret = 0; + int flags = MCL_CURRENT | MCL_FUTURE; + + if (on_fault) { +#ifdef HAVE_MLOCK_ONFAULT + flags |= MCL_ONFAULT; +#else + error_report("mlockall: on_fault not supported"); + return -EINVAL; +#endif + } + + ret = mlockall(flags); + if (ret < 0) { + error_report("mlockall: %s", strerror(errno)); + } + + return ret; +#else + (void)on_fault; + return -ENOSYS; +#endif +} From patchwork Wed Apr 16 08:14:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053481 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 91548C369B1 for ; Wed, 16 Apr 2025 08:21:47 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4y11-00070v-97; Wed, 16 Apr 2025 04:21:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xx7-0002Js-EZ; Wed, 16 Apr 2025 04:17:02 -0400 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xx1-0005wK-S6; Wed, 16 Apr 2025 04:17:01 -0400 Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-7399838db7fso484460b3a.0; Wed, 16 Apr 2025 01:16:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791411; x=1745396211; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=c4klZ5LCWvRR7sigiHEe5f8QPHEXneqpNeiJtQ0wxIk=; b=Vt1MsfsSiqn7OeeZeGcghlg5iFcfNExSuooTExmpfL4G6tghpW42VryrIVRQPydTbi CbaggBvuyrY8+OtH3II1IewBfukvKrRqGJLwDwIUqdfBFa632pL4QIdHd3OLi1O1HulD Behirpad3911/WC5f4yF8LrGLeCPB7PnHvOEtgvqJRZH43MbI1/b4ppI1gdVM9U41Sg7 US44jg+nLE0whze9gj1H5EKX82uKwnIMl3P+prpDVvoIiZYcv8UaXDqvvr0sglT2sguU /pr6GwTL6n3qQVBfE8BEXX9h6lwovbMaf09UDliqEJOgMsNyi6hu+T2ae/kMZ2DESUJU miMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791411; x=1745396211; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c4klZ5LCWvRR7sigiHEe5f8QPHEXneqpNeiJtQ0wxIk=; b=UcScMRt6jM3pEQ3gsrEVsV3fY2t5ruKETzcean2hmBRSaYwN6ggxkopyZe1AXZeWsI bCQeJg7R9fh5n2HQtUX67owOx6YhjWtI+V9vNAHo7pMjNBgCG7tHCsWEr9C4wnrCpMNW W0nZkV93CU6/DX+PHU1vbER6s9G8OwUdwC36uE7ubuo1SXpH2YFiAE8YTduUVjHu1sTm PMGsuXM/60IQ289VyupkRxKGXaMO+VaIBPCtRUyjOXEwvDm5ZBzhbSknBUWAiWMEQd26 /22q8qgg/ErYoqsqpT+V0fNSiMUrCmN9VJeAgr5zU2GAFREncejOyg3jA5XjtTUwUsVB 7VzQ== X-Forwarded-Encrypted: i=1; AJvYcCU4qSsAn15G8UlrR+JoonAg4HXHRCOGdlYwJHs5W+hKed+lbf3+SZs4Wf3zvC8UJ+B1/G5RUYU7dFqFow==@nongnu.org, AJvYcCUNedkIWrxd+dwM/RdEYxBtQ8i3DGBGNffYOv7uJSmA2xHq2soGRqrwdHUVFxMmwWPRyFgeQojXF+E=@nongnu.org, AJvYcCVK1yCHLqG5Vsu7cURfrJXZMt6NAa4oVCBqZEjaVXgCIo7qGDDimR3LmJ3UHoIjJs6hn+bssF8wPA==@nongnu.org, AJvYcCX8IJcFsBWG2HboP9pRrsIuCGm+6rVQpog9P1jwMy/UzrMJNui3KhjqCeWJe05jJ2/jSJgXaGdJAZryjA==@nongnu.org X-Gm-Message-State: AOJu0Yzew0J+5YdYokH63u5Q4n+9r7ARqfGoZL9yD+wzI+IeuJrVT8gk GEC/7cQv1RPmRShvPH5M/PbMRYf1wNPfeoDStdniimn+8ux+URTvV3eNI1EL X-Gm-Gg: ASbGncskroP4MTsU3Wu4oF4C7r1QhR1XBdzOKsq0o4FZzX4IB30W47v5MZa/LbM0uXS DfFCnPdVoaFoDWmqZScFRKMs+izT8Vl0isy+pSU5kG+324G/dNtHS0VN6gO8ofVTn+uX2+b4CVD J8OoUCsj6nKQpw76m3LO0kAadDivlN52Y/svwEzYbm8XFdNJGSjxijZXXKewcwV2eF1zyyqAccc IQ4GpVHxqhIB+PulfBCBSaDq/Ic8QFlQmup4SlDH2fXTfdtQvhmp5FtDfe8iZl2n8Yw52GoMcLQ e+KeFhiUp0rDAfGcNb3p7nqitb6ARdcniTElY5bwlxg6FmkYvNsu6OnYng== X-Google-Smtp-Source: AGHT+IFhoIl7I56S7fT7c23WuBVz8x479Hd++Aam1yHes86eL19L43Zv+85HiEDav9c321yeBTTcSA== X-Received: by 2002:a05:6a00:2985:b0:736:4c3d:2cba with SMTP id d2e1a72fcca58-73c26dffd2cmr1421139b3a.9.1744791411149; Wed, 16 Apr 2025 01:16:51 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.16.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:16:50 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 14/19] Disable options unsupported on Emscripten Date: Wed, 16 Apr 2025 17:14:19 +0900 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::435; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x435.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Daemonizing and run-with aren't supported on Emscripten so disable these flags. Signed-off-by: Kohei Tokunaga --- qemu-options.hx | 4 +++- system/vl.c | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/qemu-options.hx b/qemu-options.hx index dc694a99a3..20ed22afe2 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -4863,9 +4863,11 @@ SRST ERST #ifndef _WIN32 +#ifndef EMSCRIPTEN DEF("daemonize", 0, QEMU_OPTION_daemonize, \ "-daemonize daemonize QEMU after initializing\n", QEMU_ARCH_ALL) #endif +#endif SRST ``-daemonize`` Daemonize the QEMU process after initialization. QEMU will not @@ -5249,7 +5251,7 @@ HXCOMM Internal use DEF("qtest", HAS_ARG, QEMU_OPTION_qtest, "", QEMU_ARCH_ALL) DEF("qtest-log", HAS_ARG, QEMU_OPTION_qtest_log, "", QEMU_ARCH_ALL) -#ifdef CONFIG_POSIX +#if defined(CONFIG_POSIX) && !defined(EMSCRIPTEN) DEF("run-with", HAS_ARG, QEMU_OPTION_run_with, "-run-with [async-teardown=on|off][,chroot=dir][user=username|uid:gid]\n" " Set miscellaneous QEMU process lifecycle options:\n" diff --git a/system/vl.c b/system/vl.c index 8d89394b45..255ea3be6b 100644 --- a/system/vl.c +++ b/system/vl.c @@ -766,7 +766,7 @@ static QemuOptsList qemu_smp_opts = { }, }; -#if defined(CONFIG_POSIX) +#if defined(CONFIG_POSIX) && !defined(EMSCRIPTEN) static QemuOptsList qemu_run_with_opts = { .name = "run-with", .head = QTAILQ_HEAD_INITIALIZER(qemu_run_with_opts.head), @@ -3677,7 +3677,7 @@ void qemu_init(int argc, char **argv) case QEMU_OPTION_nouserconfig: /* Nothing to be parsed here. Especially, do not error out below. */ break; -#if defined(CONFIG_POSIX) +#if defined(CONFIG_POSIX) && !defined(EMSCRIPTEN) case QEMU_OPTION_daemonize: os_set_daemonize(true); break; From patchwork Wed Apr 16 08:14:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053508 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 78DEDC369B1 for ; Wed, 16 Apr 2025 08:26:41 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4y1v-0007qy-0N; Wed, 16 Apr 2025 04:21:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xxB-0002PP-HC; Wed, 16 Apr 2025 04:17:08 -0400 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xx8-0005xa-Dd; Wed, 16 Apr 2025 04:17:04 -0400 Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-7399838db7fso484556b3a.0; Wed, 16 Apr 2025 01:17:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791419; x=1745396219; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LeWm4gdwYX7Mpk2+jTOfSOTsV04a2XRASVxxD/NFs3U=; b=Cny3sFPRfUHZZ2xZylXra+7azmFn0lCk7bAJCEFJ3FG2vv7vE5hqQC6vR+27L+KIMw YvSmDWMLt/ijcOWyynb9qxqX6scVlMFDK5pJRTXVMF3h0KsvO2dprP/t3R/Y6oexdW/n H6AJBWwD92GAXET7tUxu/AllcXIZ2Z1lqC7WNmdccKM1LrnfzWTS53gU+GwALQYnI/w4 DYoejAkDXWElON7fqPwtBk6we8xpFOnSaiRoTtyGL8D76N1Xcm9VB4oAZU9oLTynP63F Io0EAZ84xTsBtZsU/HmacK0Sklm2uPfeSh5k4A58DONNgZcGSnMorXawDa4q/eHnAyiW aCIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791419; x=1745396219; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LeWm4gdwYX7Mpk2+jTOfSOTsV04a2XRASVxxD/NFs3U=; b=mo+34i5AaG/uzqEOG6dObFgEFBDkDeMY81VHt8P+/gvDXHohszAaZXbLthzX5seAdx zJVyWf2BFFLxjVq5xw1EGKJLwpbHffZjWlaJhYjENCi9jSf7hq4BXN2oXdZko3P3mYts kO1PSF2EJ3nG48SX/pnJobhlnfSyYHVKGDYNrUWDN4IqHsAWWeT/aTCFdSfDQ+pAMpRV BD9+BveC/PN9Tx1z2tkBbcRLXh8gm2b3bGoCMVGnjc/hdUdowKA9yCpInNxa4BXufaSr la1n6HpiiQTbD902Vmg+6OScq4KRZCLd6Xqcb47qBuN48gS21Ul/irRahtABMThG5axo 5ecw== X-Forwarded-Encrypted: i=1; AJvYcCVMCAzBuViEulcCnQCy3VOQdLeu4jrP3cxDoV6YGMOWf2aFmGluiwX0VdkH/8HtizDymgi2nFDapA==@nongnu.org, AJvYcCVwhzqYp/HNgQPYKpkeY7z8BfoTLZel8Rf6JTdpUIySgbkIM/3owx25wBs60m5WTmgis4z0xO7YYuw=@nongnu.org, AJvYcCXZx8Db2XxhDnzjJvTEpeDWruMtR+EuJ8ciI1plRM6HBK5nP4OZIIqcbSsfnHZndlGgEK08voPRNQ2d0g==@nongnu.org, AJvYcCXrniY/wYrU/lJxx5fWwnBt0oY5dUt/ZzF/g4HQEc7XfFpQmOzDz7yO/Bchmiv+UQ7Tgtvom4403MRodQ==@nongnu.org X-Gm-Message-State: AOJu0Yyyi0xBoMgMWvsyzp6UW/MOalaUGWv2/EyANt3OjhsC0yOkUsNQ 2yJwQT3OmHu8LfH8Dqg9alZPnnzTPOwaIuNCKN3NsqI0wyK63xtCMWZFpeva X-Gm-Gg: ASbGncslPhoiaFx5UYA4HNqsyNj0t1a0glzpwL27ggWB+gFhk1Q5bfMCX+teKZTxIN9 jJjVI+aKrMo7uqvsCcNY+Ag76CTctaxl5Wvk+mI6BjLnQBQEwNDNr4FdncJyo1J6eUVtkVryVzR UNdepyuERa/IuWlEKbSKSrv0aYFkJn9ZKDteW53toCtRRR11qANhahk13eO8fYML6X3Fg6xdPZq WoI5KYPfl8xal4sj6I080Nkp8cIJR/N9BG9VjpYOGBaouhUo2x7ieE3hqTt8CtqutGUSOsVzvCM DWwYS40GNebnpYCHELq33cQc/Fl0QUrQbUXzJG380XWpJ0ashI9eKP+gJw== X-Google-Smtp-Source: AGHT+IEd5+lBFTcqmb1ye1d++AMi9QLiZpHeWhQhSUvm6Ej8uB7TB8VIvQgflEsDVgsqaenyzYpXOQ== X-Received: by 2002:a05:6a00:391b:b0:734:26c6:26d3 with SMTP id d2e1a72fcca58-73c26d39553mr1508336b3a.5.1744791419205; Wed, 16 Apr 2025 01:16:59 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.16.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:16:58 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 15/19] util/mmap-alloc: Add qemu_ram_mmap implementation for emscripten Date: Wed, 16 Apr 2025 17:14:20 +0900 Message-Id: <7ef485c860a0c26d2ddcf6a96430f5443deb5aee.1744787186.git.ktokunaga.mail@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::430; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x430.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Signed-off-by: Kohei Tokunaga --- util/mmap-alloc.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/util/mmap-alloc.c b/util/mmap-alloc.c index ed14f9c64d..91f33682e8 100644 --- a/util/mmap-alloc.c +++ b/util/mmap-alloc.c @@ -145,6 +145,7 @@ static bool map_noreserve_effective(int fd, uint32_t qemu_map_flags) return false; } +#ifndef EMSCRIPTEN /* * Reserve a new memory region of the requested size to be used for mapping * from the given fd (if any). @@ -176,6 +177,7 @@ static void *mmap_reserve(size_t size, int fd) return mmap(0, size, PROT_NONE, flags, fd, 0); } +#endif /* * Activate memory in a reserved region from the given fd (if any), to make @@ -244,6 +246,21 @@ static inline size_t mmap_guard_pagesize(int fd) #endif } +#ifdef EMSCRIPTEN +void *qemu_ram_mmap(int fd, + size_t size, + size_t align, + uint32_t qemu_map_flags, + off_t map_offset) +{ + /* + * emscripten doesn't support non-zero first argument for mmap so + * mmap a larger region without the hint and return an aligned pointer. + */ + void *ptr = mmap_activate(0, size + align, fd, qemu_map_flags, map_offset); + return (void *)QEMU_ALIGN_UP((uintptr_t)ptr, align); +} +#else void *qemu_ram_mmap(int fd, size_t size, size_t align, @@ -293,6 +310,7 @@ void *qemu_ram_mmap(int fd, return ptr; } +#endif /* EMSCRIPTEN */ void qemu_ram_munmap(int fd, void *ptr, size_t size) { From patchwork Wed Apr 16 08:14:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053507 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 463D3C369B1 for ; Wed, 16 Apr 2025 08:26:04 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xzy-00067W-FA; Wed, 16 Apr 2025 04:20:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xxJ-0002Xl-3G; Wed, 16 Apr 2025 04:17:29 -0400 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xxG-0005ye-C1; Wed, 16 Apr 2025 04:17:12 -0400 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-223fb0f619dso70489485ad.1; Wed, 16 Apr 2025 01:17:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791427; x=1745396227; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oIbAMZeonD1y/THuAvolLW7txmOpN+fF9GLLZzGqdZQ=; b=J/a+dx+JDpy+x8eWyQwXDmNCJ4+LX4g7/bvCenpJO6zsPIqtV+H/28k0kTv8WIhbxa Msfl787l8FwOTPa0x9qasqQ0gbTCnVsO12tghR3dWpkeH1prUEqmzxAOwr9ctGDfmJyE 3b0Pc186N8c54tGgDsvSjH69FxTHOM7zY9NxnN7LEC1yJTKfPJXOhhGJLbLSotmxR3km ggoqU+wVV7DmWQGKRnsnW1n+EEeCrkyFBAJDom7fpGBHbac2kBZ4pwkKnt4+jrDT0BOr b3MVdRvxmC3uViWMLwJZ1KpP+OhHEDfiNW87rWR/c1X5CStQ8Tb2ADWZ1SfhzXqiy471 jRsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791427; x=1745396227; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oIbAMZeonD1y/THuAvolLW7txmOpN+fF9GLLZzGqdZQ=; b=XAMBAoSlNlPyi3F04I9ahiJ5FBbDNddPiDDy0X1FUbbhHpGARcRxlZJfd+6RQ5bBN4 rQ2vpF6VJ4hWi1qWwuhk0kutgxf60eTJqRE27HQQG383LrlaVEWnVZcVHcqalY1oDWcM hbTmO8aFlAyrCs7ZlYxIeYC1DyDoHNvWdlFFj32oUoNLLyVf8catis9oPUx9ZTxGXSSo FBY2ljCaE6vKiV/LuHVNn7sJBjvynVoMOwGSo4xzW88hA76kH2/7iVEKzhLq89XZKbQw /BQdz6f1oJsFpzkBfxN1TSAaMdMmY+CVg1dB9lT0Ccka1l2DEmHYULcFSn4xdtam8Csp 1FZg== X-Forwarded-Encrypted: i=1; AJvYcCV//IyruN3q0KxvMGjQU0xhixoF7UHO+CPTyAiWN5jlkB8BWisKcSKJRRZvQWePMf/M66/z/N8mkjzxLQ==@nongnu.org, AJvYcCVUKyuMqxuX92DB8m32rf9qYEGcT5n7iJ9CNOKIB+D5yJfrAvacMziu27QQpqj3xYL7iuRxmbY1+o4=@nongnu.org, AJvYcCWijqgLNk2s0MKVDObAnczwE9aWjoaSLCnLKFYQ2tkOcXPvFAuOHa4x/XuBP5IAQd+bHBV2xkGgCA==@nongnu.org, AJvYcCXOLfAioAemkqobYc8ZQ1xDoYUKn1wQ/m2mGZDlqhTnD52OEm3EcMdjunhHu05nm8VeJhbkuiPsyEyFkw==@nongnu.org X-Gm-Message-State: AOJu0YxaA6aG8e9wjLbN5R3bcq/XvdSH+b8e6Hy5Q+LlFKQ7ZdcUz+Tw 1xBfl3euhvJP9tHYAew2j2XKFna9pdaJdJC0brQ1RcZcsoBJpgut7j/RsANL X-Gm-Gg: ASbGncslSF36zWQqoVZbd3S5FPC5zqGmnVRmDoywEwCy4i9ScM65PIT4BJAmSnanG/p /DwXhLfpdr8QJcZS2Tko4rZ+JqTLQoRiiwZgn8piMy3iy1VWPAi4Mqax67SNEeLKt1djuAf/unl 8skNQ1NUSn4lqiUOfKMVWCrJUNdpURHrslm//GJr6qTUKAsNFL/obXEFIXQoMWKIxFOXn7NSmfr LUeU7eqUxX0mdKhZqvFyGlFCIVr452DFnf5i+sxopi9YOhoj+6d8O+TOvJNVik3hc1Pxy74cW5d sln4vifLyKPYggKHcLrEMJ4nGP4K6l3xBVegHhz6Fxj2NdIGfDKO+A3DQg== X-Google-Smtp-Source: AGHT+IFYdhSnB9zITJ1aITjDAOjnlnlic7rRWk+WIB51c/0DcssgTKezLLv7xrxaBupxkzncoPYm3w== X-Received: by 2002:a17:902:ef01:b0:223:517c:bfa1 with SMTP id d9443c01a7336-22c3597ec25mr17871905ad.38.1744791426992; Wed, 16 Apr 2025 01:17:06 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.16.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:17:06 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 16/19] util: Add coroutine backend for emscripten Date: Wed, 16 Apr 2025 17:14:21 +0900 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Emscripten does not support couroutine methods currently used by QEMU but provides a coroutine implementation called "fiber". This commit introduces a coroutine backend using fiber. Note that fiber does not support submitting coroutines to other threads. Signed-off-by: Kohei Tokunaga --- util/coroutine-wasm.c | 127 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 util/coroutine-wasm.c diff --git a/util/coroutine-wasm.c b/util/coroutine-wasm.c new file mode 100644 index 0000000000..cb1ec92509 --- /dev/null +++ b/util/coroutine-wasm.c @@ -0,0 +1,127 @@ +/* + * emscripten fiber coroutine initialization code + * based on coroutine-ucontext.c + * + * Copyright (C) 2006 Anthony Liguori + * Copyright (C) 2011 Kevin Wolf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.0 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#include "qemu/osdep.h" +#include "qemu/coroutine_int.h" +#include "qemu/coroutine-tls.h" + +#include + +typedef struct { + Coroutine base; + void *stack; + size_t stack_size; + + void *asyncify_stack; + size_t asyncify_stack_size; + + CoroutineAction action; + + emscripten_fiber_t fiber; +} CoroutineEmscripten; + +/** + * Per-thread coroutine bookkeeping + */ +QEMU_DEFINE_STATIC_CO_TLS(Coroutine *, current); +QEMU_DEFINE_STATIC_CO_TLS(CoroutineEmscripten *, leader); +size_t leader_asyncify_stack_size = COROUTINE_STACK_SIZE; + +static void coroutine_trampoline(void *co_) +{ + Coroutine *co = co_; + + while (true) { + co->entry(co->entry_arg); + qemu_coroutine_switch(co, co->caller, COROUTINE_TERMINATE); + } +} + +Coroutine *qemu_coroutine_new(void) +{ + CoroutineEmscripten *co; + + co = g_malloc0(sizeof(*co)); + + co->stack_size = COROUTINE_STACK_SIZE; + co->stack = qemu_alloc_stack(&co->stack_size); + + co->asyncify_stack_size = COROUTINE_STACK_SIZE; + co->asyncify_stack = g_malloc0(co->asyncify_stack_size); + emscripten_fiber_init(&co->fiber, coroutine_trampoline, &co->base, + co->stack, co->stack_size, co->asyncify_stack, + co->asyncify_stack_size); + + return &co->base; +} + +void qemu_coroutine_delete(Coroutine *co_) +{ + CoroutineEmscripten *co = DO_UPCAST(CoroutineEmscripten, base, co_); + + qemu_free_stack(co->stack, co->stack_size); + g_free(co->asyncify_stack); + g_free(co); +} + +CoroutineAction qemu_coroutine_switch(Coroutine *from_, Coroutine *to_, + CoroutineAction action) +{ + CoroutineEmscripten *from = DO_UPCAST(CoroutineEmscripten, base, from_); + CoroutineEmscripten *to = DO_UPCAST(CoroutineEmscripten, base, to_); + + set_current(to_); + to->action = action; + emscripten_fiber_swap(&from->fiber, &to->fiber); + return from->action; +} + +Coroutine *qemu_coroutine_self(void) +{ + Coroutine *self = get_current(); + + if (!self) { + CoroutineEmscripten *leaderp = get_leader(); + if (!leaderp) { + leaderp = g_malloc0(sizeof(*leaderp)); + leaderp->asyncify_stack = g_malloc0(leader_asyncify_stack_size); + leaderp->asyncify_stack_size = leader_asyncify_stack_size; + emscripten_fiber_init_from_current_context( + &leaderp->fiber, + leaderp->asyncify_stack, + leaderp->asyncify_stack_size); + leaderp->stack = leaderp->fiber.stack_limit; + leaderp->stack_size = + leaderp->fiber.stack_base - leaderp->fiber.stack_limit; + set_leader(leaderp); + } + self = &leaderp->base; + set_current(self); + } + return self; +} + +bool qemu_in_coroutine(void) +{ + Coroutine *self = get_current(); + + return self && self->caller; +} From patchwork Wed Apr 16 08:14:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053509 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1F8DFC369B1 for ; Wed, 16 Apr 2025 08:27:21 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4xzV-0005ig-1W; Wed, 16 Apr 2025 04:19:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xxQ-0002YT-UD; Wed, 16 Apr 2025 04:17:29 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xxO-0005zq-Oy; Wed, 16 Apr 2025 04:17:20 -0400 Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-7370a2d1981so5089468b3a.2; Wed, 16 Apr 2025 01:17:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791435; x=1745396235; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CZIwhkm1gYZydgV34GIP0NP1/+QooaD1oJOOb4q2f3I=; b=LGx1aSBhL4X0HmMih4ACwsngW5cwGaMylsAYjrfPuy0Ji+ThQi6TmgazEGy0yqI460 /V1YbPuL/VrWTyaENOXIc04SsiLOBbXNOduMuaHRYg+yHjcx6wYXjY7zQPQfnVeC08Ji ki5AXl5YBov0wK5gJ0KS3OltZFD7LDu40D2Jxb95p01kCTsd6KLq+NXymZHmWXXCS6F0 zz/iXMN7Nybmc1C476PO4inp2LWXbC+hNIu/lS0xha/SSVpsNgqFK6YSP8t6zl51IGL/ fRlunFzvTLz+5hTAV0QYhZgJditiEocAUcAnHqDy/uBrxaCisT9sVAfTl1Mpu2864jip ZamQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791435; x=1745396235; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CZIwhkm1gYZydgV34GIP0NP1/+QooaD1oJOOb4q2f3I=; b=g5JXMkq/773MAxg+hofKJZPWHZzclYPm1yivN2THarvmciXGCO7aW023ptGA/PNKaT tJ2SxJkRdmK4rXOzCAyWQa668tJb0e5GSQwB6DrhWwui9TLfXuPClLBVEzBSQUE5V1CQ zuFRtPIJtPUtgbBF3XgkrcinusyfuxqQzs+3DP3KQXgaE1gmC6SRlek24sUugNvG60L9 OF/AzmeOse2b47H7ggza51NvEocmPbaqAcXg3KT2N04pMR31SvjzE3kienlRUSYLTxIm iCoDVkF2PCSwCLIPxUd3iJMliivPEbgazqoQAIHYgOh3RBNv1pO72Pgz2zbQ3LnnHyeo zigQ== X-Forwarded-Encrypted: i=1; AJvYcCU1zM6FS+HXnxRbCzjuwdZ608/1HD0rVR2fLVAfn6Z5fIfuXPTZ2k0jaQqp+6z9sQP2V3ZSOluSZz0=@nongnu.org, AJvYcCUzk1/+Derk2OuIRHOe75zhXspyX+uQIiP7OGmQX2tY4vBZKdQKpcPIogdMCE+FHLhLrYwSWOvQjlWBXw==@nongnu.org, AJvYcCWizXA/Dq5vhv5rgrXFzGm3aB6nGWpgsO4wYk7cLIwKDbGckHriPeVvW2VHFf5qp0Q3Pts/JB8Xlw==@nongnu.org, AJvYcCXWhHliy8qIFkJbODXA3wC7pG2ami9fhkKcLvSNj/reGY6x9K9oOVLej5/gGf0OeZY/jTmcAONGWs05pw==@nongnu.org X-Gm-Message-State: AOJu0YwTGYgNOYffpuTy5h+fXdjteZ1XlU7K9Zz7xNo7w0jVZyr/vfXl Kfry1YKzqbS07sxKRFCfBL8f3TyeX9wOZfvlM//lGrLSS+NF63ErjKBWsKIY X-Gm-Gg: ASbGncvBeAkWMmSSa5b0KmPrxtGfCYCqTAANQE/h4dVGqJHx0npJxLqTmZ5SfAkyqH7 9etbIj3A68W+ZsMt8Q4Emw5B2pELYAnlorF0aWINZN7veEMVpZu1w2ryx6Ks3QKPYrNeiSuR19L LihTdAwNrbBVCiz1z4BIzoxsGteX/yOP/Bq2Yaiz+B5GEkWrYnURBCxmkfH0M+PupMK/HOdfyyu No08CvYilBz90Ykhcd29j7sObXqxn7L0emLBmVu8Lqw3hli3n4IEH4XfDJeltd0aA8rXWjukK2c 0Le5gon0o1N9/x8KVcgC7vgpxTot1ECqHWDvTHMZHADZF0rXlTJLGb9e7g== X-Google-Smtp-Source: AGHT+IGgzIJ5eER9yj0z1vC7FNinP2KD441XkBQRF9R/Tll92nVYI2cqMr8iiCC2EUQts7Tm457VMw== X-Received: by 2002:a05:6a21:3a8c:b0:1f5:852a:dd8a with SMTP id adf61e73a8af0-203b3fc053bmr1269534637.28.1744791434901; Wed, 16 Apr 2025 01:17:14 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.17.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:17:14 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 17/19] meson: Add wasm build in build scripts Date: Wed, 16 Apr 2025 17:14:22 +0900 Message-Id: <835dfef61307a941cdb58331607c308238d37e00.1744787186.git.ktokunaga.mail@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42c; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x42c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org has_int128_type is set to false on emscripten as of now to avoid errors by libffi. Tests are disabled on emscripten because they rely on host features that aren't supported by emscripten (e.g. fork and unix socket). Signed-off-by: Kohei Tokunaga --- configs/meson/emscripten.txt | 8 ++++++++ configure | 7 +++++++ meson.build | 25 ++++++++++++++++++++----- meson_options.txt | 2 +- scripts/meson-buildoptions.sh | 2 +- stubs/meson.build | 4 ++++ 6 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 configs/meson/emscripten.txt diff --git a/configs/meson/emscripten.txt b/configs/meson/emscripten.txt new file mode 100644 index 0000000000..4230e88005 --- /dev/null +++ b/configs/meson/emscripten.txt @@ -0,0 +1,8 @@ +[built-in options] +c_args = ['-pthread'] +cpp_args = ['-pthread'] +objc_args = ['-pthread'] +# -sPROXY_TO_PTHREAD link time flag always requires -pthread even during +# configuration so explicitly add the flag here. +c_link_args = ['-pthread','-sASYNCIFY=1','-sPROXY_TO_PTHREAD=1','-sFORCE_FILESYSTEM','-sALLOW_TABLE_GROWTH','-sTOTAL_MEMORY=2GB','-sWASM_BIGINT','-sEXPORT_ES6=1','-sASYNCIFY_IMPORTS=ffi_call_js','-sEXPORTED_RUNTIME_METHODS=addFunction,removeFunction,TTY,FS'] +cpp_link_args = ['-pthread','-sASYNCIFY=1','-sPROXY_TO_PTHREAD=1','-sFORCE_FILESYSTEM','-sALLOW_TABLE_GROWTH','-sTOTAL_MEMORY=2GB','-sWASM_BIGINT','-sEXPORT_ES6=1','-sASYNCIFY_IMPORTS=ffi_call_js','-sEXPORTED_RUNTIME_METHODS=addFunction,removeFunction,TTY,FS'] diff --git a/configure b/configure index 02f1dd2311..a1fe6e11cd 100755 --- a/configure +++ b/configure @@ -360,6 +360,10 @@ elif check_define __NetBSD__; then host_os=netbsd elif check_define __APPLE__; then host_os=darwin +elif check_define EMSCRIPTEN ; then + host_os=emscripten + cpu=wasm32 + cross_compile="yes" else # This is a fatal error, but don't report it yet, because we # might be going to just print the --help text, or it might @@ -526,6 +530,9 @@ case "$cpu" in linux_arch=x86 CPU_CFLAGS="-m64" ;; + wasm32) + CPU_CFLAGS="-m32" + ;; esac if test -n "$host_arch" && { diff --git a/meson.build b/meson.build index 41f68d3806..c9aa5016d6 100644 --- a/meson.build +++ b/meson.build @@ -50,9 +50,9 @@ genh = [] qapi_trace_events = [] bsd_oses = ['gnu/kfreebsd', 'freebsd', 'netbsd', 'openbsd', 'dragonfly', 'darwin'] -supported_oses = ['windows', 'freebsd', 'netbsd', 'openbsd', 'darwin', 'sunos', 'linux'] +supported_oses = ['windows', 'freebsd', 'netbsd', 'openbsd', 'darwin', 'sunos', 'linux', 'emscripten'] supported_cpus = ['ppc', 'ppc64', 's390x', 'riscv32', 'riscv64', 'x86', 'x86_64', - 'arm', 'aarch64', 'loongarch64', 'mips', 'mips64', 'sparc64'] + 'arm', 'aarch64', 'loongarch64', 'mips', 'mips64', 'sparc64', 'wasm32'] cpu = host_machine.cpu_family() @@ -353,6 +353,8 @@ foreach lang : all_languages # endif #endif''') # ok + elif compiler.get_id() == 'emscripten' + # ok else error('You either need GCC v7.4 or Clang v10.0 (or XCode Clang v15.0) to compile QEMU') endif @@ -470,7 +472,10 @@ endif # instead, we can't add -no-pie because it overrides -shared: the linker then # tries to build an executable instead of a shared library and fails. So # don't add -no-pie anywhere and cross fingers. :( -if not get_option('b_pie') +# +# Emscripten doesn't support -no-pie but meson can't catch the compiler +# warning. So explicitly omit the flag for Emscripten. +if not get_option('b_pie') and host_os != 'emscripten' qemu_common_flags += cc.get_supported_arguments('-fno-pie', '-no-pie') endif @@ -514,6 +519,8 @@ ucontext_probe = ''' supported_backends = [] if host_os == 'windows' supported_backends += ['windows'] +elif host_os == 'emscripten' + supported_backends += ['wasm'] else if host_os != 'darwin' and cc.links(ucontext_probe) supported_backends += ['ucontext'] @@ -2962,7 +2969,9 @@ config_host_data.set('CONFIG_ATOMIC64', cc.links(''' return 0; }''', args: qemu_isa_flags)) -has_int128_type = cc.compiles(''' +# has_int128_type is set to false on Emscripten to avoid errors by libffi +# during runtime. +has_int128_type = host_os != 'emscripten' and cc.compiles(''' __int128_t a; __uint128_t b; int main(void) { b = a; }''') @@ -3774,6 +3783,8 @@ if have_block # os-win32.c does not if host_os == 'windows' system_ss.add(files('os-win32.c')) + elif host_os == 'emscripten' + blockdev_ss.add(files('os-wasm.c')) else blockdev_ss.add(files('os-posix.c')) endif @@ -4456,7 +4467,11 @@ subdir('scripts') subdir('tools') subdir('pc-bios') subdir('docs') -subdir('tests') +# Tests are disabled on emscripten because they rely on host features that aren't +# supported by emscripten (e.g. fork and unix socket). +if host_os != 'emscripten' + subdir('tests') +endif if gtk.found() subdir('po') endif diff --git a/meson_options.txt b/meson_options.txt index 59d973bca0..45772484cc 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -34,7 +34,7 @@ option('fuzzing_engine', type : 'string', value : '', option('trace_file', type: 'string', value: 'trace', description: 'Trace file prefix for simple backend') option('coroutine_backend', type: 'combo', - choices: ['ucontext', 'sigaltstack', 'windows', 'auto'], + choices: ['ucontext', 'sigaltstack', 'windows', 'wasm', 'auto'], value: 'auto', description: 'coroutine backend to use') # Everything else can be set via --enable/--disable-* option diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh index 3e8e00852b..0568385f00 100644 --- a/scripts/meson-buildoptions.sh +++ b/scripts/meson-buildoptions.sh @@ -80,7 +80,7 @@ meson_options_help() { printf "%s\n" ' --tls-priority=VALUE Default TLS protocol/cipher priority string' printf "%s\n" ' [NORMAL]' printf "%s\n" ' --with-coroutine=CHOICE coroutine backend to use (choices:' - printf "%s\n" ' auto/sigaltstack/ucontext/windows)' + printf "%s\n" ' auto/sigaltstack/ucontext/windows/wasm)' printf "%s\n" ' --with-pkgversion=VALUE use specified string as sub-version of the' printf "%s\n" ' package' printf "%s\n" ' --with-suffix=VALUE Suffix for QEMU data/modules/config directories' diff --git a/stubs/meson.build b/stubs/meson.build index 63392f5e78..4fd4d362f9 100644 --- a/stubs/meson.build +++ b/stubs/meson.build @@ -89,3 +89,7 @@ if have_system or have_user stub_ss.add(files('hotplug-stubs.c')) stub_ss.add(files('sysbus.c')) endif + +if host_os == 'emscripten' + stub_ss.add(files('emscripten.c')) +endif \ No newline at end of file From patchwork Wed Apr 16 08:14:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053506 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D3D14C369B1 for ; Wed, 16 Apr 2025 08:24:45 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4y1q-0007ij-8D; Wed, 16 Apr 2025 04:21:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xxc-0002dS-Vs; Wed, 16 Apr 2025 04:17:36 -0400 Received: from mail-pf1-x42f.google.com ([2607:f8b0:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xxW-00060u-5a; Wed, 16 Apr 2025 04:17:32 -0400 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-7396f13b750so6692736b3a.1; Wed, 16 Apr 2025 01:17:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791443; x=1745396243; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Qh7ZvjfwF1hD8dMzut82Yi3dWFW09ht1e9BNINW8RSM=; b=esGnx8x/CUVmPkGBvgPVinz39yTzgxyBkybk6scifMTveX5bdEt68NSKV80VxvUYQk ukwR55OKdc5+TvxTtTXzLSfEeuiS3/O4f1trlv0096+/VTvLH66mMgdHbrmUdcm7/nTf 9jqP/dZf/ufJmsgw348CbbiYyQ7fQ/OHFYfYtUc0hSpLpKNE4p1neSAXIV9iZYaE0PdN a12wfSFf6jMXjxR7uEOPdw6ErNFuem6JsVRalqGCoQFgZHdseee7d+tcLxXgNNQBKn4F b1yWQUpKLQog/wiVYbZ21/f52yzPHtYiLzlMyNs5NNqHMVZUlU9OKhe+xljTbNDjxCwt Hpgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791443; x=1745396243; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Qh7ZvjfwF1hD8dMzut82Yi3dWFW09ht1e9BNINW8RSM=; b=L8Xnh9OWqW/3FnoiK/uyZrLPgl7e09+RoqyVGlltqTUP8dA4MxJ05vpgf57dLUbfWS Dkyr/NOkZkOUADQ1VlYAL53+Zi0fVscu0QbcDIl25Proy5rf3h1KB2GULv/tnklDq4Tg g7yGIvOS+T/E1pE+8bexoBcg008eReJD/yQg1NIt0XTM154bdJalktngicyCAok6VEPd Z66xc9kcj6kLys/8iyjtltDpsUCRJZoCzG9lsZKPJq8Xp2+Euz9BMUszp/NRbsMkC237 l0v6Q0WFRCkHUpRqHOZtkLkZjj7fLAhFr6U7x1R6RzDqI+6lw0DUt4qu2xM9Ou3jUHJq /Kag== X-Forwarded-Encrypted: i=1; AJvYcCVlvwhPIHAcTFhScK5JC9K5b3nL8elxlJ3n1ONJ5wXAY4fl7RXkIdMInGiyo5s30qN5wNxs0npEP8WXCA==@nongnu.org, AJvYcCW5nJxDbqeKXv2L/YXTi2JOKkZ7TGrZ0KK8gxRlFopIPURhtcvbKTwhhrLbCJp9sezUCpgaCH740T+NZQ==@nongnu.org, AJvYcCWMXfVdGyIU4xXl3U/nI3LJQ3mFChiADbUgLANemLETQyznOuuUvPCvfND0gNR5t2jOxhAQRWb4mA==@nongnu.org, AJvYcCXWEGHEBByD5ephG7bD3rP8f80l+fU9Ywey+wULrBBzpK7rTmCGqSX63ahKTlZsETYvaME4TxT22Yc=@nongnu.org X-Gm-Message-State: AOJu0YxOVXA58Q61fqfeb8Y4REAgooAr7yHoIlyLGVxlc70I0T+t42uG XcBC9MpsddPv/vUF0LpKgPuW3neG9PVgjywToJDp/B5IhfIf+lgS3i+S/Dd8 X-Gm-Gg: ASbGncs0N5HiySAz1i1+Pxl7oCdyHPBlh62/NAqsAy+2DfXeKTLElwNV+bxPBwIOHPh ukwSg+HJ6dor4EqG3xbZ5/ae7XE2smhXtLfEmvmHe2MAOeK0qHt6l2dMRrgRatqgNkbrgro6NWq o11Ze/gmHXPTyDyKtaWhmkYUN1D+GPQP0u5vjEl+hzckZTTxvYwMbcuj7wL7xkCPaBl12zvj2qy 8zTw+3reX0G55c0AmvIV6u1gTocEj8ZROGCZIr4WSk1czlqQVx8WqEDsVi3dxRA/ZU+Z5G1zQJM rceuX+5BQoNU1WsWYUZBvYD3pCNQIxckrxHcSw7v/SnSCZFevmbiglC6Ig== X-Google-Smtp-Source: AGHT+IFCeHlptEnbJhSJmI0VWsiGyayCzWAUrXdaQCdZgbcfPLImuN5NBzUlCdW6/hhmr03FFM2KKw== X-Received: by 2002:a05:6a00:279f:b0:736:3e50:bfec with SMTP id d2e1a72fcca58-73c266e7905mr1632687b3a.8.1744791442486; Wed, 16 Apr 2025 01:17:22 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.17.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:17:21 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 18/19] gitlab: Enable CI for wasm build Date: Wed, 16 Apr 2025 17:14:23 +0900 Message-Id: <16055d17cadcb5f4c23203218cb8fc3fa81d1754.1744787186.git.ktokunaga.mail@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42f; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x42f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Add GitLab CI job that builds QEMU using emscripten. The build runs in the added Dockerfile that contains dependencies (glib, libffi, pixman, zlib) compiled by emscripten. Signed-off-by: Kohei Tokunaga --- .gitlab-ci.d/buildtest-template.yml | 27 ++++ .gitlab-ci.d/buildtest.yml | 9 ++ .gitlab-ci.d/container-cross.yml | 5 + .../dockerfiles/emsdk-wasm32-cross.docker | 145 ++++++++++++++++++ 4 files changed, 186 insertions(+) create mode 100644 tests/docker/dockerfiles/emsdk-wasm32-cross.docker diff --git a/.gitlab-ci.d/buildtest-template.yml b/.gitlab-ci.d/buildtest-template.yml index 39da7698b0..67167d68a5 100644 --- a/.gitlab-ci.d/buildtest-template.yml +++ b/.gitlab-ci.d/buildtest-template.yml @@ -126,3 +126,30 @@ - du -chs ${CI_PROJECT_DIR}/*-cache variables: QEMU_JOB_AVOCADO: 1 + +.wasm_build_job_template: + extends: .base_job_template + stage: build + image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG + before_script: + - source scripts/ci/gitlab-ci-section + - section_start setup "Pre-script setup" + - JOBS=$(expr $(nproc) + 1) + - section_end setup + script: + - du -sh .git + - mkdir build + - cd build + - section_start configure "Running configure" + - emconfigure ../configure --disable-docs + ${TARGETS:+--target-list="$TARGETS"} + $CONFIGURE_ARGS || + { cat config.log meson-logs/meson-log.txt && exit 1; } + - if test -n "$LD_JOBS"; + then + pyvenv/bin/meson configure . -Dbackend_max_links="$LD_JOBS" ; + fi || exit 1; + - section_end configure + - section_start build "Building QEMU" + - emmake make -j"$JOBS" + - section_end build diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml index 00f4bfcd9f..0f92d5313a 100644 --- a/.gitlab-ci.d/buildtest.yml +++ b/.gitlab-ci.d/buildtest.yml @@ -801,3 +801,12 @@ coverity: when: never # Always manual on forks even if $QEMU_CI == "2" - when: manual + +build-wasm: + extends: .wasm_build_job_template + timeout: 2h + needs: + job: wasm-emsdk-cross-container + variables: + IMAGE: emsdk-wasm32-cross + CONFIGURE_ARGS: --static --disable-tools --enable-debug --enable-tcg-interpreter diff --git a/.gitlab-ci.d/container-cross.yml b/.gitlab-ci.d/container-cross.yml index 34c0e729ad..3ea4971950 100644 --- a/.gitlab-ci.d/container-cross.yml +++ b/.gitlab-ci.d/container-cross.yml @@ -94,3 +94,8 @@ win64-fedora-cross-container: extends: .container_job_template variables: NAME: fedora-win64-cross + +wasm-emsdk-cross-container: + extends: .container_job_template + variables: + NAME: emsdk-wasm32-cross diff --git a/tests/docker/dockerfiles/emsdk-wasm32-cross.docker b/tests/docker/dockerfiles/emsdk-wasm32-cross.docker new file mode 100644 index 0000000000..60a7d02f56 --- /dev/null +++ b/tests/docker/dockerfiles/emsdk-wasm32-cross.docker @@ -0,0 +1,145 @@ +# syntax = docker/dockerfile:1.5 + +ARG EMSDK_VERSION_QEMU=3.1.50 +ARG ZLIB_VERSION=1.3.1 +ARG GLIB_MINOR_VERSION=2.84 +ARG GLIB_VERSION=${GLIB_MINOR_VERSION}.0 +ARG PIXMAN_VERSION=0.44.2 +ARG FFI_VERSION=v3.4.7 +ARG MESON_VERSION=1.5.0 + +FROM emscripten/emsdk:$EMSDK_VERSION_QEMU AS build-base +ARG MESON_VERSION +ENV TARGET=/builddeps/target +ENV CPATH="$TARGET/include" +ENV PKG_CONFIG_PATH="$TARGET/lib/pkgconfig" +ENV EM_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" +ENV CFLAGS="-O3 -pthread -DWASM_BIGINT" +ENV CXXFLAGS="$CFLAGS" +ENV LDFLAGS="-sWASM_BIGINT -sASYNCIFY=1 -L$TARGET/lib" +RUN apt-get update && apt-get install -y \ + autoconf \ + build-essential \ + libglib2.0-dev \ + libtool \ + pkgconf \ + ninja-build \ + python3-pip +RUN pip3 install meson==${MESON_VERSION} tomli +RUN mkdir /build +WORKDIR /build +RUN mkdir -p $TARGET +RUN < /cross.meson +[host_machine] +system = 'emscripten' +cpu_family = 'wasm32' +cpu = 'wasm32' +endian = 'little' + +[binaries] +c = 'emcc' +cpp = 'em++' +ar = 'emar' +ranlib = 'emranlib' +pkgconfig = ['pkg-config', '--static'] +EOT +EOF + +FROM build-base AS zlib-dev +ARG ZLIB_VERSION +RUN mkdir -p /zlib +RUN curl -Ls https://zlib.net/zlib-$ZLIB_VERSION.tar.xz | \ + tar xJC /zlib --strip-components=1 +WORKDIR /zlib +RUN emconfigure ./configure --prefix=$TARGET --static +RUN emmake make install -j$(nproc) + +FROM build-base AS libffi-dev +ARG FFI_VERSION +RUN mkdir -p /libffi +RUN git clone https://github.com/libffi/libffi /libffi +WORKDIR /libffi +RUN git checkout $FFI_VERSION +RUN autoreconf -fiv +RUN emconfigure ./configure --host=wasm32-unknown-linux \ + --prefix=$TARGET --enable-static \ + --disable-shared --disable-dependency-tracking \ + --disable-builddir --disable-multi-os-directory \ + --disable-raw-api --disable-docs +RUN emmake make install SUBDIRS='include' -j$(nproc) + +FROM build-base AS pixman-dev +ARG PIXMAN_VERSION +RUN mkdir /pixman/ +RUN git clone https://gitlab.freedesktop.org/pixman/pixman /pixman/ +WORKDIR /pixman +RUN git checkout pixman-$PIXMAN_VERSION +RUN <> /cross.meson +[built-in options] +c_args = [$(printf "'%s', " $CFLAGS | sed 's/, $//')] +cpp_args = [$(printf "'%s', " $CFLAGS | sed 's/, $//')] +objc_args = [$(printf "'%s', " $CFLAGS | sed 's/, $//')] +c_link_args = [$(printf "'%s', " $LDFLAGS | sed 's/, $//')] +cpp_link_args = [$(printf "'%s', " $LDFLAGS | sed 's/, $//')] +EOT +EOF +RUN meson setup _build --prefix=$TARGET --cross-file=/cross.meson \ + --default-library=static \ + --buildtype=release -Dtests=disabled -Ddemos=disabled +RUN meson install -C _build + +FROM build-base AS glib-dev +ARG GLIB_VERSION +ARG GLIB_MINOR_VERSION +RUN mkdir -p /stub +WORKDIR /stub +RUN < res_query.c +#include +int res_query(const char *name, int class, + int type, unsigned char *dest, int len) +{ + h_errno = HOST_NOT_FOUND; + return -1; +} +EOT +EOF +RUN emcc ${CFLAGS} -c res_query.c -fPIC -o libresolv.o +RUN ar rcs libresolv.a libresolv.o +RUN mkdir -p $TARGET/lib/ +RUN cp libresolv.a $TARGET/lib/ + +RUN mkdir -p /glib +RUN curl -Lks https://download.gnome.org/sources/glib/${GLIB_MINOR_VERSION}/glib-$GLIB_VERSION.tar.xz | \ + tar xJC /glib --strip-components=1 + +COPY --link --from=zlib-dev /builddeps/ /builddeps/ +COPY --link --from=libffi-dev /builddeps/ /builddeps/ + +WORKDIR /glib +RUN <> /cross.meson +[built-in options] +c_args = [$(printf "'%s', " $CFLAGS | sed 's/, $//')] +cpp_args = [$(printf "'%s', " $CFLAGS | sed 's/, $//')] +objc_args = [$(printf "'%s', " $CFLAGS | sed 's/, $//')] +c_link_args = [$(printf "'%s', " $LDFLAGS | sed 's/, $//')] +cpp_link_args = [$(printf "'%s', " $LDFLAGS | sed 's/, $//')] +EOT +EOF +RUN meson setup _build --prefix=$TARGET --cross-file=/cross.meson \ + --default-library=static --buildtype=release --force-fallback-for=pcre2 \ + -Dselinux=disabled -Dxattr=false -Dlibmount=disabled -Dnls=disabled \ + -Dtests=false -Dglib_debug=disabled -Dglib_assert=false -Dglib_checks=false +# FIXME: emscripten doesn't provide some pthread functions in the final link, +# which isn't detected during meson setup. +RUN sed -i -E "/#define HAVE_POSIX_SPAWN 1/d" ./_build/config.h +RUN sed -i -E "/#define HAVE_PTHREAD_GETNAME_NP 1/d" ./_build/config.h +RUN meson install -C _build + +FROM build-base +COPY --link --from=glib-dev /builddeps/ /builddeps/ +COPY --link --from=pixman-dev /builddeps/ /builddeps/ From patchwork Wed Apr 16 08:14:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kohei Tokunaga X-Patchwork-Id: 14053505 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 40897C369B1 for ; Wed, 16 Apr 2025 08:24:36 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4y0z-0006tf-76; Wed, 16 Apr 2025 04:21:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4xxg-0002hW-Qt; Wed, 16 Apr 2025 04:17:37 -0400 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4xxf-000628-8i; Wed, 16 Apr 2025 04:17:36 -0400 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-736ab1c43c4so5949267b3a.1; Wed, 16 Apr 2025 01:17:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744791450; x=1745396250; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=p61XeamrPryy5y8KZD/my/LXyq845Q2ZSQbHbgzzrSA=; b=DTrPu4QtspWcduqt7XhmyWRVq531YxIFdxLuwHBpufCUrulXDZPsqQkRL/Q8Tksi/I 4EM0CqqvzGZwe4UI+9jYDYxcqFi0mMT7LA448t2mLDI8XM52jzBQLXHE4Qwv4DnR4wME WhCnTNzwutifFFR/bG0UVRl7NVE6aTenYTwXOmArCpVnYT5/XcvXlUmF5PojikqwQVH3 FqRSbl1qTf0/u5rzct8uRFXc8z5896fFHFvoLw/1s4+DPYdVnQSUDblMsnW1ZSZDvp55 sy9pwifAelo4ISonID84V/DvG9CvoKsA2dZz2Tr1KfFeoWglO95/BgMeGucb6TFKCb+b zofQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744791450; x=1745396250; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=p61XeamrPryy5y8KZD/my/LXyq845Q2ZSQbHbgzzrSA=; b=hFk6KDIe9ada/JlV1/+0vakQXwr/DzZO7rXT8U02ezGhvRLbI3qWS26uIfKsNC0zYV GLlcuBbfNTxV67Qrw68qYiuH4pnJBcyBnvpGE9GwG9xwt9Kyf0Hq/iEylb6DT/6dfF0O Unfte71bFye6mcCrA83Dbu3Lmmk5FJmdQBUZX8Vhv19TH6146e8Z5lnnsLzyA3Qm2aYn Koj9wUskb/ksOl2SW+qBPrPHckCMxLm8pivFYdXwjktkpIVM4tAzglR15FOVAIYebXHB ClXGMbSFNuw5+mp5GnkhMEekPfPKad/F2K+zmqp1oTAPMmwUFkeSe1vq6APrB6gyIBEL 2Hww== X-Forwarded-Encrypted: i=1; AJvYcCUkN+ZVenvN5LqeTDgi+Oy6Qdub+/1GicHf6FVjWqHtiz4VD03lNzIePoaUx4Hts1QN1Fq6OTt+NUN0Dw==@nongnu.org, AJvYcCVhHZA/6Tjy4Ih0mUSGQvpA2bK48PJadhy1NXmuReTUtTXjqwBpqXytiEFT6k7VRejmix8SCDIZvQ==@nongnu.org, AJvYcCW9eXbJEOE2yNiJlaTDlF8NxKiQG3Gwr0afj+6dFBvK/bImK4Ynq4W47GSpiSCIFELlS/qF803kXS4=@nongnu.org, AJvYcCXduc4Wqdgj4b0PCQzFM2NoasMM2CoZmzZx9bAXtaLkQKVXj1tV0ck5oZXWpHjjXqiw0ouKw4tLZ9OiEg==@nongnu.org X-Gm-Message-State: AOJu0YyvPyrx/nvaJfm0KU6TNR5KKuvBq5DAmTo3SDfpJd4pivtQz2rW gGOS68kcWNcTRwcjbuJJ/35wAZmF1C9Jem9/c6ogxrkHRKj0cWXKRZXgTfKR X-Gm-Gg: ASbGncvmttbatwmRfVX4eTILeXB1bK+buuv0wbn656sA2B0nm07o/CrJkqcP7QVwW1+ Mz0TNyXa3/tV4eEmU7ph6mbuSyY4SD2yWFNYz/skAnXe3j/Iv2rQANovqzErahKE+3jlTNWQRkF ooYPa68SZzoH/yM5v4MLmwKr6U5h0Oz2Ys4MxfudgcuV7hSsoFH0wJjp9N36Ku9nEui0W3QpRJf T+iEKvUI1oJY9b75j52KVwV9qDzUurq7IrB/m0hToTWHD4b2kIqQYXw32kdMkisHSDhZggZrnps klWMEa3Y8wxC9iEAuMyuaiN+brg66NpLgJETF9Z0TCK6g5tNZB/kyH2WTnTZ7ffhoxvW X-Google-Smtp-Source: AGHT+IG+HhXY9MccZflP2IGJae4uZu0y23mzWOU0azhXj3wrV5kpmm22SzyuVnini2IXqkIH9KI0Sg== X-Received: by 2002:a05:6a00:2e84:b0:736:42a8:a742 with SMTP id d2e1a72fcca58-73c26735170mr1091929b3a.11.1744791450203; Wed, 16 Apr 2025 01:17:30 -0700 (PDT) Received: from localhost.localdomain ([240d:1a:3b6:8b00:ee5a:e672:7d4c:d43]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd21c3263sm9839445b3a.38.2025.04.16.01.17.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 01:17:29 -0700 (PDT) From: Kohei Tokunaga To: qemu-devel@nongnu.org Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philipp?= =?utf-8?q?e_Mathieu-Daud=C3=A9?= , Thomas Huth , Kevin Wolf , Hanna Reitz , Kohei Tokunaga , Paolo Bonzini , Alexandre Iooss , Mahmoud Mandour , Pierrick Bouvier , Pavel Pisa , Francisco Iglesias , Vikram Garhwal , Jason Wang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Zhao Liu , Nicholas Piggin , Daniel Henrique Barboza , David Hildenbrand , Richard Henderson , Ilya Leoshkevich , Stefan Hajnoczi , qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 19/19] MAINTAINERS: Update MAINTAINERS file for wasm-related files Date: Wed, 16 Apr 2025 17:14:24 +0900 Message-Id: <185cfff812b952abb24e25dfcc8bab7c65da6214.1744787186.git.ktokunaga.mail@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42d; envelope-from=ktokunaga.mail@gmail.com; helo=mail-pf1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Signed-off-by: Kohei Tokunaga --- MAINTAINERS | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index d54b5578f8..74a102c594 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3903,6 +3903,16 @@ F: tcg/tci/ F: tcg/tci.c F: disas/tci.c +WebAssembly TCG target +M: Kohei Tokunaga +S: Maintained +F: configs/meson/emscripten.txt +F: tests/docker/dockerfiles/emsdk-wasm32-cross.docker +F: util/coroutine-wasm.c +F: os-wasm.c +F: include/system/os-wasm.h +F: stubs/emscripten.c + Block drivers ------------- VMDK