diff --git a/Makefile b/Makefile index f65738a24d04d5..a938950cd98c44 100644 --- a/Makefile +++ b/Makefile @@ -513,7 +513,7 @@ KBUILD_RUSTCFLAGS := # TODO: a simple way to update `Cargo.lock` when we add a new driver KBUILD_CARGOFLAGS := $(CARGO_VERBOSE) --locked \ -Z build-std=core,alloc -Z unstable-options \ - --out-dir=out --target=$(PWD)/$(srctree)/arch/$(SRCARCH)/rust/target.json + --target=$(srctree)/arch/$(SRCARCH)/rust/target.json KBUILD_AFLAGS_KERNEL := KBUILD_CFLAGS_KERNEL := KBUILD_RUSTCFLAGS_KERNEL := diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 2618c5f84aa8d0..3113b73e69aecf 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -307,9 +307,9 @@ $(obj)/%.lst: $(src)/%.c FORCE # --------------------------------------------------------------------------- quiet_cmd_cargo = CARGO $(quiet_modtag) $@ - cmd_cargo = export RUST_BINDINGS_FILE=$(shell readlink -f $(srctree)/include/generated/rust_bindings.rs) && cd $(src) && $(CARGO) build $(cargo_flags) + cmd_cargo = export RUST_BINDINGS_FILE=$(shell readlink -f include/generated/rust_bindings.rs) && $(CARGO) build --manifest-path $(srctree)/$(src)/Cargo.toml --out-dir $(src) $(cargo_flags) -$(srctree)/include/generated/rust_bindings.rs: FORCE +include/generated/rust_bindings.rs: FORCE $(Q)$(BINDGEN) $(srctree)/rust/kernel/src/bindings_helper.h \ --opaque-type xregs_state \ --opaque-type desc_struct \ @@ -317,15 +317,15 @@ $(srctree)/include/generated/rust_bindings.rs: FORCE --with-derive-default \ --ctypes-prefix c_types \ --size_t-is-usize \ - -o $(srctree)/include/generated/rust_bindings.rs \ + -o include/generated/rust_bindings.rs \ -- $(c_flags) # The .o from the Rust staticlib -$(obj)/%.o: $(src)/out/lib%.a +$(obj)/%.o: $(src)/lib%.a $(Q)$(LD) -r -o $@ --whole-archive $< # The Rust staticlib from cargo -$(obj)/out/lib%.a: $(srctree)/include/generated/rust_bindings.rs FORCE +$(obj)/lib%.a: include/generated/rust_bindings.rs FORCE $(call cmd,cargo) # Compile assembler sources (.S) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 9d7d16808919fe..ba8ef4e1f6b265 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -196,7 +196,7 @@ endif endif # TODO: quick hack -part-of-module = $(if $(filter $(basename $@).o,$(real-obj-m)),y,$(and $(real-obj-m),$(shell echo $@ | sed -E 's!.+/out/lib.+\.a!y!;t;d'))) +part-of-module = $(if $(filter $(basename $@).o,$(real-obj-m)),y,$(and $(real-obj-m),$(shell echo $@ | sed -E 's!.+/lib.+\.a!y!;t;d'))) quiet_modtag = $(if $(part-of-module),[M], ) modkern_cflags = \ @@ -229,7 +229,7 @@ c_flags = -Wp,-MMD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ RUST_BINDGEN_CFLAGS = $(c_flags) $(KBUILD_CFLAGS_MODULE) export RUST_BINDGEN_CFLAGS -KCONFIG_RUSTC_CFG ?= $(srctree)/include/generated/rustc_cfg +KCONFIG_RUSTC_CFG ?= ./include/generated/rustc_cfg rustc_flags = $(_rustc_flags) $(modkern_rustcflags) @$(shell readlink -f $(KCONFIG_RUSTC_CFG))