@@ -212,7 +212,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
RUST_LIBDEPS = $(LIBDEPS) $(LIBPROC_MACRO_INTERNAL) $(LIBFORMAT_PARSER)
@@ -416,7 +417,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
From: Thomas Schwinge <tschwinge@baylibre.com> Fixes #2883. gcc/rust/ChangeLog: * Make-lang.in (LIBFORMAT_PARSER): Point to the GCC build directory. * ($(LIBFORMAT_PARSER)): Build in the GCC build directory. --- gcc/rust/Make-lang.in | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)