From nobody Sat Nov 15 17:44:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1748365534; cv=none; d=zohomail.com; s=zohoarc; b=Zcrz1yivbfKyDhKKKkD6NLOQMzyd+uBJAjN7hLUgGXwHD/lbSRTcHZEDxT+e7MBEsyBKS9mhlj/E0QNhx9ZURWAl8lA3RhlNI577DBt8mbwFHSeuz7ozhArEZpG8DEHJGjoHFO4QeQGCfW8wOmS1MwKJPx7vcMvvGkC924Rkjpo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748365534; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=V4aZkVQe1X/Spfd9+OxNGkT/25sWGd8bXwBhMt/jceI=; b=SQWiHLMENmxxjuywLRFUDPa4e+2byqIpgy4+iWXRg1jwQdtnnj9oExGY2nMLow8lx4vs1EOo2fjFDePI5eSCAr+EsTU0qdzVifO+jERO5co3iMvX2IXdUqtSVPYeuAh5ApPpq9RAiKEVwSbT7Trxq2t5VkF46UnmxPVH/OtWTRg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174836553497228.159489907378997; Tue, 27 May 2025 10:05:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uJxiu-0005dP-6P; Tue, 27 May 2025 13:04:20 -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 1uJxir-0005cQ-2k for qemu-devel@nongnu.org; Tue, 27 May 2025 13:04:17 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uJxim-0006fv-RI for qemu-devel@nongnu.org; Tue, 27 May 2025 13:04:16 -0400 Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-157-RMLwduUZNyaQ_qGidiggBw-1; Tue, 27 May 2025 13:04:09 -0400 Received: by mail-ed1-f72.google.com with SMTP id 4fb4d7f45d1cf-6045875e52fso2205767a12.2 for ; Tue, 27 May 2025 10:04:09 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6004d4f1be3sm18224012a12.5.2025.05.27.10.04.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 May 2025 10:04:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1748365451; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=V4aZkVQe1X/Spfd9+OxNGkT/25sWGd8bXwBhMt/jceI=; b=hdUVFvmhojavaqhx4XkCf5MDpxsbvBELuAEW3cY3w4k1dcWO4z2WVJCEJljXoF8SGJxrfr DLRkirMQ+SpLgvIjAiVCTtyKJQiIC1d8h0/+gpNfS1tEo2cHLQM0CP8dANzXvKS0kefmHo ZhjsmLEC3VASTMJn8V/v84filr4QI80= X-MC-Unique: RMLwduUZNyaQ_qGidiggBw-1 X-Mimecast-MFC-AGG-ID: RMLwduUZNyaQ_qGidiggBw_1748365448 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748365447; x=1748970247; 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=V4aZkVQe1X/Spfd9+OxNGkT/25sWGd8bXwBhMt/jceI=; b=D2k787cDL4Y+/Z+GBVRzauRe88WRjR6yJgOiVAkO6IUv3i9oPkSSu+T1Af12lvrmRp KWhu+pTEs0xLxUgBDbF7H716OhsLxZ2vVIS2RgFHKnFsb5sE5LMjmlvYiH7Gs11GnvZX 1XXV9fZ+M3cmKYtjsZVw5SlB1YDVb1CAUBQZlER7rrqkZzxb/VGHwmkFki5YuTnXUlWc WN1jDA8mN18KqbRChZCp+CO0uk1WVkOdR7RvgjOl7x2ZpfTAybDxOWL9kVNFAROxutS/ 9HhcqsrsIkd3MPVD3NP6rUoFGPfbYscPzL7PlAYKqz7NlgrCJkeghZhoSjQdRW5x0ykt HoYQ== X-Gm-Message-State: AOJu0Yy60DdlXlmncGUG1ja4Jlu2LUrXPr7QrGjhzYfyOzNpvALyecua upJ72Pp+3xeFCcz0+E0pXfnfialgGqeX8hZX+t1ID9Qtk1cewBah2ifsc4PB0dSaVKm7HFoipAq Djk1Uaz76jVzviwHxwpnc+xXOcGgHxLMVFXwhZkZjwHWCLtiikcD1Wi1prDfzZ7oUm10XTDsGGH C2J7gNUYZHDZWTNdRS0u6il/CqqPfRUvVxza3ow6iV X-Gm-Gg: ASbGncukvmIxCgVBDx6ux2WErU9mCA6Tf4SlVpZ++xZYl7DjFvZhwDy54SoJiaFkJR1 3Xabq9GqoLBdhtFwouL5QEUjCepG0H/4Bmv3y6lg24fjxDM8kfztH/VrmAwjaqf/9UF+hYFoAZj N6R/ZXRil4X083wiYI2TRui4mPm+9AcXuMpyS2xX8RisgSJ68ZfZchJQ/zcqLjtN8xZo4paE3Wf lZCWMXzL0sRpQf6PfAqzMnvAQHYlWl3Nk72oIJ15e+SNupOOQLAe2Ra/Qk6Mw3o3VCJgIsR85Wo T41jUmsy85g4bw== X-Received: by 2002:a05:6402:34c1:b0:5fb:ad3c:cee9 with SMTP id 4fb4d7f45d1cf-602da8dde73mr11271226a12.28.1748365447540; Tue, 27 May 2025 10:04:07 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF4LoKixDs5J+EI0OHKMItBHRlzlXmw17NtWfbttHNL5Snhm9R4B2QVYPR7W+KOFFeLnT+0Ow== X-Received: by 2002:a05:6402:34c1:b0:5fb:ad3c:cee9 with SMTP id 4fb4d7f45d1cf-602da8dde73mr11271170a12.28.1748365447044; Tue, 27 May 2025 10:04:07 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: qemu-rust@nongnu.org Subject: [PATCH 1/6] meson: update to version 1.8.1 Date: Tue, 27 May 2025 19:03:59 +0200 Message-ID: <20250527170404.1580482-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250527170404.1580482-1-pbonzini@redhat.com> References: <20250527170404.1580482-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -49 X-Spam_score: -5.0 X-Spam_bar: ----- X-Spam_report: (-5.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.907, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1748365536357116600 Content-Type: text/plain; charset="utf-8" This adds several improvements to Rust support, including native clippy and rustdoc targets, the "objects" keyword, and running doctests. Require it only when Rust support is requested, to avoid putting a strict requirement on all build platforms for the sake of an experimental feature. Signed-off-by: Paolo Bonzini --- configure | 8 ++++++++ python/scripts/vendor.py | 4 ++-- python/wheels/meson-1.5.0-py3-none-any.whl | Bin 959846 -> 0 bytes python/wheels/meson-1.8.1-py3-none-any.whl | Bin 0 -> 1013001 bytes pythondeps.toml | 2 +- tests/lcitool/mappings.yml | 6 +++++- 6 files changed, 16 insertions(+), 4 deletions(-) delete mode 100644 python/wheels/meson-1.5.0-py3-none-any.whl create mode 100644 python/wheels/meson-1.8.1-py3-none-any.whl diff --git a/configure b/configure index 2ce8d29fac2..74b3865e51e 100755 --- a/configure +++ b/configure @@ -1178,6 +1178,14 @@ fi ########################################## # detect rust triple =20 +meson_version=3D$($meson --version) +if test "$rust" !=3D disabled && ! version_ge "$meson_version" 1.8.1; then + if test "$rust" =3D enabled; then + error_exit "Rust support needs Meson 1.8.1 or newer" + fi + echo "Rust needs Meson 1.8.1, disabling" 2>&1 + rust=3Ddisabled +fi if test "$rust" !=3D disabled && has "$rustc" && $rustc -vV > "${TMPDIR1}/= ${TMPB}.out"; then rust_host_triple=3D$(sed -n 's/^host: //p' "${TMPDIR1}/${TMPB}.out") else diff --git a/python/scripts/vendor.py b/python/scripts/vendor.py index 0405e910b48..b47db00743a 100755 --- a/python/scripts/vendor.py +++ b/python/scripts/vendor.py @@ -41,8 +41,8 @@ def main() -> int: parser.parse_args() =20 packages =3D { - "meson=3D=3D1.5.0": - "52b34f4903b882df52ad0d533146d4b992c018ea77399f825579737672ae7b20", + "meson=3D=3D1.8.1": + "374bbf71247e629475fc10b0bd2ef66fc418c2d8f4890572f74de0f97d0d42da", } =20 vendor_dir =3D Path(__file__, "..", "..", "wheels").resolve() diff --git a/pythondeps.toml b/pythondeps.toml index 7eaaa0fed10..7884ab521d1 100644 --- a/pythondeps.toml +++ b/pythondeps.toml @@ -19,7 +19,7 @@ =20 [meson] # The install key should match the version in python/wheels/ -meson =3D { accepted =3D ">=3D1.5.0", installed =3D "1.5.0", canary =3D "m= eson" } +meson =3D { accepted =3D ">=3D1.5.0", installed =3D "1.8.1", canary =3D "m= eson" } pycotap =3D { accepted =3D ">=3D1.1.0", installed =3D "1.3.1" } =20 [docs] diff --git a/tests/lcitool/mappings.yml b/tests/lcitool/mappings.yml index 673baf39367..8f0e95e1c56 100644 --- a/tests/lcitool/mappings.yml +++ b/tests/lcitool/mappings.yml @@ -8,6 +8,10 @@ mappings: =20 meson: OpenSUSELeap15: + # Use Meson from PyPI wherever Rust is enabled + Debian: + Fedora: + Ubuntu: =20 python3: OpenSUSELeap15: python311-base @@ -72,7 +76,7 @@ mappings: pypi_mappings: # Request more recent version meson: - default: meson=3D=3D1.5.0 + default: meson=3D=3D1.8.1 =20 # Drop packages that need devel headers python3-numpy: --=20 2.49.0 From nobody Sat Nov 15 17:44:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1748365587; cv=none; d=zohomail.com; s=zohoarc; b=f9LwN0M3AO2ThO7zGrZJXI23QjB12hccK2ZvNvSshdQY7sCRqYyX/SP1NXc/SMv2yvuLrUIa7ZCcYdK9ELAfcR8+UHLQMExp02iGETgluPnyyeKnLyctAPuKC9Q072lRbIXBl5c3XgWVXU72Pz0eiwBtndaP2wtqLnv2U25SwWc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748365587; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=whk0bx3S6iDRVW9awl3GtYiXbZ6tm1mvhJAdBgRVaBk=; b=NCU+3iXxjaJ8JrSICGqkv+uRf1ZZjBJQSMStBi4pFyALivKfXbb+yJERDk2VUr+emGH2sKHS4wNRhS4vCIwXDCX6WcdFJn2lBsofBWChsJpjinnmN6QxKlzgbZ/+hTiPxDJ3I5nc+bC6F1KKWfpyYAx2w3/SMxNS1W7ibzGmCqs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1748365587547282.9912161684198; Tue, 27 May 2025 10:06:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uJxix-0005gS-VA; Tue, 27 May 2025 13:04: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 1uJxiu-0005eG-Ql for qemu-devel@nongnu.org; Tue, 27 May 2025 13:04:20 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uJxip-0006gA-SB for qemu-devel@nongnu.org; Tue, 27 May 2025 13:04:20 -0400 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-569-CaRueN9hPHO2gUp7e6QFVQ-1; Tue, 27 May 2025 13:04:12 -0400 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-acf16746a74so271739766b.0 for ; Tue, 27 May 2025 10:04:12 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4c9e62sm1867452766b.155.2025.05.27.10.04.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 May 2025 10:04:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1748365454; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=whk0bx3S6iDRVW9awl3GtYiXbZ6tm1mvhJAdBgRVaBk=; b=EOzF6tU1Ysj5R6MuQCvszLgl57bqETjLi3F3Xh/knhEKJSQZbVoRRCXleOZAwe7OCE0y0A Sm+/MKZ1u0r43A/zdlywdqZr1FxBbNd0eIdc3AGzpBFcyDUJmrXAcM9jbkqiRJFEfjGXeA ktL/C2xMdbOGGyJyuRPMm2ItjlKnpgk= X-MC-Unique: CaRueN9hPHO2gUp7e6QFVQ-1 X-Mimecast-MFC-AGG-ID: CaRueN9hPHO2gUp7e6QFVQ_1748365452 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748365451; x=1748970251; 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=whk0bx3S6iDRVW9awl3GtYiXbZ6tm1mvhJAdBgRVaBk=; b=AVvMpvZnoGh6hoyzgzjzR7u2y5MUolBJZdlq6HN/zijeQKCSvsO6MHjpAJR1Q6o0tC Ycm4vZun6Ub5jX1WuYKLGxRFqj4PFFMqmpf9KlL/wi5Y8v75jwdJF2oE3p3NmDvoWnWz IRl0KjAYPJJwxczbzgrzw2LXo6hSSBtxd3/FsRqKht9rpHWVgM7ebD049lE30VqJ3onm k8zIYz4S257hyTQTezQlnEsIHjuSMzaVfdfiUvoc4y41tG5I7+VRjj+RvVQwmveAXYtt zywu29CuWsrdr1TKBg0pUlLx3n3wlOxUyzNSJAzeYzolUYyE/ABZmXdy7oW6yvjqz0dS C4aA== X-Gm-Message-State: AOJu0Yyxg6YWb3rAx9DR1bOBykF2ycoHSFZL1uitvNthJptd82MgocHL 5LcG9Bp0J/jqAfOh7WlfsXrOGfFUdAeQiGhEyWJnkf9DMQW0QkbK4yEhQ7aRqWTSGdAfn25UFxF KvHNvf2yUr8T1tn+UMNKusLfev5HmlHwHyDNH5DUS8htc0kPQyqodHz3vMS80SMaK7JHHi2Bvtz mz5OPTdQCRmgJ/o/5cvLNfjtw+IxmqfAcwiyZ1Ll+t X-Gm-Gg: ASbGncv0ClBzxVPRXnlaycjuK7VzCoS6VxdTtLqqGcib5oe+Ay1AiLugYBBH0xYy68j s0C9BHWOn66aJ/Qq0VsIRKTmhDy9PGLUo9dHJXIKEP8QF4R/Aj3eFFM3/OO18Qal4HstVETkCut oxtkKTc0ZbPqf3UHvA4ryWlofFvitahxoHS0P1NKZeliBo+lMZdpFJYDazqOmeL2IQHa1KKJ/Fv RbKKoWzrToLCCfzsfVMh5+yeETjoU+jsrnLPZagPMvCBgY6YUIVO7y+8mclOiawC0ruRSVlMRBV JOcvOhxIBcRPWw== X-Received: by 2002:a17:907:2cc4:b0:ad8:55d8:38bc with SMTP id a640c23a62f3a-ad85b1de6cbmr1289910566b.43.1748365450131; Tue, 27 May 2025 10:04:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEsNB5QXYe1gwRsd/Ukk5FK+oKo9Mz5rtW28Ni4fmUZWVVgGswW1pT3vFqZmUOqTGH6DTbXcg== X-Received: by 2002:a17:907:2cc4:b0:ad8:55d8:38bc with SMTP id a640c23a62f3a-ad85b1de6cbmr1289903366b.43.1748365449548; Tue, 27 May 2025 10:04:09 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: qemu-rust@nongnu.org, Bernhard Beschow Subject: [PATCH 2/6] rust: use "objects" for Rust executables as well Date: Tue, 27 May 2025 19:04:00 +0200 Message-ID: <20250527170404.1580482-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250527170404.1580482-1-pbonzini@redhat.com> References: <20250527170404.1580482-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -49 X-Spam_score: -5.0 X-Spam_bar: ----- X-Spam_report: (-5.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.907, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1748365588903116600 Content-Type: text/plain; charset="utf-8" libqemuutil is not meant be linked as a whole; if modules are enabled, doing so results in undefined symbols (corresponding to QMP commands) in rust/qemu-api/rust-qemu-api-integration. Support for "objects" in Rust executables is available in Meson 1.8.0; use = it to switching to the same dependencies that C targets use: link_with for libqemuutil, and objects for everything else. Reported-by: Bernhard Beschow Signed-off-by: Paolo Bonzini --- docs/devel/rust.rst | 2 -- rust/meson.build | 2 ++ rust/qemu-api/meson.build | 24 +++--------------------- 3 files changed, 5 insertions(+), 23 deletions(-) diff --git a/docs/devel/rust.rst b/docs/devel/rust.rst index 171d908e0b0..11328c05b45 100644 --- a/docs/devel/rust.rst +++ b/docs/devel/rust.rst @@ -66,8 +66,6 @@ be run via ``meson test`` or ``make``:: =20 make check-rust =20 -Building Rust code with ``--enable-modules`` is not supported yet. - Supported tools ''''''''''''''' =20 diff --git a/rust/meson.build b/rust/meson.build index 1f0dcce7d04..801f4374dfa 100644 --- a/rust/meson.build +++ b/rust/meson.build @@ -14,6 +14,8 @@ quote_rs_native =3D dependency('quote-1-rs', native: true) syn_rs_native =3D dependency('syn-2-rs', native: true) proc_macro2_rs_native =3D dependency('proc-macro2-1-rs', native: true) =20 +qemuutil_rs =3D qemuutil.partial_dependency(link_args: true, links: true) + subdir('qemu-api-macros') subdir('qemu-api') =20 diff --git a/rust/qemu-api/meson.build b/rust/qemu-api/meson.build index 1ea86b8bbf1..c647493f712 100644 --- a/rust/qemu-api/meson.build +++ b/rust/qemu-api/meson.build @@ -41,26 +41,8 @@ _qemu_api_rs =3D static_library( rust.test('rust-qemu-api-tests', _qemu_api_rs, suite: ['unit', 'rust']) =20 -qemu_api =3D declare_dependency(link_with: _qemu_api_rs) - -# Rust executables do not support objects, so add an intermediate step. -rust_qemu_api_objs =3D static_library( - 'rust_qemu_api_objs', - objects: [libqom.extract_all_objects(recursive: false), - libhwcore.extract_all_objects(recursive: false), - libchardev.extract_all_objects(recursive: false), - libcrypto.extract_all_objects(recursive: false), - libauthz.extract_all_objects(recursive: false), - libio.extract_all_objects(recursive: false), - libmigration.extract_all_objects(recursive: false)]) -rust_qemu_api_deps =3D declare_dependency( - dependencies: [ - qom_ss.dependencies(), - chardev_ss.dependencies(), - crypto_ss.dependencies(), - authz_ss.dependencies(), - io_ss.dependencies()], - link_whole: [rust_qemu_api_objs, libqemuutil]) +qemu_api =3D declare_dependency(link_with: [_qemu_api_rs], + dependencies: [qemuutil_rs, qemu_api_macros, qom, hwcore, chardev, migra= tion]) =20 test('rust-qemu-api-integration', executable( @@ -69,7 +51,7 @@ test('rust-qemu-api-integration', override_options: ['rust_std=3D2021', 'build.rust_std=3D2021'], rust_args: ['--test'], install: false, - dependencies: [qemu_api, qemu_api_macros, rust_qemu_api_deps]), + dependencies: qemu_api), args: [ '--test', '--test-threads', '1', '--format', 'pretty', --=20 2.49.0 From nobody Sat Nov 15 17:44:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1748365509; cv=none; d=zohomail.com; s=zohoarc; b=EpDUeP9xQCBQbMh+xdG6IZhdY1pvd5uxcex8O2RuAZ0j1gGJHLyK7iWA/mvVfcv2ob4W749gJZ4ur5SRrnzaL0yET/V6o2XF5nHK5/yLT6qxzgFArFVcHap8fJDLn0pHMqhc8YU8q4pGAfdM2fnLupbkUllOBtq+qEmWJHtNLgc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748365509; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=yPAxOWVvQVuJ1+MC8VsWb1BHfSQr4WlF8mkT7eSpGJA=; b=VoS0fSGv+V6Ux1pVmD0iF4A9AhY7CODXEveslF2Zh7sxQtlCvec6u7hazf42Re6i5wzA73PSfV3SqvMv6B880HQ5VmzsgNbDu5W110NMPUba9UnT0Hc/BBC4qkKmqFRdVxDg5KMel8mjdMJtNq8rG3yG0mOYcluC9LMgca/VznI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1748365509255421.82235492578366; Tue, 27 May 2025 10:05:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uJxiw-0005fn-Vj; Tue, 27 May 2025 13:04: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 1uJxiv-0005eY-AP for qemu-devel@nongnu.org; Tue, 27 May 2025 13:04:21 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uJxit-0006gg-Am for qemu-devel@nongnu.org; Tue, 27 May 2025 13:04:21 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-199-rpxaveZdPjmLOyViu1dj4Q-1; Tue, 27 May 2025 13:04:14 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-ad51ceda1d9so3647266b.1 for ; Tue, 27 May 2025 10:04:14 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad89bb4aa63sm16036866b.161.2025.05.27.10.04.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 May 2025 10:04:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1748365458; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yPAxOWVvQVuJ1+MC8VsWb1BHfSQr4WlF8mkT7eSpGJA=; b=UWM8vMT1SM12XpFlG0a1wWqB55fdcQz09pHY6IEvOA22g+VGxTWhpJVyTQSZSo+3ZklQfp eu4UtjpuFyyiJVqvviLw6uL3BnHcDvcHcP3g/4hfeZZE7dLYVNWtGAu2NuX4RFOOrM9Li0 qUTrRWre9u0FMyfrYocMdLBo8jiMU9M= X-MC-Unique: rpxaveZdPjmLOyViu1dj4Q-1 X-Mimecast-MFC-AGG-ID: rpxaveZdPjmLOyViu1dj4Q_1748365453 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748365451; x=1748970251; 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=yPAxOWVvQVuJ1+MC8VsWb1BHfSQr4WlF8mkT7eSpGJA=; b=GXy7BTLczhQRTU6FO1UF7qfifHCfJEQONdwqT3vSCHDYZaW79Rv0+UhCK8GNLO5pSy 2mn02UgXAjl6Iqz21/lJcPWvMF6Zl8NrZOOFx6ycN+g6zlOsHNc50LP7wBjpmDRhRnAV ekL4sYvG4Zf7VJp/V09w+mkLXUGkpQ/91XT1Z5Jfo62swqKIl52qswiU+yxrCv5rFYqD c/EoJwK+n2Q2XIx5/32qvp938z9ImTkON7EZuCnPsXkJJrM7noNQnMFCJQ2ni02hy85d AVoV9bzCVsLBRO0aYHaqEWCGLgZvPOYr3uc9oggQsl87HHrN9FTu/w+OLJGFvI06sIe1 D/BA== X-Gm-Message-State: AOJu0YyW2dBEOrQQdLxpLIxM+ON/WxsZH//4LziOhHBxUQZclkJ0aIS2 TNY0L2JWS1zdrhpEKR/BGr6qOHrK5IiK7JkSkN+a5k0/Md0GtJzkQGmzob5Fb1g+rUDSaaBmrlO fPt+5xW3tgNN2TPKo6KK92r2htnnJQ3k67yRuMSccectWcs/NpfndZEFZpBnvu1gybO0Ee+FoAs CWhOKt6EmHKjg7nNe6R5/lV/6yYCpXhwKTflhsE7s5 X-Gm-Gg: ASbGncuNk5yYfZIiGSNjcDJx+KivY/YPdnZCWH+W+InYP3gruGoXcxxWjdYwkvdeoDH 1DtSv4VyQ7vazBKW5llu4LaBl/wLDPRsurqm1F2P6CHwMQZ0LpJNtjO+W49omTR9x4FpRIsLwWb bNnIK2o8Auej4ST9zpGRmKUnFxTFagofRT3Gf8ciI5v8q+0CfZHDdQzorfuKt9nBfQ6VzXou/ct 9EAHAK0gj61rgyZu5E5UJl3lPpD3lfI+G+jaL4FnAYIkrW8mDr6osQZZ4O2k9cwpBh/jcctl0T2 E8mc/ewBlHTnwA== X-Received: by 2002:a17:906:6a13:b0:ad8:908d:20f3 with SMTP id a640c23a62f3a-ad898a1dec8mr135268966b.28.1748365451350; Tue, 27 May 2025 10:04:11 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFlBnP3ygn/lL5vW1k/z9X5h2Z1kGwObG7A6cCf1DQnEMTDeOqBo+S86KVDMuSPOueMQA5sQg== X-Received: by 2002:a17:906:6a13:b0:ad8:908d:20f3 with SMTP id a640c23a62f3a-ad898a1dec8mr135264066b.28.1748365450773; Tue, 27 May 2025 10:04:10 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: qemu-rust@nongnu.org Subject: [PATCH 3/6] build, dockerfiles: add support for detecting rustdoc Date: Tue, 27 May 2025 19:04:01 +0200 Message-ID: <20250527170404.1580482-4-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250527170404.1580482-1-pbonzini@redhat.com> References: <20250527170404.1580482-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -49 X-Spam_score: -5.0 X-Spam_bar: ----- X-Spam_report: (-5.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.907, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1748365510156116600 Content-Type: text/plain; charset="utf-8" rustdoc is effectively a custom version of rustc, and it is necessary to specify it in order to run doctests from Meson. Add the relevant configure option and environment variables. Signed-off-by: Paolo Bonzini --- configure | 8 ++++++++ meson.build | 2 ++ tests/docker/dockerfiles/fedora-rust-nightly.docker | 2 ++ tests/docker/dockerfiles/ubuntu2204.docker | 1 + tests/lcitool/refresh | 3 +++ 5 files changed, 16 insertions(+) diff --git a/configure b/configure index 74b3865e51e..2b2b3d65979 100755 --- a/configure +++ b/configure @@ -209,6 +209,8 @@ for opt do ;; --rustc=3D*) RUSTC=3D"$optarg" ;; + --rustdoc=3D*) RUSTDOC=3D"$optarg" + ;; --cpu=3D*) cpu=3D"$optarg" ;; --extra-cflags=3D*) @@ -323,6 +325,7 @@ pkg_config=3D"${PKG_CONFIG-${cross_prefix}pkg-config}" sdl2_config=3D"${SDL2_CONFIG-${cross_prefix}sdl2-config}" =20 rustc=3D"${RUSTC-rustc}" +rustdoc=3D"${RUSTDOC-rustdoc}" =20 check_define() { cat > $TMPC <> $cross + echo "rustdoc =3D [$(meson_quote $rustdoc --target "$rust_target_tri= ple")]" >> $cross else echo "rust =3D [$(meson_quote $rustc)]" >> $cross + echo "rustdoc =3D [$(meson_quote $rustdoc)]" >> $cross fi fi echo "ar =3D [$(meson_quote $ar)]" >> $cross diff --git a/meson.build b/meson.build index 5a2098a2e94..eebd74b1fce 100644 --- a/meson.build +++ b/meson.build @@ -106,6 +106,7 @@ if have_rust endif =20 if have_rust + rustdoc =3D find_program('rustdoc', required: get_option('rust')) bindgen =3D find_program('bindgen', required: get_option('rust')) if not bindgen.found() or bindgen.version().version_compare('<0.60.0') if get_option('rust').enabled() @@ -4729,6 +4730,7 @@ if have_rust summary_info +=3D {'Rust target': config_host['RUST_TARGET_TRIPLE']} summary_info +=3D {'rustc': ' '.join(rustc.cmd_array())} summary_info +=3D {'rustc version': rustc.version()} + summary_info +=3D {'rustdoc': rustdoc} summary_info +=3D {'bindgen': bindgen.full_path()} summary_info +=3D {'bindgen version': bindgen.version()} endif diff --git a/tests/docker/dockerfiles/fedora-rust-nightly.docker b/tests/do= cker/dockerfiles/fedora-rust-nightly.docker index fe4a6ed48d6..4a033309b38 100644 --- a/tests/docker/dockerfiles/fedora-rust-nightly.docker +++ b/tests/docker/dockerfiles/fedora-rust-nightly.docker @@ -156,6 +156,7 @@ ENV PYTHON "/usr/bin/python3" RUN dnf install -y wget ENV RUSTUP_HOME=3D/usr/local/rustup CARGO_HOME=3D/usr/local/cargo ENV RUSTC=3D/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/= bin/rustc +ENV RUSTDOC=3D/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gn= u/bin/rustdoc ENV CARGO=3D/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/= bin/cargo RUN set -eux && \ rustArch=3D'x86_64-unknown-linux-gnu' && \ @@ -170,6 +171,7 @@ RUN set -eux && \ /usr/local/cargo/bin/rustup run nightly cargo --version && \ /usr/local/cargo/bin/rustup run nightly rustc --version && \ test "$CARGO" =3D "$(/usr/local/cargo/bin/rustup +nightly which cargo)" = && \ + test "$RUSTDOC" =3D "$(/usr/local/cargo/bin/rustup +nightly which rustdo= c)" && \ test "$RUSTC" =3D "$(/usr/local/cargo/bin/rustup +nightly which rustc)" ENV PATH=3D$CARGO_HOME/bin:$PATH RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli diff --git a/tests/docker/dockerfiles/ubuntu2204.docker b/tests/docker/dock= erfiles/ubuntu2204.docker index 4a1cf2bdff3..28a6f932430 100644 --- a/tests/docker/dockerfiles/ubuntu2204.docker +++ b/tests/docker/dockerfiles/ubuntu2204.docker @@ -151,6 +151,7 @@ ENV MAKE "/usr/bin/make" ENV NINJA "/usr/bin/ninja" ENV PYTHON "/usr/bin/python3" ENV RUSTC=3D/usr/bin/rustc-1.77 +ENV RUSTDOC=3D/usr/bin/rustdoc-1.77 ENV CARGO_HOME=3D/usr/local/cargo ENV PATH=3D$CARGO_HOME/bin:$PATH RUN DEBIAN_FRONTEND=3Dnoninteractive eatmydata \ diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh index 8474ea822f4..d3488b2679e 100755 --- a/tests/lcitool/refresh +++ b/tests/lcitool/refresh @@ -121,6 +121,7 @@ fedora_rustup_nightly_extras =3D [ "RUN dnf install -y wget\n", "ENV RUSTUP_HOME=3D/usr/local/rustup CARGO_HOME=3D/usr/local/cargo\n", "ENV RUSTC=3D/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux= -gnu/bin/rustc\n", + "ENV RUSTDOC=3D/usr/local/rustup/toolchains/nightly-x86_64-unknown-lin= ux-gnu/bin/rustdoc\n", "ENV CARGO=3D/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux= -gnu/bin/cargo\n", "RUN set -eux && \\\n", " rustArch=3D'x86_64-unknown-linux-gnu' && \\\n", @@ -135,6 +136,7 @@ fedora_rustup_nightly_extras =3D [ " /usr/local/cargo/bin/rustup run nightly cargo --version && \\\n", " /usr/local/cargo/bin/rustup run nightly rustc --version && \\\n", ' test "$CARGO" =3D "$(/usr/local/cargo/bin/rustup +nightly which car= go)" && \\\n', + ' test "$RUSTDOC" =3D "$(/usr/local/cargo/bin/rustup +nightly which r= ustdoc)" && \\\n', ' test "$RUSTC" =3D "$(/usr/local/cargo/bin/rustup +nightly which rus= tc)"\n', 'ENV PATH=3D$CARGO_HOME/bin:$PATH\n', 'RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli= \n', @@ -143,6 +145,7 @@ fedora_rustup_nightly_extras =3D [ =20 ubuntu2204_rust_extras =3D [ "ENV RUSTC=3D/usr/bin/rustc-1.77\n", + "ENV RUSTDOC=3D/usr/bin/rustdoc-1.77\n", "ENV CARGO_HOME=3D/usr/local/cargo\n", 'ENV PATH=3D$CARGO_HOME/bin:$PATH\n', "RUN DEBIAN_FRONTEND=3Dnoninteractive eatmydata \\\n", --=20 2.49.0 From nobody Sat Nov 15 17:44:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1748365589; cv=none; d=zohomail.com; s=zohoarc; b=A9XeVzv0cSq43SqqbMgf+si/kqkJuUtBVmMg1eXhmxi+htYY6ffL0Cj33of2rVna6QkSClTShqiLM7pw1O26qv27dxn689SQQCFxwS4y6oMy0g+MiTEhPS5iKtq/KujCxd9OhvsvU3CTqygfbj07f4nNF6TSShPrSFawUYhFwPs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748365589; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=P8BpKjEJltmzcm/OLNaNl+hh0ixQXBWzKCZWpkn3gDY=; b=Om4dF1FxijYdPgTfsHa4qiKCM05MGTR+OY97w0nObTlk9sTbhXISe1YYYT994zIap3KtABTtfwyvibIeBSrtnKiz8rqrFzKBq+FCFpwlQXSt93Wewfz3fyB6rS0nT8sAONJJoLWt3kSQ87Wa+t1tM8nIi0d4YWIzMB8QfzoSZUo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1748365589307834.0122942043087; Tue, 27 May 2025 10:06:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uJxj0-0005hy-Vp; Tue, 27 May 2025 13:04:27 -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 1uJxiy-0005gZ-NY for qemu-devel@nongnu.org; Tue, 27 May 2025 13:04:24 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uJxiw-0006hk-Su for qemu-devel@nongnu.org; Tue, 27 May 2025 13:04:24 -0400 Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-539-4bXJiNk-Ol27uMS0vmdbEw-1; Tue, 27 May 2025 13:04:20 -0400 Received: by mail-ej1-f71.google.com with SMTP id a640c23a62f3a-ad51ceda1d9so3651566b.1 for ; Tue, 27 May 2025 10:04:16 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad8954b1601sm84478766b.64.2025.05.27.10.04.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 May 2025 10:04:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1748365462; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=P8BpKjEJltmzcm/OLNaNl+hh0ixQXBWzKCZWpkn3gDY=; b=KVzQMfAQ1IIPnC3nL2QfveK9ekMpvk0TZb9goDFwW/k9vuYQM19z1UNKeg4vJkRup7wx50 DfQQmlCtt9IBIMUSvFnPAHVXzZlD44fU/nre46choWYBGKj5ZrY3N1Hryw1HqdQOYs+peK qiuZ2JdNUowKkm9KBWrrbJ2ACEj7I5c= X-MC-Unique: 4bXJiNk-Ol27uMS0vmdbEw-1 X-Mimecast-MFC-AGG-ID: 4bXJiNk-Ol27uMS0vmdbEw_1748365456 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748365455; x=1748970255; 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=P8BpKjEJltmzcm/OLNaNl+hh0ixQXBWzKCZWpkn3gDY=; b=dwr1QQ/rxdzrLNCHiRxPhUJQtwBKmpF3i+vcSxIuU+Zp7n7Ii/iXgmisElw7VD97NS 9cS7GAYlggflmx+XekFs2ajjQkdo4Uj/zBpXVjagtkxCZ0ZRs3wPHiGnx6Ag4Q909uOY gKMcpcNqeK6mD22CQxLVQ0AabrxKBC6pCe+i//cCAyEtlBTKnxThP0gxKm/d02wM2gML 7/tGZyWDEM5RjSlSmHJUtUwor7xq4WS8ADOqP4RKazrYNRUY9NMnOO/K3aAGFupPQkZt zFXVZtEwoFui99V4+RwmreH/xwBSlCiR/SnHStjRnmNxd6TYXarE9kgrbjY2MYKOf0qQ 4oSg== X-Gm-Message-State: AOJu0Yz8z4Qlx8q3yPN2MjAevTPJK2j35M05ba7x+yNbKQo5as5IkTdA UuooPpxQc+oOmlKe5zi05pCOYBaOSGN9EenPAmAJY7ioZSNpCmO7n57oPIRAyP7n14btij1CQiO WUHL5bP2C7thCBC//SCZM4qKZmV2kVO/aPvrSl78/ZLr8s/VNJNPc96axwQtrOiGGowXVKtOXNj U1VGHZDw89xptHULdMI/0TF7rLWgumpOTnaV/yvirA X-Gm-Gg: ASbGncsuRk3AUiO+SXsKcEpYnQBjCIWZ+HdVIjH1T9rqa2eUQ+OMes6uuSkqLrG340I HvpFhUJBzvQx84Uq5TwwUc3A/N6QDsa1DgzKM3eDahrrdrthACgmaZMTiCZTTo+JscjxOnG68MT KR/EwK22KRv9DKzUG8y1pv8P/voldsPAVw09nsEYe3TLKxywpaU5DWC4SWgwQjkKszpFxcCUt81 UvqZrKxBYREm8NTVmiPG7zDkK3e9CE/WWMHIWopbuqKZE5UFejU7Shgb9dSsfHB0Yj6YAV0ucQq dIP2Uk4PF2vcKQ== X-Received: by 2002:a17:907:c1e:b0:ad8:55d8:38b7 with SMTP id a640c23a62f3a-ad89888d678mr161594266b.7.1748365455260; Tue, 27 May 2025 10:04:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE0deVlRLi5YZvAYmuPNc+rsjSmR4hrl2Qq6DmZN5KnWkgeeSH+5FB9M1l5cPVAl4NLDtac2Q== X-Received: by 2002:a17:907:c1e:b0:ad8:55d8:38b7 with SMTP id a640c23a62f3a-ad89888d678mr161588866b.7.1748365454765; Tue, 27 May 2025 10:04:14 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: qemu-rust@nongnu.org Subject: [PATCH 4/6] rust: add qemu-api doctests to "meson test" Date: Tue, 27 May 2025 19:04:02 +0200 Message-ID: <20250527170404.1580482-5-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250527170404.1580482-1-pbonzini@redhat.com> References: <20250527170404.1580482-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -49 X-Spam_score: -5.0 X-Spam_bar: ----- X-Spam_report: (-5.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.907, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1748365591083116600 Content-Type: text/plain; charset="utf-8" Doctests are weird. They are essentially integration tests, but they're "ran" by executing rustdoc --test, which takes a compiler-ish command line. This is supported by Meson 1.8.0. Because they run the linker and need all the .o files, run them in the build jobs rather than the test jobs. Signed-off-by: Paolo Bonzini --- docs/devel/rust.rst | 2 ++ .gitlab-ci.d/buildtest-template.yml | 3 ++- .gitlab-ci.d/buildtest.yml | 11 +++-------- rust/qemu-api/meson.build | 9 +++++++++ 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/docs/devel/rust.rst b/docs/devel/rust.rst index 11328c05b45..f66f2bef60b 100644 --- a/docs/devel/rust.rst +++ b/docs/devel/rust.rst @@ -66,6 +66,8 @@ be run via ``meson test`` or ``make``:: =20 make check-rust =20 +Note that doctests require all ``.o`` files from the build to be available. + Supported tools ''''''''''''''' =20 diff --git a/.gitlab-ci.d/buildtest-template.yml b/.gitlab-ci.d/buildtest-t= emplate.yml index 118371e377d..fea4e8da2f1 100644 --- a/.gitlab-ci.d/buildtest-template.yml +++ b/.gitlab-ci.d/buildtest-template.yml @@ -76,7 +76,8 @@ fi - section_end buildenv - section_start test "Running tests" - - $MAKE NINJA=3D":" $MAKE_CHECK_ARGS + # doctests need all the compilation artifacts + - $MAKE NINJA=3D":" MTESTARGS=3D"--no-suite doc" $MAKE_CHECK_ARGS - section_end test =20 .native_test_job_template: diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml index 248aaed1370..0fdde54bf8e 100644 --- a/.gitlab-ci.d/buildtest.yml +++ b/.gitlab-ci.d/buildtest.yml @@ -41,7 +41,7 @@ build-system-ubuntu: IMAGE: ubuntu2204 CONFIGURE_ARGS: --enable-docs --enable-rust TARGETS: alpha-softmmu microblazeel-softmmu mips64el-softmmu - MAKE_CHECK_ARGS: check-build + MAKE_CHECK_ARGS: check-build check-doc =20 check-system-ubuntu: extends: .native_test_job_template @@ -115,7 +115,7 @@ build-system-fedora: CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs --enabl= e-crypto-afalg --enable-rust TARGETS: microblaze-softmmu mips-softmmu xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-soft= mmu - MAKE_CHECK_ARGS: check-build + MAKE_CHECK_ARGS: check-build check-doc =20 build-system-fedora-rust-nightly: extends: @@ -127,12 +127,7 @@ build-system-fedora-rust-nightly: IMAGE: fedora-rust-nightly CONFIGURE_ARGS: --disable-docs --enable-rust --enable-strict-rust-lints TARGETS: aarch64-softmmu - MAKE_CHECK_ARGS: check-build - after_script: - - source scripts/ci/gitlab-ci-section - - section_start test "Running Rust doctests" - - cd build - - pyvenv/bin/meson devenv -w ../rust ${CARGO-cargo} test --doc -p qemu= _api + MAKE_CHECK_ARGS: check-build check-doc =20 allow_failure: true =20 diff --git a/rust/qemu-api/meson.build b/rust/qemu-api/meson.build index c647493f712..10e8210f30f 100644 --- a/rust/qemu-api/meson.build +++ b/rust/qemu-api/meson.build @@ -44,6 +44,15 @@ rust.test('rust-qemu-api-tests', _qemu_api_rs, qemu_api =3D declare_dependency(link_with: [_qemu_api_rs], dependencies: [qemuutil_rs, qemu_api_macros, qom, hwcore, chardev, migra= tion]) =20 +# Doctests are essentially integration tests, so they need the same depend= encies. +# Note that running them requires the object files for C code, so place th= em +# in a separate suite that is run by the "build" CI jobs rather than "chec= k". +rust.doctest('rust-qemu-api-doctests', + _qemu_api_rs, + protocol: 'rust', + dependencies: qemu_api, + suite: ['doc', 'rust']) + test('rust-qemu-api-integration', executable( 'rust-qemu-api-integration', --=20 2.49.0 From nobody Sat Nov 15 17:44:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1748365558; cv=none; d=zohomail.com; s=zohoarc; b=Iu9LLvKL53GvUXiT7HQWthFCTuDiRPkgSe3ZHmt9RLmf9R+tO+HM6/E695Neh/Bc2rtPi32gtqvbuQTQeOGtwCRrHFnYEPMGMr4JImTkUHLj0xVjexH3LFQ9PSCrXMbubzD6/ctLdpeNTEHRT0HZmC7MH8vEPerdYOy7RJa6VWU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748365558; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+MaRtQvyQVdxiccHruMjcY+PBk/KP5Z1xfXXYJBauOQ=; b=SormW096ii+b+XQxsVGBYjz4x53I3bpbwRXH2zT/UkkzJigt/8CPafcAyLSESOj3prC/Bc+UAoY8fU0WiMiLMVa7hAYvizrpKStT/fUCiLi6AULQ8xdhuPnWGoVmc6FlExV4TgDsWyPG1qYg2b89ZOQc75jmKGYE/mpYf0YxZcM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1748365557914794.954736865481; Tue, 27 May 2025 10:05:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uJxj0-0005i6-5X; Tue, 27 May 2025 13:04:26 -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 1uJxix-0005fq-4A for qemu-devel@nongnu.org; Tue, 27 May 2025 13:04:23 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uJxiv-0006hD-GP for qemu-devel@nongnu.org; Tue, 27 May 2025 13:04:22 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-649-i7zzO9H6Pa2oYhkQUeaKow-1; Tue, 27 May 2025 13:04:18 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-ad5271a051eso339088666b.1 for ; Tue, 27 May 2025 10:04:18 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d438086sm1864422766b.89.2025.05.27.10.04.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 May 2025 10:04:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1748365460; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+MaRtQvyQVdxiccHruMjcY+PBk/KP5Z1xfXXYJBauOQ=; b=GnzI07iP6ZMJpPrkULIORdcEUORAygWWHyI8SpzlTWOv4EAKFopm2rYYA+Bjyx0GTC+FR8 VpMPZ4MY6jFkDKHiO38UEJJmIYcZArRPVlysI+v2KphWmAitUmEX8adHDYeC3DEjyRg4/G yyG4M1amXUcN9b75VgaIXyzZbZcAhk4= X-MC-Unique: i7zzO9H6Pa2oYhkQUeaKow-1 X-Mimecast-MFC-AGG-ID: i7zzO9H6Pa2oYhkQUeaKow_1748365458 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748365456; x=1748970256; 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=+MaRtQvyQVdxiccHruMjcY+PBk/KP5Z1xfXXYJBauOQ=; b=OW2BoCHd3q2K+c7ZahfW23PEjTarSG5GMrkrA/n9JeHbcZ518RCkMMGW79/PfFTFAt Fu+NK6Wq82NhCUqcnDqw2hiG5VacqRKFZImxzu3Uk07U+Vl5EIVJjXX9gsOQkIJ7pOVz Xx+VeFB+Ux4Ccfd+aYczeP1tBy/g6vHm2TsSqbYXrENQXIoZMR1LjDYx2jnzdXgT//k5 oyZSoNFPpRZOsELbqnPkjG0bmo4INpem3Gj0pyMs9I7fAg0s2xPGbWKoLN0rwr/K0dZd yNhGGOkfYG0A5CEgMn4hTICPaYvh7r6zLql5TYBMr5Qfl6lhrRYOXb6pOPFXO+OoLaME Afsw== X-Gm-Message-State: AOJu0Yw5BKCwqL/0HTzcs577JVETsMyfcsRippqFWNmSBcoGeI2SJDLH zyjMpLPveYJVnxMQXlsJ+zRUbciHeO35EOt1nmKbIPj/BwHGe8HA7NW6ZbpiPXsXNvArZ8XC4fC cIN0HAy+ShWBn4934Z8CT9oFL9yg0eUMlpx//mXsVGMxrz2y0xot2z/KZZf3M0sTbc0aS1IQ1yl Eoo6dxvg3AEjl39HA9fs5CmzJukaD8WfpJfHucUSl5 X-Gm-Gg: ASbGnctFC1fVo7cY0YmWIoUlIx7QVhVl8AlgeHUy9Y189HhWqxMLwjJlP1Otumgrnhj +t/nqjihO2dx4LSsy2xq/50osPV4EF9ouF+2GlpvMQCEuV55DHtBZEABDptfDzDuiRNRutF+AAt 0aD/RQlXiFWihYh5YaAh1i5lTK0xBZh7miEM0fE2UnijwUMOAPLef4wkitq8Yg3Dc1/WY7qo8CK ZRoPyiBEha/9benFbbFIWRDXFOLAfZod4twi/yohjC85XyLYkjY6A32FXVSd28hjghzLVoLisFU oewl1a5SH67cwQ== X-Received: by 2002:a17:907:d716:b0:ad5:6b8a:a0a6 with SMTP id a640c23a62f3a-ad85b319ab8mr1346044866b.58.1748365456499; Tue, 27 May 2025 10:04:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF/I/4u//Q0qm0idcjRPra2TwV54TBZPShO+oKHsdDkuUuySCPF+/QW+NybXVZM/H9yZmKMhA== X-Received: by 2002:a17:907:d716:b0:ad5:6b8a:a0a6 with SMTP id a640c23a62f3a-ad85b319ab8mr1346038766b.58.1748365455967; Tue, 27 May 2025 10:04:15 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: qemu-rust@nongnu.org Subject: [PATCH 5/6] rust: cell: remove support for running doctests with "cargo test --doc" Date: Tue, 27 May 2025 19:04:03 +0200 Message-ID: <20250527170404.1580482-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250527170404.1580482-1-pbonzini@redhat.com> References: <20250527170404.1580482-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -49 X-Spam_score: -5.0 X-Spam_bar: ----- X-Spam_report: (-5.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.907, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1748365558663116600 Content-Type: text/plain; charset="utf-8" This is not needed anymore now that tests link with libqemuutil. Signed-off-by: Paolo Bonzini --- rust/qemu-api/src/cell.rs | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/rust/qemu-api/src/cell.rs b/rust/qemu-api/src/cell.rs index 05ce09f6cb6..27063b049d5 100644 --- a/rust/qemu-api/src/cell.rs +++ b/rust/qemu-api/src/cell.rs @@ -225,27 +225,23 @@ =20 /// An internal function that is used by doctests. pub fn bql_start_test() { - if cfg!(MESON) { - // SAFETY: integration tests are run with --test-threads=3D1, while - // unit tests and doctests are not multithreaded and do not have - // any BQL-protected data. Just set bql_locked to true. - unsafe { - bindings::rust_bql_mock_lock(); - } + // SAFETY: integration tests are run with --test-threads=3D1, while + // unit tests and doctests are not multithreaded and do not have + // any BQL-protected data. Just set bql_locked to true. + unsafe { + bindings::rust_bql_mock_lock(); } } =20 pub fn bql_locked() -> bool { // SAFETY: the function does nothing but return a thread-local bool - !cfg!(MESON) || unsafe { bindings::bql_locked() } + unsafe { bindings::bql_locked() } } =20 fn bql_block_unlock(increase: bool) { - if cfg!(MESON) { - // SAFETY: this only adjusts a counter - unsafe { - bindings::bql_block_unlock(increase); - } + // SAFETY: this only adjusts a counter + unsafe { + bindings::bql_block_unlock(increase); } } =20 --=20 2.49.0 From nobody Sat Nov 15 17:44:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1748365557; cv=none; d=zohomail.com; s=zohoarc; b=XHkPwPmogFEUdh7MIbVN7aTRzuuqb8RDUO62gdI1gdO9G9K4LJ21KdeGGrHj8/U8igJxKnTWOL+5P/zX61v/2Q0fz13M9wcieyoBDzlbRsRYFoGB8mJbi8XvM/9ONZ31WKEeMKA5AxOqAD2i58foM7q0GRodyNphUUoQ7EvrIQE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748365557; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=P6BB7ST9HP5gqI17reXXLVec4z+t3iB9vyB2FO/CtT0=; b=AKiNfdGrLcPNDj7/i1Kb0VEX6r+rI4Ed2rPn7Uv7k0wBnT5og8kiPWLtld2wbxbHszGZi1HQOXrEq8k6b9+aVoLvZ5lLACI4J3DUI59vKois5inqvAJlCUNqxhbMVoQPKbB8VQh4eN7SB9MNFSpv4vD7mBuUHIjUByiT6XOAuGc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1748365557655608.0804624743216; Tue, 27 May 2025 10:05:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uJxj2-0005ix-5k; Tue, 27 May 2025 13:04: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 1uJxj0-0005i1-0F for qemu-devel@nongnu.org; Tue, 27 May 2025 13:04:26 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uJxix-0006hv-Rc for qemu-devel@nongnu.org; Tue, 27 May 2025 13:04:25 -0400 Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-504-HszxVJTNOTeDSoefTFpboQ-1; Tue, 27 May 2025 13:04:21 -0400 Received: by mail-ed1-f71.google.com with SMTP id 4fb4d7f45d1cf-60211a1705dso3027287a12.2 for ; Tue, 27 May 2025 10:04:21 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6035a134d4bsm5154717a12.20.2025.05.27.10.04.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 May 2025 10:04:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1748365462; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=P6BB7ST9HP5gqI17reXXLVec4z+t3iB9vyB2FO/CtT0=; b=FptTtA1d/mfNG7fWFjkNEhU03ga4+ALdavBd87z+XX9969rZDQTmlrl74LBUiUrIU0rJ7G X+L2whSWwDw2ZavHxxSgFquy+wQPmv6sTR10WRamAwi1HinlXWe9sYy56q2zkrA1ahLgeZ jead0q2zBP4jQMPW1SUApKZIyf5gMyw= X-MC-Unique: HszxVJTNOTeDSoefTFpboQ-1 X-Mimecast-MFC-AGG-ID: HszxVJTNOTeDSoefTFpboQ_1748365460 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748365460; x=1748970260; 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=P6BB7ST9HP5gqI17reXXLVec4z+t3iB9vyB2FO/CtT0=; b=F64aBTqeHa4lgiIfOOMeuUDOkS/i/56OLOtQVEj+wIaDtEP9EYWr+Aq49sLTgyJvqv Q2QRT30/HT8e5VMe4ixfYMdVdvV/la/JWqlN0TUfe2/C1+6UaLB4l8U696lod4Rd/w2d TCfuOLdVcHkb8/HcnYl7TNeWz/l0RtfhLy1QK3sffichwDtgDbGnaJoPnHeisIRfTO2E Sia7cdyPaz6IV1K1xfD5e2v3zVo+xyjiTX88PzL81MQJRI+5EMfcZ406wdSqtIeaD7XI V1qpq9945ZoGdj6N0vdbRgdTYz5cyiWFU8C+Vi+4SiMCKcOFqZxJI/f3yNa1zuSOdKUH T2JQ== X-Gm-Message-State: AOJu0YwkW+5kZBDGCDJqzo/dmhvVul3nKu2Jx9OJdKMKCdNmoNwcL3U/ Qs9ACEfkf+4v/4/VqnZ2ddCCSEvOXHdT+oNcDXbXnfVu1TyC6l1Z4y53R37WQ7RemRRA16+MTC9 Oqn91xW/j02xfWPtTUog+DkQlg6Lv13m+SQ1oLCGT5N9c7AEfWa6PqMUDeN2tmYKzPyle8T5PaA iIZkIgkclF33TYEaufXOqSkRwh0tHLTN5VZkM6HpRi X-Gm-Gg: ASbGncums4zGbHqJQqPxcOKIp3jWib0cghEgjOb9ShoMKO4O95O49Rg7CIldwleUX0e 1ilCFfByk6H+ZFWomy4i8Y5J7Hs4GRd6cbk2YPQa1oBVdogW6L6o1yzWTur9ke6mM45m5Lm/lQ5 Lf4FJY17mlZazfTyyboTwUahycROGjjw4YL9el49pjPvw5Zw2qLwRdc2e8DHZhRDP+YQILT0Bh0 OE52poLvtpMVyaAjdyJwmkzvlglp+TCZzgnVqoirRG71qNB9symq5aJoPdyUgBFv29MhCdZNk27 zVLUZaPsgr5jng== X-Received: by 2002:a05:6402:2354:b0:601:8481:3268 with SMTP id 4fb4d7f45d1cf-602da2ff018mr12008990a12.25.1748365459626; Tue, 27 May 2025 10:04:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH78Hl6IYFrs5GnznkMwRL8X4s61IWZCk1B6DoLZVPiV6jiEuIZ0pwQaCHPyaxafUmu0i2cNw== X-Received: by 2002:a05:6402:2354:b0:601:8481:3268 with SMTP id 4fb4d7f45d1cf-602da2ff018mr12008924a12.25.1748365458908; Tue, 27 May 2025 10:04:18 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: qemu-rust@nongnu.org Subject: [PATCH 6/6] rust: use native Meson support for clippy and rustdoc Date: Tue, 27 May 2025 19:04:04 +0200 Message-ID: <20250527170404.1580482-7-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250527170404.1580482-1-pbonzini@redhat.com> References: <20250527170404.1580482-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -49 X-Spam_score: -5.0 X-Spam_bar: ----- X-Spam_report: (-5.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.907, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1748365558868116600 Content-Type: text/plain; charset="utf-8" Meson has support for invoking clippy and rustdoc on all crates (1.7.0 for clippy, 1.8.0 for rustdoc). Use it instead of the homegrown version; this requires disabling the multiple_crate_versions lint (the only one that was enabled from the "cargo" group)---which was not particularly useful anyway because all dependencies are converted by hand into Meson subprojects. rustfmt is still not supported. Signed-off-by: Paolo Bonzini --- docs/devel/rust.rst | 10 +++++++--- meson.build | 2 +- rust/clippy.toml =3D> clippy.toml | 0 rust/Cargo.toml | 1 - rust/meson.build | 12 ------------ scripts/rust/rustc_args.py | 5 +---- 6 files changed, 9 insertions(+), 21 deletions(-) rename rust/clippy.toml =3D> clippy.toml (100%) diff --git a/docs/devel/rust.rst b/docs/devel/rust.rst index f66f2bef60b..34d9c7945b7 100644 --- a/docs/devel/rust.rst +++ b/docs/devel/rust.rst @@ -37,12 +37,16 @@ output directory (typically ``rust/target/``). A vanil= la invocation of Cargo will complain that it cannot find the generated sources, which can be fixed in different ways: =20 -* by using special shorthand targets in the QEMU build directory:: +* by using Makefile targets, provided by Meson, that run ``clippy`` or + ``rustdoc``: =20 make clippy - make rustfmt make rustdoc =20 +A target for ``rustfmt`` is also declared in ``rust/meson.build``: + + make rustfmt + * by invoking ``cargo`` through the Meson `development environment`__ feature:: =20 @@ -50,7 +54,7 @@ which can be fixed in different ways: pyvenv/bin/meson devenv -w ../rust cargo fmt =20 If you are going to use ``cargo`` repeatedly, ``pyvenv/bin/meson devenv`` - will enter a shell where commands like ``cargo clippy`` just work. + will enter a shell where commands like ``cargo fmt`` just work. =20 __ https://mesonbuild.com/Commands.html#devenv =20 diff --git a/meson.build b/meson.build index eebd74b1fce..6f6d743a7d8 100644 --- a/meson.build +++ b/meson.build @@ -4376,7 +4376,7 @@ foreach target : target_dirs build_by_default: true, build_always_stale: true) rlib =3D static_library('rust_' + target.underscorify(), - rlib_rs, + structured_sources([], {'.': rlib_rs}), dependencies: target_rust.dependencies(), override_options: ['rust_std=3D2021', 'build.r= ust_std=3D2021'], rust_abi: 'c') diff --git a/rust/clippy.toml b/clippy.toml similarity index 100% rename from rust/clippy.toml rename to clippy.toml diff --git a/rust/Cargo.toml b/rust/Cargo.toml index d9faeecb10b..a00b8ad0bcd 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -63,7 +63,6 @@ ignored_unit_patterns =3D "deny" implicit_clone =3D "deny" macro_use_imports =3D "deny" missing_safety_doc =3D "deny" -multiple_crate_versions =3D "deny" mut_mut =3D "deny" needless_bitwise_bool =3D "deny" needless_pass_by_ref_mut =3D "deny" diff --git a/rust/meson.build b/rust/meson.build index 801f4374dfa..afce62f4772 100644 --- a/rust/meson.build +++ b/rust/meson.build @@ -24,21 +24,9 @@ subdir('hw') cargo =3D find_program('cargo', required: false) =20 if cargo.found() - run_target('clippy', - command: [config_host['MESON'], 'devenv', - '--workdir', '@CURRENT_SOURCE_DIR@', - cargo, 'clippy', '--tests'], - depends: bindings_rs) - run_target('rustfmt', command: [config_host['MESON'], 'devenv', '--workdir', '@CURRENT_SOURCE_DIR@', cargo, 'fmt'], depends: bindings_rs) - - run_target('rustdoc', - command: [config_host['MESON'], 'devenv', - '--workdir', '@CURRENT_SOURCE_DIR@', - cargo, 'doc', '--no-deps', '--document-private-items'], - depends: bindings_rs) endif diff --git a/scripts/rust/rustc_args.py b/scripts/rust/rustc_args.py index 2633157df2a..63b0748e0d3 100644 --- a/scripts/rust/rustc_args.py +++ b/scripts/rust/rustc_args.py @@ -104,10 +104,7 @@ def generate_lint_flags(cargo_toml: CargoTOML, strict_= lints: bool) -> Iterable[s else: raise Exception(f"invalid level {level} for {prefix}{lint}= ") =20 - # This may change if QEMU ever invokes clippy-driver or rustdo= c by - # hand. For now, check the syntax but do not add non-rustc li= nts to - # the command line. - if k =3D=3D "rust" and not (strict_lints and lint in STRICT_LI= NTS): + if not (strict_lints and lint in STRICT_LINTS): lint_list.append(LintFlag(flags=3D[flag, prefix + lint], p= riority=3Dpriority)) =20 if strict_lints: --=20 2.49.0