mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
rust: pin-init: add syn dependency and remove proc-macro[2] and quote workarounds
`syn` makes parsing Rust from proc-macros a lot simpler. `pin-init` has
not used `syn` up until now, because the we did not support it. That
changed in commit 54e3eae855 ("Merge patch series "`syn` support""),
so we can finally utilize the added ergonomics of parsing proc-macro
input with `syn`.
Previously we only had the `proc-macro` library available, whereas the
user-space version also used `proc-macro2` and `quote`. Now both are
available, so remove the workarounds.
Due to these changes, clippy emits warnings about unnecessary
`.to_string()` as `proc-macro2` provides an additional `PartialEq` impl
on `Ident`, so the warnings are fixed.
[ Adjusted wording from upstream version and added build system changes
for the kernel - Benno ]
Co-developed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Tamir Duberstein <tamird@gmail.com>
Tested-by: Andreas Hindborg <a.hindborg@kernel.org>
Signed-off-by: Benno Lossin <lossin@kernel.org>
This commit is contained in:
@@ -212,9 +212,10 @@ rustdoc-ffi: $(src)/ffi.rs rustdoc-core FORCE
|
||||
|
||||
rustdoc-pin_init_internal: private rustdoc_host = yes
|
||||
rustdoc-pin_init_internal: private rustc_target_flags = --cfg kernel \
|
||||
--extern proc_macro --crate-type proc-macro
|
||||
--extern proc_macro --extern proc_macro2 --extern quote --extern syn \
|
||||
--crate-type proc-macro
|
||||
rustdoc-pin_init_internal: $(src)/pin-init/internal/src/lib.rs \
|
||||
rustdoc-clean FORCE
|
||||
rustdoc-clean rustdoc-proc_macro2 rustdoc-quote rustdoc-syn FORCE
|
||||
+$(call if_changed,rustdoc)
|
||||
|
||||
rustdoc-pin_init: private rustdoc_host = yes
|
||||
@@ -273,9 +274,10 @@ rusttestlib-macros: $(src)/macros/lib.rs \
|
||||
+$(call if_changed,rustc_test_library)
|
||||
|
||||
rusttestlib-pin_init_internal: private rustc_target_flags = --cfg kernel \
|
||||
--extern proc_macro
|
||||
--extern proc_macro --extern proc_macro2 --extern quote --extern syn
|
||||
rusttestlib-pin_init_internal: private rustc_test_library_proc = yes
|
||||
rusttestlib-pin_init_internal: $(src)/pin-init/internal/src/lib.rs FORCE
|
||||
rusttestlib-pin_init_internal: $(src)/pin-init/internal/src/lib.rs \
|
||||
rusttestlib-proc_macro2 rusttestlib-quote rusttestlib-syn FORCE
|
||||
+$(call if_changed,rustc_test_library)
|
||||
|
||||
rusttestlib-pin_init: private rustc_target_flags = --extern pin_init_internal \
|
||||
@@ -547,8 +549,10 @@ $(obj)/$(libmacros_name): $(src)/macros/lib.rs $(obj)/libproc_macro2.rlib \
|
||||
$(obj)/libquote.rlib $(obj)/libsyn.rlib FORCE
|
||||
+$(call if_changed_dep,rustc_procmacro)
|
||||
|
||||
$(obj)/$(libpin_init_internal_name): private rustc_target_flags = --cfg kernel
|
||||
$(obj)/$(libpin_init_internal_name): $(src)/pin-init/internal/src/lib.rs FORCE
|
||||
$(obj)/$(libpin_init_internal_name): private rustc_target_flags = --cfg kernel \
|
||||
--extern proc_macro2 --extern quote --extern syn
|
||||
$(obj)/$(libpin_init_internal_name): $(src)/pin-init/internal/src/lib.rs \
|
||||
$(obj)/libproc_macro2.rlib $(obj)/libquote.rlib $(obj)/libsyn.rlib FORCE
|
||||
+$(call if_changed_dep,rustc_procmacro)
|
||||
|
||||
quiet_cmd_rustc_library = $(if $(skip_clippy),RUSTC,$(RUSTC_OR_CLIPPY_QUIET)) L $@
|
||||
|
||||
Reference in New Issue
Block a user