https://gcc.gnu.org/g:8dde956e18426b2204e660d3e7ff68bb8589a635

commit 8dde956e18426b2204e660d3e7ff68bb8589a635
Author: Thomas Schwinge <tschwi...@baylibre.com>
Date:   Wed Feb 28 23:26:39 2024 +0100

    Rust: Move 'libformat_parser' build into the GCC build directory
    
    Fixes #2883.
    
            * .gitignore: Remove 'libgrust/*/target/'.
            gcc/rust/
            * Make-lang.in (LIBFORMAT_PARSER): Point to the GCC build
            directory.
            * ($(LIBFORMAT_PARSER)): Build in the GCC build directory.

Diff:
---
 .gitignore            |  1 -
 gcc/rust/Make-lang.in | 11 +++++++++--
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/.gitignore b/.gitignore
index 1b2ecabbfe7e..d0e0fd1837f9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -77,4 +77,3 @@ test.code-workspace
 
 gcc/rust/test3-tiny/*
 .clang-format.swap
-libgrust/*/target/
diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in
index fbd43c96b1a0..0c664b523d11 100644
--- a/gcc/rust/Make-lang.in
+++ b/gcc/rust/Make-lang.in
@@ -226,7 +226,8 @@ RUST_ALL_OBJS = $(GRS_OBJS) $(RUST_TARGET_OBJS)
 rust_OBJS = $(RUST_ALL_OBJS) rust/rustspec.o
 
 LIBPROC_MACRO_INTERNAL = 
../libgrust/libproc_macro_internal/libproc_macro_internal.a
-LIBFORMAT_PARSER = 
$(srcdir)/../libgrust/libformat_parser/target/debug/liblibformat_parser.a
+LIBFORMAT_PARSER_D = rust/libformat_parser
+LIBFORMAT_PARSER = $(LIBFORMAT_PARSER_D)/debug/liblibformat_parser.a
 
 # The compiler itself is called crab1
 crab1$(exeext): $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(LIBDEPS) 
$(LIBPROC_MACRO_INTERNAL) $(LIBFORMAT_PARSER) $(rust.prev)
@@ -423,7 +424,13 @@ rust/%.o: rust/lex/%.cc
 
 # TODO: Improve `cargo` invocation with host specific flags, possibly creating 
a $(CARGO) variable?
 $(LIBFORMAT_PARSER): $(srcdir)/../libgrust/libformat_parser/Cargo.toml 
$(wildcard $(srcdir)/../libgrust/libformat_parser/src/*.rs)
-       cd $(srcdir)/../libgrust/libformat_parser && cargo build --offline  # 
FIXME: Not always release, right?
+       cargo \
+         --config $(srcdir)/../libgrust/libformat_parser/.cargo/config \
+         build \
+           --offline \
+           --target-dir $(LIBFORMAT_PARSER_D) \
+           --manifest-path $(srcdir)/../libgrust/libformat_parser/Cargo.toml \
+           # FIXME: Not always '--release', right?
 
 # build all rust/parse files in rust folder, add cross-folder includes
 rust/%.o: rust/parse/%.cc

Reply via email to