qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC PATCH v6 5/5] rust: add PL011 device model


From: Junjie Mao
Subject: Re: [RFC PATCH v6 5/5] rust: add PL011 device model
Date: Mon, 12 Aug 2024 16:50:17 +0800
User-agent: Mozilla Thunderbird

On 8/8/2024 4:31 PM, Paolo Bonzini wrote:
On 8/4/24 23:04, Manos Pitsidianakis wrote:

[snip]

Also in bilge's meson.build:

+arbitrary_int_dep = subproject('arbitrary-int').get_variable('arbitrary_int_dep')
+bilge_impl_dep = subproject('bilge-impl').get_variable('bilge_impl_dep')
+
+lib = static_library(
+  'bilge',
+  'src/lib.rs',
+  override_options : ['rust_std=2021', 'build.rust_std=2021'],
+  rust_abi : 'rust',
+  native : true,
+  dependencies: [

native should not be true here (but it should be true for the dependencies of bilge-impl: either, itertools, proc-macro-error, proc-macro-error-attr, proc-macro2, quote, syn, unicode-ident).

I've placed my updates at a branch "rust-for-manos" of https://gitlab.com/bonzini/qemu/.  I left the fixes unsquashed for your review, but feel free to merge them and post the result as part of v7.

I tested that branch by a cross-build to aarch64 on an x86_64 machine (with "./configure --cross-prefix=aarch64-linux-gnu- --rust-target-triple=aarch64-unknown-linux-gnu"). To configure successfully, I need to add "native: true" to every "dependency()" that refers to those dependencies. Also their "override_dependency" needs a "native: true" as well. Here are my detailed changes:

========
diff --git a/subprojects/packagefiles/bilge-impl-0.2-rs/meson.build b/subprojects/packagefiles/bilge-impl-0.2-rs/meson.build
index ef1af5683a..a5f04bfeca 100644
--- a/subprojects/packagefiles/bilge-impl-0.2-rs/meson.build
+++ b/subprojects/packagefiles/bilge-impl-0.2-rs/meson.build
@@ -11,7 +11,7 @@ subproject('syn-2-rs', required: true)
 subproject('proc-macro2-1-rs', required: true)

 itertools_dep = dependency('itertools-0.11-rs-native', native: true)
-proc_macro_error_attr_dep = dependency('proc-macro-error-attr-1-rs')
+proc_macro_error_attr_dep = dependency('proc-macro-error-attr-1-rs-native', native: true)
 proc_macro_error_dep = dependency('proc-macro-error-1-rs-native', native: true)
 quote_dep = dependency('quote-1-rs-native', native: true)
 syn_dep = dependency('syn-2-rs-native', native: true)
diff --git a/subprojects/packagefiles/either-1-rs/meson.build b/subprojects/packagefiles/either-1-rs/meson.build
index 0101ffe446..8a92596cd0 100644
--- a/subprojects/packagefiles/either-1-rs/meson.build
+++ b/subprojects/packagefiles/either-1-rs/meson.build
@@ -21,4 +21,4 @@ either_dep = declare_dependency(
   link_with: _either_rs,
 )

-meson.override_dependency('either-1-rs-native', either_dep)
+meson.override_dependency('either-1-rs-native', either_dep, native: true)
diff --git a/subprojects/packagefiles/itertools-0.11-rs/meson.build b/subprojects/packagefiles/itertools-0.11-rs/meson.build
index 903913eb1d..6c2d1387e0 100644
--- a/subprojects/packagefiles/itertools-0.11-rs/meson.build
+++ b/subprojects/packagefiles/itertools-0.11-rs/meson.build
@@ -5,7 +5,7 @@ project('itertools-0.11-rs', 'rust',

 subproject('either-1-rs', required: true)

-either_dep = dependency('either-1-rs-native')
+either_dep = dependency('either-1-rs-native', native: true)

 _itertools_rs = static_library(
   'itertools',
@@ -27,4 +27,4 @@ itertools_dep = declare_dependency(
   link_with: _itertools_rs,
 )

-meson.override_dependency('itertools-0.11-rs-native', itertools_dep)
+meson.override_dependency('itertools-0.11-rs-native', itertools_dep, native: 
true)
diff --git a/subprojects/packagefiles/proc-macro-error-1-rs/meson.build b/subprojects/packagefiles/proc-macro-error-1-rs/meson.build
index f65e319ec7..673675930f 100644
--- a/subprojects/packagefiles/proc-macro-error-1-rs/meson.build
+++ b/subprojects/packagefiles/proc-macro-error-1-rs/meson.build
@@ -8,10 +8,10 @@ subproject('quote-1-rs', required: true)
 subproject('syn-2-rs', required: true)
 subproject('proc-macro2-1-rs', required: true)

-proc_macro_error_attr_dep = dependency('proc-macro-error-attr-1-rs')
-proc_macro2_dep = dependency('proc-macro2-1-rs-native')
-quote_dep = dependency('quote-1-rs-native')
-syn_dep = dependency('syn-2-rs-native')
+proc_macro_error_attr_dep = dependency('proc-macro-error-attr-1-rs-native', native: true)
+proc_macro2_dep = dependency('proc-macro2-1-rs-native', native: true)
+quote_dep = dependency('quote-1-rs-native', native: true)
+syn_dep = dependency('syn-2-rs-native', native: true)

 _proc_macro_error_rs = static_library(
   'proc_macro_error',
@@ -37,4 +37,4 @@ proc_macro_error_dep = declare_dependency(
   link_with: _proc_macro_error_rs,
 )

-meson.override_dependency('proc-macro-error-1-rs-native', proc_macro_error_dep)
+meson.override_dependency('proc-macro-error-1-rs-native', proc_macro_error_dep, native: true) diff --git a/subprojects/packagefiles/proc-macro-error-attr-1-rs/meson.build b/subprojects/packagefiles/proc-macro-error-attr-1-rs/meson.build
index 5c4e99f248..b6f25811eb 100644
--- a/subprojects/packagefiles/proc-macro-error-attr-1-rs/meson.build
+++ b/subprojects/packagefiles/proc-macro-error-attr-1-rs/meson.build
@@ -6,8 +6,8 @@ project('proc-macro-error-attr-1-rs', 'rust',
 subproject('proc-macro2-1-rs', required: true)
 subproject('quote-1-rs', required: true)

-proc_macro2_dep = dependency('proc-macro2-1-rs-native')
-quote_dep = dependency('quote-1-rs-native')
+proc_macro2_dep = dependency('proc-macro2-1-rs-native', native: true)
+quote_dep = dependency('quote-1-rs-native', native: true)

 rust = import('rust')
 _proc_macro_error_attr_rs = rust.proc_macro(
@@ -29,4 +29,4 @@ proc_macro_error_attr_dep = declare_dependency(
   link_with: _proc_macro_error_attr_rs,
 )

-meson.override_dependency('proc-macro-error-attr-1-rs', 
proc_macro_error_attr_dep)
+meson.override_dependency('proc-macro-error-attr-1-rs-native', proc_macro_error_attr_dep, native: true) diff --git a/subprojects/packagefiles/proc-macro2-1-rs/meson.build b/subprojects/packagefiles/proc-macro2-1-rs/meson.build
index 06279a8a6c..a5f4c11f82 100644
--- a/subprojects/packagefiles/proc-macro2-1-rs/meson.build
+++ b/subprojects/packagefiles/proc-macro2-1-rs/meson.build
@@ -30,4 +30,4 @@ proc_macro2_dep = declare_dependency(
   link_with: _proc_macro2_rs,
 )

-meson.override_dependency('proc-macro2-1-rs-native', proc_macro2_dep)
+meson.override_dependency('proc-macro2-1-rs-native', proc_macro2_dep, native: 
true)
diff --git a/subprojects/packagefiles/quote-1-rs/meson.build b/subprojects/packagefiles/quote-1-rs/meson.build
index 4663295ccc..41feed9683 100644
--- a/subprojects/packagefiles/quote-1-rs/meson.build
+++ b/subprojects/packagefiles/quote-1-rs/meson.build
@@ -5,7 +5,7 @@ project('quote-1-rs', 'rust',

 subproject('proc-macro2-1-rs', required: true)

-proc_macro2_dep = dependency('proc-macro2-1-rs-native')
+proc_macro2_dep = dependency('proc-macro2-1-rs-native', native: true)

 _quote_rs = static_library(
   'quote',
@@ -26,4 +26,4 @@ quote_dep = declare_dependency(
   link_with: _quote_rs,
 )

-meson.override_dependency('quote-1-rs-native', quote_dep)
+meson.override_dependency('quote-1-rs-native', quote_dep, native: true)
diff --git a/subprojects/packagefiles/syn-2-rs/meson.build b/subprojects/packagefiles/syn-2-rs/meson.build
index 21d817a33e..61cfc469c1 100644
--- a/subprojects/packagefiles/syn-2-rs/meson.build
+++ b/subprojects/packagefiles/syn-2-rs/meson.build
@@ -7,8 +7,8 @@ subproject('proc-macro2-1-rs', required: true)
 subproject('quote-1-rs', required: true)
 subproject('unicode-ident-1-rs', required: true)

-proc_macro2_dep = dependency('proc-macro2-1-rs-native')
-quote_dep = dependency('quote-1-rs-native')
+proc_macro2_dep = dependency('proc-macro2-1-rs-native', native: true)
+quote_dep = dependency('quote-1-rs-native', native: true)
 unicode_ident_dep = dependency('unicode-ident-1-rs-native', native: true)

 _syn_rs = static_library(
@@ -37,4 +37,4 @@ syn_dep = declare_dependency(
   link_with: _syn_rs,
 )

-meson.override_dependency('syn-2-rs-native', syn_dep)
+meson.override_dependency('syn-2-rs-native', syn_dep, native: true)
diff --git a/subprojects/packagefiles/unicode-ident-1-rs/meson.build b/subprojects/packagefiles/unicode-ident-1-rs/meson.build
index 80d088282c..c398f59211 100644
--- a/subprojects/packagefiles/unicode-ident-1-rs/meson.build
+++ b/subprojects/packagefiles/unicode-ident-1-rs/meson.build
@@ -19,4 +19,4 @@ unicode_ident_dep = declare_dependency(
   link_with: _unicode_ident_rs,
 )

-meson.override_dependency('unicode-ident-1-rs-native', unicode_ident_dep)
+meson.override_dependency('unicode-ident-1-rs-native', unicode_ident_dep, native: true)
========

Besides, I think we don't need the "-native" suffix in the dependency names since we already have that "native: true" argument. I also tested configuration and build after execute "find . -name 'meson.build' | xargs -n 1 sed -i 's/-native//g'" under subprojects/packagefiles, and it worked as well.

With the changes above, I'm able to cross-build except for one known linking issue [1].

[1] https://github.com/llvm/llvm-project/pull/93890

Thanks
Junjie Mao


Paolo






reply via email to

[Prev in Thread] Current Thread [Next in Thread]