Makefile (6d75c6f40a03c97e1ecd683ae54e249abb9d922b) | Makefile (e2bad142bb3de836c5fbb3dff704578f5a73d8e6) |
---|---|
1# SPDX-License-Identifier: GPL-2.0 2 3# Where to place rustdoc generated documentation 4rustdoc_output := $(objtree)/Documentation/output/rust/rustdoc 5 6obj-$(CONFIG_RUST) += core.o compiler_builtins.o 7always-$(CONFIG_RUST) += exports_core_generated.h 8 --- 26 unchanged lines hidden (view full) --- 35 36obj-$(CONFIG_RUST_KERNEL_DOCTESTS) += doctests_kernel_generated.o 37obj-$(CONFIG_RUST_KERNEL_DOCTESTS) += doctests_kernel_generated_kunit.o 38 39# Avoids running `$(RUSTC)` for the sysroot when it may not be available. 40ifdef CONFIG_RUST 41 42# `$(rust_flags)` is passed in case the user added `--sysroot`. | 1# SPDX-License-Identifier: GPL-2.0 2 3# Where to place rustdoc generated documentation 4rustdoc_output := $(objtree)/Documentation/output/rust/rustdoc 5 6obj-$(CONFIG_RUST) += core.o compiler_builtins.o 7always-$(CONFIG_RUST) += exports_core_generated.h 8 --- 26 unchanged lines hidden (view full) --- 35 36obj-$(CONFIG_RUST_KERNEL_DOCTESTS) += doctests_kernel_generated.o 37obj-$(CONFIG_RUST_KERNEL_DOCTESTS) += doctests_kernel_generated_kunit.o 38 39# Avoids running `$(RUSTC)` for the sysroot when it may not be available. 40ifdef CONFIG_RUST 41 42# `$(rust_flags)` is passed in case the user added `--sysroot`. |
43rustc_sysroot := $(shell MAKEFLAGS= $(RUSTC) $(rust_flags) --print sysroot) | 43rustc_sysroot := $(shell $(RUSTC) $(rust_flags) --print sysroot) |
44rustc_host_target := $(shell $(RUSTC) --version --verbose | grep -F 'host: ' | cut -d' ' -f2) 45RUST_LIB_SRC ?= $(rustc_sysroot)/lib/rustlib/src/rust/library 46 47ifeq ($(quiet),silent_) 48cargo_quiet=-q 49rust_test_quiet=-q 50rustdoc_test_quiet=--test-args -q 51rustdoc_test_kernel_quiet=>/dev/null --- 43 unchanged lines hidden (view full) --- 95rustdoc: rustdoc-core rustdoc-macros rustdoc-compiler_builtins \ 96 rustdoc-alloc rustdoc-kernel 97 $(Q)cp $(srctree)/Documentation/images/logo.svg $(rustdoc_output)/static.files/ 98 $(Q)cp $(srctree)/Documentation/images/COPYING-logo $(rustdoc_output)/static.files/ 99 $(Q)find $(rustdoc_output) -name '*.html' -type f -print0 | xargs -0 sed -Ei \ 100 -e 's:rust-logo-[0-9a-f]+\.svg:logo.svg:g' \ 101 -e 's:favicon-[0-9a-f]+\.svg:logo.svg:g' \ 102 -e 's:<link rel="alternate icon" type="image/png" href="[/.]+/static\.files/favicon-(16x16|32x32)-[0-9a-f]+\.png">::g' \ | 44rustc_host_target := $(shell $(RUSTC) --version --verbose | grep -F 'host: ' | cut -d' ' -f2) 45RUST_LIB_SRC ?= $(rustc_sysroot)/lib/rustlib/src/rust/library 46 47ifeq ($(quiet),silent_) 48cargo_quiet=-q 49rust_test_quiet=-q 50rustdoc_test_quiet=--test-args -q 51rustdoc_test_kernel_quiet=>/dev/null --- 43 unchanged lines hidden (view full) --- 95rustdoc: rustdoc-core rustdoc-macros rustdoc-compiler_builtins \ 96 rustdoc-alloc rustdoc-kernel 97 $(Q)cp $(srctree)/Documentation/images/logo.svg $(rustdoc_output)/static.files/ 98 $(Q)cp $(srctree)/Documentation/images/COPYING-logo $(rustdoc_output)/static.files/ 99 $(Q)find $(rustdoc_output) -name '*.html' -type f -print0 | xargs -0 sed -Ei \ 100 -e 's:rust-logo-[0-9a-f]+\.svg:logo.svg:g' \ 101 -e 's:favicon-[0-9a-f]+\.svg:logo.svg:g' \ 102 -e 's:<link rel="alternate icon" type="image/png" href="[/.]+/static\.files/favicon-(16x16|32x32)-[0-9a-f]+\.png">::g' \ |
103 -e 's:<a href="srctree/([^"]+)">:<a href="$(abs_srctree)/\1">:g' | 103 -e 's:<a href="srctree/([^"]+)">:<a href="$(realpath $(srctree))/\1">:g' |
104 $(Q)for f in $(rustdoc_output)/static.files/rustdoc-*.css; do \ 105 echo ".logo-container > img { object-fit: contain; }" >> $$f; done 106 107rustdoc-macros: private rustdoc_host = yes 108rustdoc-macros: private rustc_target_flags = --crate-type proc-macro \ 109 --extern proc_macro 110rustdoc-macros: $(src)/macros/lib.rs FORCE | 104 $(Q)for f in $(rustdoc_output)/static.files/rustdoc-*.css; do \ 105 echo ".logo-container > img { object-fit: contain; }" >> $$f; done 106 107rustdoc-macros: private rustdoc_host = yes 108rustdoc-macros: private rustc_target_flags = --crate-type proc-macro \ 109 --extern proc_macro 110rustdoc-macros: $(src)/macros/lib.rs FORCE |
111 +$(call if_changed,rustdoc) | 111 $(call if_changed,rustdoc) |
112 113rustdoc-core: private rustc_target_flags = $(core-cfgs) 114rustdoc-core: $(RUST_LIB_SRC)/core/src/lib.rs FORCE | 112 113rustdoc-core: private rustc_target_flags = $(core-cfgs) 114rustdoc-core: $(RUST_LIB_SRC)/core/src/lib.rs FORCE |
115 +$(call if_changed,rustdoc) | 115 $(call if_changed,rustdoc) |
116 117rustdoc-compiler_builtins: $(src)/compiler_builtins.rs rustdoc-core FORCE | 116 117rustdoc-compiler_builtins: $(src)/compiler_builtins.rs rustdoc-core FORCE |
118 +$(call if_changed,rustdoc) | 118 $(call if_changed,rustdoc) |
119 120# We need to allow `rustdoc::broken_intra_doc_links` because some 121# `no_global_oom_handling` functions refer to non-`no_global_oom_handling` 122# functions. Ideally `rustdoc` would have a way to distinguish broken links 123# due to things that are "configured out" vs. entirely non-existing ones. 124rustdoc-alloc: private rustc_target_flags = $(alloc-cfgs) \ 125 -Arustdoc::broken_intra_doc_links 126rustdoc-alloc: $(src)/alloc/lib.rs rustdoc-core rustdoc-compiler_builtins FORCE | 119 120# We need to allow `rustdoc::broken_intra_doc_links` because some 121# `no_global_oom_handling` functions refer to non-`no_global_oom_handling` 122# functions. Ideally `rustdoc` would have a way to distinguish broken links 123# due to things that are "configured out" vs. entirely non-existing ones. 124rustdoc-alloc: private rustc_target_flags = $(alloc-cfgs) \ 125 -Arustdoc::broken_intra_doc_links 126rustdoc-alloc: $(src)/alloc/lib.rs rustdoc-core rustdoc-compiler_builtins FORCE |
127 +$(call if_changed,rustdoc) | 127 $(call if_changed,rustdoc) |
128 129rustdoc-kernel: private rustc_target_flags = --extern alloc \ 130 --extern build_error --extern macros=$(objtree)/$(obj)/libmacros.so \ 131 --extern bindings --extern uapi 132rustdoc-kernel: $(src)/kernel/lib.rs rustdoc-core rustdoc-macros \ 133 rustdoc-compiler_builtins rustdoc-alloc $(obj)/libmacros.so \ 134 $(obj)/bindings.o FORCE | 128 129rustdoc-kernel: private rustc_target_flags = --extern alloc \ 130 --extern build_error --extern macros=$(objtree)/$(obj)/libmacros.so \ 131 --extern bindings --extern uapi 132rustdoc-kernel: $(src)/kernel/lib.rs rustdoc-core rustdoc-macros \ 133 rustdoc-compiler_builtins rustdoc-alloc $(obj)/libmacros.so \ 134 $(obj)/bindings.o FORCE |
135 +$(call if_changed,rustdoc) | 135 $(call if_changed,rustdoc) |
136 137quiet_cmd_rustc_test_library = RUSTC TL $< 138 cmd_rustc_test_library = \ 139 OBJTREE=$(abspath $(objtree)) \ 140 $(RUSTC) $(rust_common_flags) \ 141 @$(objtree)/include/generated/rustc_cfg $(rustc_target_flags) \ 142 --crate-type $(if $(rustc_test_library_proc),proc-macro,rlib) \ 143 --out-dir $(objtree)/$(obj)/test --cfg testlib \ 144 --sysroot $(objtree)/$(obj)/test/sysroot \ 145 -L$(objtree)/$(obj)/test \ 146 --crate-name $(subst rusttest-,,$(subst rusttestlib-,,$@)) $< 147 148rusttestlib-build_error: $(src)/build_error.rs rusttest-prepare FORCE | 136 137quiet_cmd_rustc_test_library = RUSTC TL $< 138 cmd_rustc_test_library = \ 139 OBJTREE=$(abspath $(objtree)) \ 140 $(RUSTC) $(rust_common_flags) \ 141 @$(objtree)/include/generated/rustc_cfg $(rustc_target_flags) \ 142 --crate-type $(if $(rustc_test_library_proc),proc-macro,rlib) \ 143 --out-dir $(objtree)/$(obj)/test --cfg testlib \ 144 --sysroot $(objtree)/$(obj)/test/sysroot \ 145 -L$(objtree)/$(obj)/test \ 146 --crate-name $(subst rusttest-,,$(subst rusttestlib-,,$@)) $< 147 148rusttestlib-build_error: $(src)/build_error.rs rusttest-prepare FORCE |
149 +$(call if_changed,rustc_test_library) | 149 $(call if_changed,rustc_test_library) |
150 151rusttestlib-macros: private rustc_target_flags = --extern proc_macro 152rusttestlib-macros: private rustc_test_library_proc = yes 153rusttestlib-macros: $(src)/macros/lib.rs rusttest-prepare FORCE | 150 151rusttestlib-macros: private rustc_target_flags = --extern proc_macro 152rusttestlib-macros: private rustc_test_library_proc = yes 153rusttestlib-macros: $(src)/macros/lib.rs rusttest-prepare FORCE |
154 +$(call if_changed,rustc_test_library) | 154 $(call if_changed,rustc_test_library) |
155 156rusttestlib-bindings: $(src)/bindings/lib.rs rusttest-prepare FORCE | 155 156rusttestlib-bindings: $(src)/bindings/lib.rs rusttest-prepare FORCE |
157 +$(call if_changed,rustc_test_library) | 157 $(call if_changed,rustc_test_library) |
158 159rusttestlib-uapi: $(src)/uapi/lib.rs rusttest-prepare FORCE | 158 159rusttestlib-uapi: $(src)/uapi/lib.rs rusttest-prepare FORCE |
160 +$(call if_changed,rustc_test_library) | 160 $(call if_changed,rustc_test_library) |
161 162quiet_cmd_rustdoc_test = RUSTDOC T $< 163 cmd_rustdoc_test = \ 164 OBJTREE=$(abspath $(objtree)) \ 165 $(RUSTDOC) --test $(rust_common_flags) \ 166 @$(objtree)/include/generated/rustc_cfg \ 167 $(rustc_target_flags) $(rustdoc_test_target_flags) \ 168 --sysroot $(objtree)/$(obj)/test/sysroot $(rustdoc_test_quiet) \ --- 15 unchanged lines hidden (view full) --- 184 --test-builder $(objtree)/scripts/rustdoc_test_builder \ 185 $< $(rustdoc_test_kernel_quiet); \ 186 $(objtree)/scripts/rustdoc_test_gen 187 188%/doctests_kernel_generated.rs %/doctests_kernel_generated_kunit.c: \ 189 $(src)/kernel/lib.rs $(obj)/kernel.o \ 190 $(objtree)/scripts/rustdoc_test_builder \ 191 $(objtree)/scripts/rustdoc_test_gen FORCE | 161 162quiet_cmd_rustdoc_test = RUSTDOC T $< 163 cmd_rustdoc_test = \ 164 OBJTREE=$(abspath $(objtree)) \ 165 $(RUSTDOC) --test $(rust_common_flags) \ 166 @$(objtree)/include/generated/rustc_cfg \ 167 $(rustc_target_flags) $(rustdoc_test_target_flags) \ 168 --sysroot $(objtree)/$(obj)/test/sysroot $(rustdoc_test_quiet) \ --- 15 unchanged lines hidden (view full) --- 184 --test-builder $(objtree)/scripts/rustdoc_test_builder \ 185 $< $(rustdoc_test_kernel_quiet); \ 186 $(objtree)/scripts/rustdoc_test_gen 187 188%/doctests_kernel_generated.rs %/doctests_kernel_generated_kunit.c: \ 189 $(src)/kernel/lib.rs $(obj)/kernel.o \ 190 $(objtree)/scripts/rustdoc_test_builder \ 191 $(objtree)/scripts/rustdoc_test_gen FORCE |
192 +$(call if_changed,rustdoc_test_kernel) | 192 $(call if_changed,rustdoc_test_kernel) |
193 194# We cannot use `-Zpanic-abort-tests` because some tests are dynamic, 195# so for the moment we skip `-Cpanic=abort`. 196quiet_cmd_rustc_test = RUSTC T $< 197 cmd_rustc_test = \ 198 OBJTREE=$(abspath $(objtree)) \ 199 $(RUSTC) --test $(rust_common_flags) \ 200 @$(objtree)/include/generated/rustc_cfg \ --- 48 unchanged lines hidden (view full) --- 249 RUSTC=$(objtree)/$(obj)/test/rustc_sysroot $(CARGO) $(cargo_quiet) \ 250 test -Zbuild-std --target $(rustc_host_target) \ 251 --manifest-path $(objtree)/$(obj)/test/dummy/Cargo.toml; \ 252 rm $(objtree)/$(obj)/test/sysroot/lib/rustlib/$(rustc_host_target)/lib/*; \ 253 cp $(objtree)/$(obj)/test/dummy/target/$(rustc_host_target)/debug/deps/* \ 254 $(objtree)/$(obj)/test/sysroot/lib/rustlib/$(rustc_host_target)/lib 255 256rusttest-prepare: FORCE | 193 194# We cannot use `-Zpanic-abort-tests` because some tests are dynamic, 195# so for the moment we skip `-Cpanic=abort`. 196quiet_cmd_rustc_test = RUSTC T $< 197 cmd_rustc_test = \ 198 OBJTREE=$(abspath $(objtree)) \ 199 $(RUSTC) --test $(rust_common_flags) \ 200 @$(objtree)/include/generated/rustc_cfg \ --- 48 unchanged lines hidden (view full) --- 249 RUSTC=$(objtree)/$(obj)/test/rustc_sysroot $(CARGO) $(cargo_quiet) \ 250 test -Zbuild-std --target $(rustc_host_target) \ 251 --manifest-path $(objtree)/$(obj)/test/dummy/Cargo.toml; \ 252 rm $(objtree)/$(obj)/test/sysroot/lib/rustlib/$(rustc_host_target)/lib/*; \ 253 cp $(objtree)/$(obj)/test/dummy/target/$(rustc_host_target)/debug/deps/* \ 254 $(objtree)/$(obj)/test/sysroot/lib/rustlib/$(rustc_host_target)/lib 255 256rusttest-prepare: FORCE |
257 +$(call if_changed,rustsysroot) | 257 $(call if_changed,rustsysroot) |
258 259rusttest-macros: private rustc_target_flags = --extern proc_macro 260rusttest-macros: private rustdoc_test_target_flags = --crate-type proc-macro 261rusttest-macros: $(src)/macros/lib.rs rusttest-prepare FORCE | 258 259rusttest-macros: private rustc_target_flags = --extern proc_macro 260rusttest-macros: private rustdoc_test_target_flags = --crate-type proc-macro 261rusttest-macros: $(src)/macros/lib.rs rusttest-prepare FORCE |
262 +$(call if_changed,rustc_test) 263 +$(call if_changed,rustdoc_test) | 262 $(call if_changed,rustc_test) 263 $(call if_changed,rustdoc_test) |
264 265rusttest-kernel: private rustc_target_flags = --extern alloc \ 266 --extern build_error --extern macros --extern bindings --extern uapi 267rusttest-kernel: $(src)/kernel/lib.rs rusttest-prepare \ 268 rusttestlib-build_error rusttestlib-macros rusttestlib-bindings \ 269 rusttestlib-uapi FORCE | 264 265rusttest-kernel: private rustc_target_flags = --extern alloc \ 266 --extern build_error --extern macros --extern bindings --extern uapi 267rusttest-kernel: $(src)/kernel/lib.rs rusttest-prepare \ 268 rusttestlib-build_error rusttestlib-macros rusttestlib-bindings \ 269 rusttestlib-uapi FORCE |
270 +$(call if_changed,rustc_test) 271 +$(call if_changed,rustc_test_library) | 270 $(call if_changed,rustc_test) 271 $(call if_changed,rustc_test_library) |
272 273ifdef CONFIG_CC_IS_CLANG 274bindgen_c_flags = $(c_flags) 275else 276# bindgen relies on libclang to parse C. Ideally, bindgen would support a GCC 277# plugin backend and/or the Clang driver would be perfectly compatible with GCC. 278# 279# For the moment, here we are tweaking the flags on the fly. This is a hack, --- 12 unchanged lines hidden (view full) --- 292 -fno-reorder-blocks -fno-allow-store-data-races -fasan-shadow-offset=% \ 293 -fzero-call-used-regs=% -fno-stack-clash-protection \ 294 -fno-inline-functions-called-once -fsanitize=bounds-strict \ 295 -fstrict-flex-arrays=% \ 296 --param=% --param asan-% 297 298# Derived from `scripts/Makefile.clang`. 299BINDGEN_TARGET_x86 := x86_64-linux-gnu | 272 273ifdef CONFIG_CC_IS_CLANG 274bindgen_c_flags = $(c_flags) 275else 276# bindgen relies on libclang to parse C. Ideally, bindgen would support a GCC 277# plugin backend and/or the Clang driver would be perfectly compatible with GCC. 278# 279# For the moment, here we are tweaking the flags on the fly. This is a hack, --- 12 unchanged lines hidden (view full) --- 292 -fno-reorder-blocks -fno-allow-store-data-races -fasan-shadow-offset=% \ 293 -fzero-call-used-regs=% -fno-stack-clash-protection \ 294 -fno-inline-functions-called-once -fsanitize=bounds-strict \ 295 -fstrict-flex-arrays=% \ 296 --param=% --param asan-% 297 298# Derived from `scripts/Makefile.clang`. 299BINDGEN_TARGET_x86 := x86_64-linux-gnu |
300BINDGEN_TARGET_arm64 := aarch64-linux-gnu | |
301BINDGEN_TARGET := $(BINDGEN_TARGET_$(SRCARCH)) 302 303# All warnings are inhibited since GCC builds are very experimental, 304# many GCC warnings are not supported by Clang, they may only appear in 305# some configurations, with new GCC versions, etc. 306bindgen_extra_c_flags = -w --target=$(BINDGEN_TARGET) 307 308# Auto variable zero-initialization requires an additional special option with --- 83 unchanged lines hidden (view full) --- 392 --emit=dep-info=$(depfile) --emit=link=$@ --extern proc_macro \ 393 --crate-type proc-macro \ 394 --crate-name $(patsubst lib%.so,%,$(notdir $@)) $< 395 396# Procedural macros can only be used with the `rustc` that compiled it. 397# Therefore, to get `libmacros.so` automatically recompiled when the compiler 398# version changes, we add `core.o` as a dependency (even if it is not needed). 399$(obj)/libmacros.so: $(src)/macros/lib.rs $(obj)/core.o FORCE | 300BINDGEN_TARGET := $(BINDGEN_TARGET_$(SRCARCH)) 301 302# All warnings are inhibited since GCC builds are very experimental, 303# many GCC warnings are not supported by Clang, they may only appear in 304# some configurations, with new GCC versions, etc. 305bindgen_extra_c_flags = -w --target=$(BINDGEN_TARGET) 306 307# Auto variable zero-initialization requires an additional special option with --- 83 unchanged lines hidden (view full) --- 391 --emit=dep-info=$(depfile) --emit=link=$@ --extern proc_macro \ 392 --crate-type proc-macro \ 393 --crate-name $(patsubst lib%.so,%,$(notdir $@)) $< 394 395# Procedural macros can only be used with the `rustc` that compiled it. 396# Therefore, to get `libmacros.so` automatically recompiled when the compiler 397# version changes, we add `core.o` as a dependency (even if it is not needed). 398$(obj)/libmacros.so: $(src)/macros/lib.rs $(obj)/core.o FORCE |
400 +$(call if_changed_dep,rustc_procmacro) | 399 $(call if_changed_dep,rustc_procmacro) |
401 402quiet_cmd_rustc_library = $(if $(skip_clippy),RUSTC,$(RUSTC_OR_CLIPPY_QUIET)) L $@ 403 cmd_rustc_library = \ 404 OBJTREE=$(abspath $(objtree)) \ 405 $(if $(skip_clippy),$(RUSTC),$(RUSTC_OR_CLIPPY)) \ 406 $(filter-out $(skip_flags),$(rust_flags) $(rustc_target_flags)) \ 407 --emit=dep-info=$(depfile) --emit=obj=$@ \ 408 --emit=metadata=$(dir $@)$(patsubst %.o,lib%.rmeta,$(notdir $@)) \ 409 --crate-type rlib -L$(objtree)/$(obj) \ 410 --crate-name $(patsubst %.o,%,$(notdir $@)) $< \ 411 --sysroot=/dev/null \ 412 $(if $(rustc_objcopy),;$(OBJCOPY) $(rustc_objcopy) $@) 413 414rust-analyzer: 415 $(Q)$(srctree)/scripts/generate_rust_analyzer.py \ 416 --cfgs='core=$(core-cfgs)' --cfgs='alloc=$(alloc-cfgs)' \ | 400 401quiet_cmd_rustc_library = $(if $(skip_clippy),RUSTC,$(RUSTC_OR_CLIPPY_QUIET)) L $@ 402 cmd_rustc_library = \ 403 OBJTREE=$(abspath $(objtree)) \ 404 $(if $(skip_clippy),$(RUSTC),$(RUSTC_OR_CLIPPY)) \ 405 $(filter-out $(skip_flags),$(rust_flags) $(rustc_target_flags)) \ 406 --emit=dep-info=$(depfile) --emit=obj=$@ \ 407 --emit=metadata=$(dir $@)$(patsubst %.o,lib%.rmeta,$(notdir $@)) \ 408 --crate-type rlib -L$(objtree)/$(obj) \ 409 --crate-name $(patsubst %.o,%,$(notdir $@)) $< \ 410 --sysroot=/dev/null \ 411 $(if $(rustc_objcopy),;$(OBJCOPY) $(rustc_objcopy) $@) 412 413rust-analyzer: 414 $(Q)$(srctree)/scripts/generate_rust_analyzer.py \ 415 --cfgs='core=$(core-cfgs)' --cfgs='alloc=$(alloc-cfgs)' \ |
417 $(abs_srctree) $(abs_objtree) \ | 416 $(realpath $(srctree)) $(realpath $(objtree)) \ |
418 $(RUST_LIB_SRC) $(KBUILD_EXTMOD) > \ 419 $(if $(KBUILD_EXTMOD),$(extmod_prefix),$(objtree))/rust-project.json 420 421redirect-intrinsics = \ 422 __addsf3 __eqsf2 __gesf2 __lesf2 __ltsf2 __mulsf3 __nesf2 __unordsf2 \ 423 __adddf3 __ledf2 __ltdf2 __muldf3 __unorddf2 \ 424 __muloti4 __multi3 \ 425 __udivmodti4 __udivti3 __umodti3 --- 4 unchanged lines hidden (view full) --- 430 __ashrti3 \ 431 __ashlti3 __lshrti3 432endif 433 434$(obj)/core.o: private skip_clippy = 1 435$(obj)/core.o: private skip_flags = -Dunreachable_pub 436$(obj)/core.o: private rustc_objcopy = $(foreach sym,$(redirect-intrinsics),--redefine-sym $(sym)=__rust$(sym)) 437$(obj)/core.o: private rustc_target_flags = $(core-cfgs) | 417 $(RUST_LIB_SRC) $(KBUILD_EXTMOD) > \ 418 $(if $(KBUILD_EXTMOD),$(extmod_prefix),$(objtree))/rust-project.json 419 420redirect-intrinsics = \ 421 __addsf3 __eqsf2 __gesf2 __lesf2 __ltsf2 __mulsf3 __nesf2 __unordsf2 \ 422 __adddf3 __ledf2 __ltdf2 __muldf3 __unorddf2 \ 423 __muloti4 __multi3 \ 424 __udivmodti4 __udivti3 __umodti3 --- 4 unchanged lines hidden (view full) --- 429 __ashrti3 \ 430 __ashlti3 __lshrti3 431endif 432 433$(obj)/core.o: private skip_clippy = 1 434$(obj)/core.o: private skip_flags = -Dunreachable_pub 435$(obj)/core.o: private rustc_objcopy = $(foreach sym,$(redirect-intrinsics),--redefine-sym $(sym)=__rust$(sym)) 436$(obj)/core.o: private rustc_target_flags = $(core-cfgs) |
438$(obj)/core.o: $(RUST_LIB_SRC)/core/src/lib.rs FORCE 439 +$(call if_changed_dep,rustc_library) 440ifneq ($(or $(CONFIG_X86_64),$(CONFIG_LOONGARCH)),) 441$(obj)/core.o: scripts/target.json 442endif | 437$(obj)/core.o: $(RUST_LIB_SRC)/core/src/lib.rs scripts/target.json FORCE 438 $(call if_changed_dep,rustc_library) |
443 444$(obj)/compiler_builtins.o: private rustc_objcopy = -w -W '__*' 445$(obj)/compiler_builtins.o: $(src)/compiler_builtins.rs $(obj)/core.o FORCE | 439 440$(obj)/compiler_builtins.o: private rustc_objcopy = -w -W '__*' 441$(obj)/compiler_builtins.o: $(src)/compiler_builtins.rs $(obj)/core.o FORCE |
446 +$(call if_changed_dep,rustc_library) | 442 $(call if_changed_dep,rustc_library) |
447 448$(obj)/alloc.o: private skip_clippy = 1 449$(obj)/alloc.o: private skip_flags = -Dunreachable_pub 450$(obj)/alloc.o: private rustc_target_flags = $(alloc-cfgs) 451$(obj)/alloc.o: $(src)/alloc/lib.rs $(obj)/compiler_builtins.o FORCE | 443 444$(obj)/alloc.o: private skip_clippy = 1 445$(obj)/alloc.o: private skip_flags = -Dunreachable_pub 446$(obj)/alloc.o: private rustc_target_flags = $(alloc-cfgs) 447$(obj)/alloc.o: $(src)/alloc/lib.rs $(obj)/compiler_builtins.o FORCE |
452 +$(call if_changed_dep,rustc_library) | 448 $(call if_changed_dep,rustc_library) |
453 454$(obj)/build_error.o: $(src)/build_error.rs $(obj)/compiler_builtins.o FORCE | 449 450$(obj)/build_error.o: $(src)/build_error.rs $(obj)/compiler_builtins.o FORCE |
455 +$(call if_changed_dep,rustc_library) | 451 $(call if_changed_dep,rustc_library) |
456 457$(obj)/bindings.o: $(src)/bindings/lib.rs \ 458 $(obj)/compiler_builtins.o \ 459 $(obj)/bindings/bindings_generated.rs \ 460 $(obj)/bindings/bindings_helpers_generated.rs FORCE | 452 453$(obj)/bindings.o: $(src)/bindings/lib.rs \ 454 $(obj)/compiler_builtins.o \ 455 $(obj)/bindings/bindings_generated.rs \ 456 $(obj)/bindings/bindings_helpers_generated.rs FORCE |
461 +$(call if_changed_dep,rustc_library) | 457 $(call if_changed_dep,rustc_library) |
462 463$(obj)/uapi.o: $(src)/uapi/lib.rs \ 464 $(obj)/compiler_builtins.o \ 465 $(obj)/uapi/uapi_generated.rs FORCE | 458 459$(obj)/uapi.o: $(src)/uapi/lib.rs \ 460 $(obj)/compiler_builtins.o \ 461 $(obj)/uapi/uapi_generated.rs FORCE |
466 +$(call if_changed_dep,rustc_library) | 462 $(call if_changed_dep,rustc_library) |
467 468$(obj)/kernel.o: private rustc_target_flags = --extern alloc \ 469 --extern build_error --extern macros --extern bindings --extern uapi 470$(obj)/kernel.o: $(src)/kernel/lib.rs $(obj)/alloc.o $(obj)/build_error.o \ 471 $(obj)/libmacros.so $(obj)/bindings.o $(obj)/uapi.o FORCE | 463 464$(obj)/kernel.o: private rustc_target_flags = --extern alloc \ 465 --extern build_error --extern macros --extern bindings --extern uapi 466$(obj)/kernel.o: $(src)/kernel/lib.rs $(obj)/alloc.o $(obj)/build_error.o \ 467 $(obj)/libmacros.so $(obj)/bindings.o $(obj)/uapi.o FORCE |
472 +$(call if_changed_dep,rustc_library) | 468 $(call if_changed_dep,rustc_library) |
473 474endif # CONFIG_RUST | 469 470endif # CONFIG_RUST |