Makefile | 1 + 1 file changed, 1 insertion(+)
Remap source path prefixes in all output, including compiler
diagnostics, debug information, macro expansions, etc.
This removes a few absolute paths from the binary and also makes it
possible to use core::panic::Location properly.
Equivalent to the same configuration done for C sources in
commit 1d3730f0012f ("kbuild: support -fmacro-prefix-map for external modules")
and commit a73619a845d5 ("kbuild: use -fmacro-prefix-map to make __FILE__ a relative path").
Link: https://doc.rust-lang.org/rustc/command-line-arguments.html#--remap-path-prefix-remap-source-names-in-output
Acked-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
Changes in v2:
- Drop the usage of $(call rustc-option)
- Link to v1: https://lore.kernel.org/r/20250210-rust-path-remap-v1-1-021c48188df1@weissschuh.net
---
Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile b/Makefile
index 9e0d63d9d94b90672f91929e5e148e5a0c346cb6..9ed2222fafd4fa37a367b87a5c681936368318e7 100644
--- a/Makefile
+++ b/Makefile
@@ -1068,6 +1068,7 @@ endif
# change __FILE__ to the relative path to the source directory
ifdef building_out_of_srctree
KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srcroot)/=)
+KBUILD_RUSTFLAGS += --remap-path-prefix=$(srcroot)/=
endif
# include additional Makefiles when needed
---
base-commit: beeb78d46249cab8b2b8359a2ce8fa5376b5ad2d
change-id: 20250210-rust-path-remap-e97cec71e61a
Best regards,
--
Thomas Weißschuh <linux@weissschuh.net>
On Thu, Feb 20, 2025 at 6:22 AM Thomas Weißschuh <linux@weissschuh.net> wrote:
>
> Remap source path prefixes in all output, including compiler
> diagnostics, debug information, macro expansions, etc.
> This removes a few absolute paths from the binary and also makes it
> possible to use core::panic::Location properly.
>
> Equivalent to the same configuration done for C sources in
> commit 1d3730f0012f ("kbuild: support -fmacro-prefix-map for external modules")
> and commit a73619a845d5 ("kbuild: use -fmacro-prefix-map to make __FILE__ a relative path").
>
> Link: https://doc.rust-lang.org/rustc/command-line-arguments.html#--remap-path-prefix-remap-source-names-in-output
> Acked-by: Miguel Ojeda <ojeda@kernel.org>
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> ---
> Changes in v2:
> - Drop the usage of $(call rustc-option)
> - Link to v1: https://lore.kernel.org/r/20250210-rust-path-remap-v1-1-021c48188df1@weissschuh.net
> ---
Applied to linux-kbuild.
Thanks.
> Makefile | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Makefile b/Makefile
> index 9e0d63d9d94b90672f91929e5e148e5a0c346cb6..9ed2222fafd4fa37a367b87a5c681936368318e7 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1068,6 +1068,7 @@ endif
> # change __FILE__ to the relative path to the source directory
> ifdef building_out_of_srctree
> KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srcroot)/=)
> +KBUILD_RUSTFLAGS += --remap-path-prefix=$(srcroot)/=
> endif
>
> # include additional Makefiles when needed
>
> ---
> base-commit: beeb78d46249cab8b2b8359a2ce8fa5376b5ad2d
> change-id: 20250210-rust-path-remap-e97cec71e61a
>
> Best regards,
> --
> Thomas Weißschuh <linux@weissschuh.net>
>
--
Best Regards
Masahiro Yamada
On Wed, 19 Feb 2025 22:22:13 +0100
Thomas Weißschuh <linux@weissschuh.net> wrote:
> Remap source path prefixes in all output, including compiler
> diagnostics, debug information, macro expansions, etc.
> This removes a few absolute paths from the binary and also makes it
> possible to use core::panic::Location properly.
>
> Equivalent to the same configuration done for C sources in
> commit 1d3730f0012f ("kbuild: support -fmacro-prefix-map for external modules")
> and commit a73619a845d5 ("kbuild: use -fmacro-prefix-map to make __FILE__ a relative path").
>
> Link: https://doc.rust-lang.org/rustc/command-line-arguments.html#--remap-path-prefix-remap-source-names-in-output
> Acked-by: Miguel Ojeda <ojeda@kernel.org>
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> ---
> Changes in v2:
> - Drop the usage of $(call rustc-option)
> - Link to v1: https://lore.kernel.org/r/20250210-rust-path-remap-v1-1-021c48188df1@weissschuh.net
> ---
> Makefile | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Makefile b/Makefile
> index 9e0d63d9d94b90672f91929e5e148e5a0c346cb6..9ed2222fafd4fa37a367b87a5c681936368318e7 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1068,6 +1068,7 @@ endif
> # change __FILE__ to the relative path to the source directory
> ifdef building_out_of_srctree
> KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srcroot)/=)
> +KBUILD_RUSTFLAGS += --remap-path-prefix=$(srcroot)/=
> endif
>
> # include additional Makefiles when needed
>
> ---
> base-commit: beeb78d46249cab8b2b8359a2ce8fa5376b5ad2d
> change-id: 20250210-rust-path-remap-e97cec71e61a
>
> Best regards,
Hi Thomas,
Thanks for sending this. I can confirm that this is working as
intended, and it also fixes my language server error reporting when
building out of srctree. So,
Tested-by: Gary Guo <gary@garyguo.net>
Best,
Gary
© 2016 - 2025 Red Hat, Inc.