From patchwork Sat Apr 5 10:06:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 14039105 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 EB1ABC369A1 for ; Sat, 5 Apr 2025 10:07:06 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u10Pn-00075e-T4; Sat, 05 Apr 2025 06:06:15 -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 1u10Pm-00075V-Pv for qemu-devel@nongnu.org; Sat, 05 Apr 2025 06:06:14 -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 1u10Pl-0005rc-2G for qemu-devel@nongnu.org; Sat, 05 Apr 2025 06:06:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1743847572; 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=N+I/N/OFa/M4oooPCwQgNfIF7q6n2ZVwrbiN07nAWzU=; b=EzhgduZygnk5ilMVj8PlwLhsAsHlMsiDBM30JgbZBh5+0kRMvsZ2fsP4gO9wGcOfbxYY7/ PQLD+48rles5oHWHsuYvsldikcNRkMB8QdvtT8+SVBS6tZQc+wO0N7cSnRrBTyQND3A23a uFAyZMfDaACfj2xAqWyYgJ7lysxHsfU= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-120-AgvmXQnoMvKz3jrQGmO4Cg-1; Sat, 05 Apr 2025 06:06:10 -0400 X-MC-Unique: AgvmXQnoMvKz3jrQGmO4Cg-1 X-Mimecast-MFC-AGG-ID: AgvmXQnoMvKz3jrQGmO4Cg_1743847569 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-43cf3168b87so15650745e9.2 for ; Sat, 05 Apr 2025 03:06:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743847568; x=1744452368; 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=N+I/N/OFa/M4oooPCwQgNfIF7q6n2ZVwrbiN07nAWzU=; b=f5TZvMYGzgJNBbIsC3C0Ng/Zr3yBocDncIlXGFUfcw15KLFiNsA0XkV52UiEhRtQgH f6zyxNI1PXsDTCNjl02yuWNi6lopVZJlVJH9C6j61QIR3XNE4dScIzRO9Qb6Um4bh07K clutDfc/9zNwBpdJbdZ7YAsKxTYsBa4geR78zNEHMaKlYZOXSpXAuGqMmoeW/72Tsc5T RB62bl5CGbnhdBsdLVOUIxt+5wr2IK5OtmFwdb2QiS7JDMSvTYBnUDbgxd6YetUFd0OJ OBPdA2Rn2GcxA7DJ0ogXIP6smlv/HZxC4A1UH7wgn/dSD7DJORSTGjdcbgxeVBALhK8A r1dA== X-Gm-Message-State: AOJu0YzeSW6JCv23yEN++lDX5UAhgdoPO/3CtTYsk/98QniSwwfDA1fd mflWkGlAU4WGSMTkDseDlcBOCxQ4NBtJ5h9R/WM9bjTIsJc2DKsIksuk5GZh7dE5Rz1LOOfgvCI +Maxkkd7NdLbUyS3x84yhFWTMV3kzxNYaVm43O8P9bqBioqzF3tjN18EKTETCOXZfY7t7Crlnel YuihsCpsopYoEfXxsW9vl90LrnhE+7ZfpumKJI X-Gm-Gg: ASbGncuiSzVEhz1MXtF0EA6sA+WGPQqBm6n4Q/rAtrED2pmHlDUctc57Kwduhc4N0bh Rb4BDuV+9N/eGT03UfybBkGD9Wz5qinyDCG2wrUAJxHA6u5r4IByrITWwbUho/vNMUTGCP+3o3I wvL2t0fRnZH7BhYZx+/eU9Wf/pbmM6kj5+7s7Aiym+6ScOpftcsg9G2cb+WnT6PYY9GcOipFSPV +8EzAfd10sZPIgQvtheBJ3EtLuJpyIKas8w6Ex1jmcWF6c4uQX6ssbmhKLMthgc7TAOXQ+gjWbO zdb3QgO742z1R4pKQA== X-Received: by 2002:a05:6000:1a88:b0:391:47d8:de3a with SMTP id ffacd0b85a97d-39cba97f7d5mr4825689f8f.53.1743847568230; Sat, 05 Apr 2025 03:06:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEHCm7MXfcr3yOniTaQPTwQ9J+ba3OZYa5N8/P9p1ALElQ5MQSeGBgL/hWHUf+wR5hVYgK/fA== X-Received: by 2002:a05:6000:1a88:b0:391:47d8:de3a with SMTP id ffacd0b85a97d-39cba97f7d5mr4825670f8f.53.1743847567777; Sat, 05 Apr 2025 03:06:07 -0700 (PDT) Received: from [192.168.122.1] ([151.95.96.77]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c3020d5d1sm6554233f8f.77.2025.04.05.03.06.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Apr 2025 03:06:06 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: qemu-rust@nongnu.org, Bernhard Beschow Subject: [PATCH 1/3] rust: use "objects" for Rust executables as well Date: Sat, 5 Apr 2025 12:06:01 +0200 Message-ID: <20250405100603.253421-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250405100603.253421-1-pbonzini@redhat.com> References: <20250405100603.253421-1-pbonzini@redhat.com> MIME-Version: 1.0 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: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.028, 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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org 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/qemu-api/meson.build | 26 +++++--------------------- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/docs/devel/rust.rst b/docs/devel/rust.rst index 88bdec1eb28..8030aa42d0c 100644 --- a/docs/devel/rust.rst +++ b/docs/devel/rust.rst @@ -66,8 +66,6 @@ be run via ``meson test`` or ``make``:: make check-rust -Building Rust code with ``--enable-modules`` is not supported yet. - Supported tools ''''''''''''''' diff --git a/rust/qemu-api/meson.build b/rust/qemu-api/meson.build index 858685ddd4a..8fa41c0a95e 100644 --- a/rust/qemu-api/meson.build +++ b/rust/qemu-api/meson.build @@ -45,29 +45,13 @@ _qemu_api_rs = static_library( dependencies: [libc_dep, qemu_api_macros], ) +qemuutil_rs = qemuutil.partial_dependency(link_args: true, links: true) + rust.test('rust-qemu-api-tests', _qemu_api_rs, suite: ['unit', 'rust']) -qemu_api = declare_dependency(link_with: _qemu_api_rs) - -# Rust executables do not support objects, so add an intermediate step. -rust_qemu_api_objs = 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 = 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 = declare_dependency(link_with: [_qemu_api_rs], + dependencies: [qemuutil_rs, qemu_api_macros, qom, hwcore, chardev, migration]) test('rust-qemu-api-integration', executable( @@ -76,7 +60,7 @@ test('rust-qemu-api-integration', override_options: ['rust_std=2021', 'build.rust_std=2021'], 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', From patchwork Sat Apr 5 10:06:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 14039106 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 609F1C36010 for ; Sat, 5 Apr 2025 10:07:14 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u10Pv-00078W-5w; Sat, 05 Apr 2025 06:06: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 1u10Pr-00077H-9l for qemu-devel@nongnu.org; Sat, 05 Apr 2025 06:06:19 -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 1u10Pp-0005sJ-HV for qemu-devel@nongnu.org; Sat, 05 Apr 2025 06:06:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1743847576; 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=MHssbMwpp04AcS81wEaBlM+7BT95pXZcAectm5uN2H0=; b=QUCajXy6o0xNs+/gkpdJGbwnVe2jWeopXn7uRcY8NwVkePere0Br/+PwXFEsajtnuhqF4i yjBBO40H2r9bzVzhmD3GWC4DrMNojOOoXJ82qhAqPRgp7ezm4JvFzdleFS0u3ohi6YQD0e 8yC97ZDPstbHZWXdwlMBs9kDsEaFIqE= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-593-aU8-pweFO36z5sozbvWJqQ-1; Sat, 05 Apr 2025 06:06:13 -0400 X-MC-Unique: aU8-pweFO36z5sozbvWJqQ-1 X-Mimecast-MFC-AGG-ID: aU8-pweFO36z5sozbvWJqQ_1743847572 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-43d5ca7c86aso17305055e9.0 for ; Sat, 05 Apr 2025 03:06:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743847571; x=1744452371; 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=MHssbMwpp04AcS81wEaBlM+7BT95pXZcAectm5uN2H0=; b=RBhXXK9aeW4jBvHAtIyE+kZ0YTQNvYwiOSmYl44HrKikCfH/+sz8cQbfSA+yCn0n8D LKv8g5cgQ27ZptXpkMmk+FomfXufr5EC99oNrMin8/V3+01jGUF5OtwPLyHW5zXZAllr tS7nUAoX/AB085OGgn+yovuaeh4idF+OCqR1uldSuwqXIk+okQTgQs2rlBqVEvJkoHxR xpidwjzAVDAEk8WbNDRIu9804P8YfOyQigv3rZF8kAVv1Ry0HcYzgUT41wBJfdDyzsDg 7+i2ti19pQYf0NF9qkbuQSpzauRFoPXu8nGHvlxSCx9R8mIO8WaNxcuKHqeAfrmy58Zr sPPw== X-Gm-Message-State: AOJu0Yy4htSBCnpjJlTabxjrNN4B+HOH05lOsZN5rwWv84tf9fd6EXws FeZddO/YK5gIar0ETUpWxe+wtzyZMeCxl1mRlnSUtfFCuIXss7LPT7I/yBB/+O3CnAhAa6izyyv CxpTiOZruUkiZOXub9copOSsU59MNlW2VSwjSrufxw0AvDz34dgBtLidvm/y8Ui8NnZnXjxrtVD OOMfFJkW29UUub3iZp2ePwS+qDFMeQODWnOvBR X-Gm-Gg: ASbGncuBXCjOCKhiqdae32LtIh45akEcWdmem/Hz1lrJ3MaR5cSIenki+NRyno2xwfh K6pOE/BXRz5ZzPK9luC4khLDeH3/7Xxhny1mZBZCXd6eI4N/ppcss3EXWqpnHZcm3VNy97SlWsw IonwPVnoZpc1mSYpzQZXCWlABVodUelJmmoq4KKZlG+F6MfHGcdU5U4j/j6VkSIuCBGUzD2fSQ3 7a02kFi3oVUDfAi3u8PLV1C5xiwY4iroMzOdghusuKbm9lF3FHZy15y81bmvi5SIpeZinX70SAm 8SxKhjFpH0w7VDeIFQ== X-Received: by 2002:a05:600c:1c92:b0:43d:ed:ad07 with SMTP id 5b1f17b1804b1-43ecfa05104mr46700045e9.29.1743847571118; Sat, 05 Apr 2025 03:06:11 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFxf0T+zpLzJT8Lr0bxjY4zTHmYO+ogOfR9E8xOSSG+22v7Jm8V9b72TYJiVtRUcrLydxtU9Q== X-Received: by 2002:a05:600c:1c92:b0:43d:ed:ad07 with SMTP id 5b1f17b1804b1-43ecfa05104mr46699865e9.29.1743847570744; Sat, 05 Apr 2025 03:06:10 -0700 (PDT) Received: from [192.168.122.1] ([151.95.96.77]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec17b0dbesm71991405e9.33.2025.04.05.03.06.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Apr 2025 03:06:08 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: qemu-rust@nongnu.org Subject: [PATCH 2/3] rust: add qemu-api doctests to "meson test" Date: Sat, 5 Apr 2025 12:06:02 +0200 Message-ID: <20250405100603.253421-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250405100603.253421-1-pbonzini@redhat.com> References: <20250405100603.253421-1-pbonzini@redhat.com> MIME-Version: 1.0 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: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.028, 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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Doctest 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. Signed-off-by: Paolo Bonzini --- .gitlab-ci.d/buildtest.yml | 5 ----- rust/qemu-api/meson.build | 11 +++++++++++ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml index 00f4bfcd9f3..088d5683c88 100644 --- a/.gitlab-ci.d/buildtest.yml +++ b/.gitlab-ci.d/buildtest.yml @@ -131,12 +131,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 allow_failure: true diff --git a/rust/qemu-api/meson.build b/rust/qemu-api/meson.build index 8fa41c0a95e..ede6e14e5e0 100644 --- a/rust/qemu-api/meson.build +++ b/rust/qemu-api/meson.build @@ -53,6 +53,17 @@ rust.test('rust-qemu-api-tests', _qemu_api_rs, qemu_api = declare_dependency(link_with: [_qemu_api_rs], dependencies: [qemuutil_rs, qemu_api_macros, qom, hwcore, chardev, migration]) +# Doctests are essentially integration tests, so they need the same "depends" as +# below and cannot be run with "cargo test --doc". Developer tools are only +# supported for versions 1.74.0 or newer of Rust. +if rustc.version().version_compare('>=1.74.0') + rust.doctest('rust-qemu-api-doctests', + _qemu_api_rs, + protocol: 'rust', + dependencies: qemu_api, + suite: ['doc', 'rust']) +endif + test('rust-qemu-api-integration', executable( 'rust-qemu-api-integration', From patchwork Sat Apr 5 10:06:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 14039107 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 DC965C3601A for ; Sat, 5 Apr 2025 10:07:15 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u10Ps-00077y-Rt; Sat, 05 Apr 2025 06:06: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 1u10Pr-00077p-WF for qemu-devel@nongnu.org; Sat, 05 Apr 2025 06:06:20 -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 1u10Pq-0005sl-C5 for qemu-devel@nongnu.org; Sat, 05 Apr 2025 06:06:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1743847577; 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=9+CY5CveonKo7CWmyzLUAVkunDmtEX2A2L1U4F0vskc=; b=EDQDYcNHD6or4zH2J4o9A08mqLAeA1eXWYDCnxa1JOYYu18EQpV8R5cyaZC//L96mYnMvO eF6v8iGGZF93mdoAyTngVBU7FkCDZj280IiyEViXUA47ABueOsLUxuuomvvqyNluIPjodJ mHxn6a2iPKMgSR0ypVm9DEiXqO+NgaY= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-390-7Cj3FUNpMgi8_7a1RNPj9Q-1; Sat, 05 Apr 2025 06:06:16 -0400 X-MC-Unique: 7Cj3FUNpMgi8_7a1RNPj9Q-1 X-Mimecast-MFC-AGG-ID: 7Cj3FUNpMgi8_7a1RNPj9Q_1743847575 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-43ced8c2eb7so21801245e9.1 for ; Sat, 05 Apr 2025 03:06:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743847574; x=1744452374; 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=9+CY5CveonKo7CWmyzLUAVkunDmtEX2A2L1U4F0vskc=; b=XyHwfKUHdfFxDBFpzS+VmBfZHz5ySRkBEG3lp1Cmjp09hd08TUT9ZtTrbalqtcTpg3 yxXTTEY+LQfmjO8Gi5fVXItme+C4EQYq1ap/wnqttFhjz30PxW00PCaCjtwAZAkhjKgQ whg5PyOv7wBgwTkGQHp0i+w1mzDoOMeuUWhl0bREXiVhDvtMC6/83meeJGA+F6QhJ7SV TXfGgKZkMQDFTy0bZIqgFfqWkumEUPFN4ZWAI9X8QiGUtR//eecqEuWKQheSjjlM9CoG eNQGc8DL2vurXTvlYlOJjhrLwlvnEoosZ9FJXFcXMLr6uuVda96C6Vb9sntGYtSbJKLb tJ0Q== X-Gm-Message-State: AOJu0YxjNpWlWQi4uE9uDHHSE7/aeXLTfWjd5xc7b2F5A8prc73dT4mD 4eqs8/XuMHXM3FnvwW7Z/pwrQmVlkwYEW8xMXMR3M5wTewr7mglH/2u7cQxEXw+mY+C08tgRnyN J/1szjPFzZC97NqPo4ONS1UOgznLUG7dRmpXRblzxVgvNy7dmnm+s7OThF/ZJ/n9kZMXBl8Ears vj5W526EMEZYjj11sKIxN1aTLG+O6tGbCdmqTG X-Gm-Gg: ASbGncuic5/F+S24gXlpmE8OqS+E+ahSHcMjq41ibQhrHCqkLdmDosqDiZNTFpzyUEB yQ3vQmGF1dG7BDHKrwfiHyg7dDTQTjsPFP0Rm4o9vMGG0CPOmzqhBk/ukA5nKP9lHSNNq9ho3cE Dja5UHp1dNKy7iW2e9MwU94ABLJtJagU/nk3NWG05vHKYe9wDrJG8Edd00TdxqYUwR4/6iryQJ4 SkA3HbQlrCdT+7TRfLOrkrcSf9xnav6Uopuy621/aiAjEr8oRjMNRKXa3+xFgo3dlxZZX9PnJ9v sBE1bcNiIbHWGwljUA== X-Received: by 2002:a05:600c:4f45:b0:43d:7588:6688 with SMTP id 5b1f17b1804b1-43ed0bc8db0mr57683025e9.12.1743847574407; Sat, 05 Apr 2025 03:06:14 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFBsJOk8rj9MLj0V7b4tIP01ZxaS8FB506z1sQ+AQ07CjHSmQdux5aDECfP96KRjf7/evRKQQ== X-Received: by 2002:a05:600c:4f45:b0:43d:7588:6688 with SMTP id 5b1f17b1804b1-43ed0bc8db0mr57682855e9.12.1743847573960; Sat, 05 Apr 2025 03:06:13 -0700 (PDT) Received: from [192.168.122.1] ([151.95.96.77]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c30096ed7sm6299833f8f.8.2025.04.05.03.06.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Apr 2025 03:06:11 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: qemu-rust@nongnu.org Subject: [PATCH 3/3] rust: cell: remove support for running doctests with "cargo test --doc" Date: Sat, 5 Apr 2025 12:06:03 +0200 Message-ID: <20250405100603.253421-4-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250405100603.253421-1-pbonzini@redhat.com> References: <20250405100603.253421-1-pbonzini@redhat.com> MIME-Version: 1.0 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: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.028, 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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org 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 ab0785a2692..b3d68bf4a0d 100644 --- a/rust/qemu-api/src/cell.rs +++ b/rust/qemu-api/src/cell.rs @@ -225,27 +225,23 @@ /// An internal function that is used by doctests. pub fn bql_start_test() { - if cfg!(MESON) { - // SAFETY: integration tests are run with --test-threads=1, 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=1, 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(); } } 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() } } 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); } } From patchwork Sat Apr 5 12:23:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 14039129 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 74119C36010 for ; Sat, 5 Apr 2025 12:24:34 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u12Z3-00037t-Ef; Sat, 05 Apr 2025 08:23: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 1u12Yz-00037h-DD for qemu-devel@nongnu.org; Sat, 05 Apr 2025 08:23:53 -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 1u12Yx-0006A3-Fw for qemu-devel@nongnu.org; Sat, 05 Apr 2025 08:23:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1743855829; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=G9Egx7ciCkAn3Id3UgmQxvHL/Kh+qnwFknbviknhEAA=; b=RbMMJrAUS4/Oyn5P72w553nLj6M7r2aG+Z2mfekvq/6iu1T0orichHoz2dZPiZrISoc3mz +9DElpUTvPvPsN92gvLjvpUZhefJALEpmKSgQkHsJ3/90nadyiRmoqPYwmEbLYI3pcRiFQ yiOrSK3XDHUgwc8SdyYselTjouMwG0E= Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-643-s3fWEwd6McaXgCGNxFozzA-1; Sat, 05 Apr 2025 08:23:46 -0400 X-MC-Unique: s3fWEwd6McaXgCGNxFozzA-1 X-Mimecast-MFC-AGG-ID: s3fWEwd6McaXgCGNxFozzA_1743855826 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-ac3db5469fbso233712566b.0 for ; Sat, 05 Apr 2025 05:23:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743855825; x=1744460625; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=G9Egx7ciCkAn3Id3UgmQxvHL/Kh+qnwFknbviknhEAA=; b=VwCzIBb/fnCdN12uzQwxWM/R098+5+Z1jN6qfIyJ1FIeL39LbVnLMypPaNtri0vJbJ f+FLfpn54GlSl8vA4ad+f25ySSyE+6VmQZCaKCztoTcBmawzlIrs2JPmSu5WVJbrvpi9 hcpea5HcBS/LrRhgulcxWaztgqRS7y8i7xVjmfM/4yzHhZiK5dC+mmQ32qfZxQBogKb6 kAD/e7NQdnebie9QH5iPeYhPq23LZXi63JzgLQ6W7FiZXZG34lTTfBaY+Jz4I7zLRxer e90q9kjNX9f241/OD666vzA1WH/jH/pkhdZL7Lw3eObJkxdS0G0I3zk67TxchQJQANU7 4D5g== X-Gm-Message-State: AOJu0Yx3MftIorQBbeaB/Fdej3GqrRYiKuCSI7xl9stji/p8YsbBelJB 4mLxPyIrn9UKUMIpmrzGYvA1zkgzQnMkXVlUQrU+QXfnLgVGdPT5BwNwTX9QQWSsPMmkdKxel6P ALUlMemMTUvTKBXaZ1o0ubUmYiPNy5DGFjP12cA3742HmWNTIFk8M+Ptggjuf7VPEBfL5N1ydyI zChvSuPEziAcgZtAc6K6Bc+eGA7AI/PDlmwaPV X-Gm-Gg: ASbGncvWt/1EHBHatF6nUVml8o2M1qrYMLAgKBbe83zhYktwK8ye2o2u+mGivpy5P6L c/wH4mH/04poNiu4gaOjcKMggycDSB2sro4no4El/YgrH494yUgKE4QAjZ2Ml13FHL1vDE+kjEf xvIoG/ovKB+LUL3W4GvPmTB9x1ykr3XQLLovtTTUIAL3H9hWCGsVMpS9lV1rYujX6AN0Iyja9Hc BjnqMY5Z3r7JgaS1OBASeuJ96uhWvYXn17bLr2LY/9TKYVg3hOg7+08OgeZ48v2ie36woCH3otq HfGvVehRvw8uO7D0MfQ7qyFPVLMr9Tct54wo2DqN7flUowVlQy0= X-Received: by 2002:a17:907:8688:b0:ac3:c59a:413e with SMTP id a640c23a62f3a-ac7d6ec546dmr530512066b.55.1743855824667; Sat, 05 Apr 2025 05:23:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG238YhdF/UV5hOQdHkzrxYD85XDUYSNjQMuMFavLIJOSLMC+mrEXdRu7HAv6Tlxd8uH3RD8w== X-Received: by 2002:a17:907:8688:b0:ac3:c59a:413e with SMTP id a640c23a62f3a-ac7d6ec546dmr530510166b.55.1743855824110; Sat, 05 Apr 2025 05:23:44 -0700 (PDT) Received: from [192.168.122.1] (93-40-94-249.ip38.fastwebnet.it. [93.40.94.249]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac7c0185ba0sm410430966b.151.2025.04.05.05.23.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Apr 2025 05:23:42 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PATCH 4/3] rust: use native Meson support for clippy and rustdoc Date: Sat, 5 Apr 2025 14:23:41 +0200 Message-ID: <20250405122341.264763-1-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250405100603.253421-1-pbonzini@redhat.com> References: <20250405100603.253421-1-pbonzini@redhat.com> MIME-Version: 1.0 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.359, 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+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org 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. rustfmt is still not supported. Signed-off-by: Paolo Bonzini --- meson.build | 2 +- rust/clippy.toml => clippy.toml | 0 rust/Cargo.toml | 1 - rust/meson.build | 12 ------------ scripts/rust/rustc_args.py | 5 +---- 5 files changed, 2 insertions(+), 18 deletions(-) rename rust/clippy.toml => clippy.toml (100%) diff --git a/meson.build b/meson.build index ce4c947e956..d4a868c5188 100644 --- a/meson.build +++ b/meson.build @@ -4241,7 +4241,7 @@ foreach target : target_dirs build_by_default: true, build_always_stale: true) rlib = static_library('rust_' + target.underscorify(), - rlib_rs, + structured_sources([], {'.': rlib_rs}), dependencies: target_rust.dependencies(), override_options: ['rust_std=2021', 'build.rust_std=2021'], 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 ab1185a8143..38870f06c11 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -56,7 +56,6 @@ ignored_unit_patterns = "deny" implicit_clone = "deny" macro_use_imports = "deny" missing_safety_doc = "deny" -multiple_crate_versions = "deny" mut_mut = "deny" needless_bitwise_bool = "deny" needless_pass_by_ref_mut = "deny" diff --git a/rust/meson.build b/rust/meson.build index 91e52b8fb8e..9736ad300bb 100644 --- a/rust/meson.build +++ b/rust/meson.build @@ -6,21 +6,9 @@ subdir('hw') cargo = find_program('cargo', required: false) 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}") - # This may change if QEMU ever invokes clippy-driver or rustdoc by - # hand. For now, check the syntax but do not add non-rustc lints to - # the command line. - if k == "rust" and not (strict_lints and lint in STRICT_LINTS): + if not (strict_lints and lint in STRICT_LINTS): lint_list.append(LintFlag(flags=[flag, prefix + lint], priority=priority)) if strict_lints: