Re: Suggestions for librsvg's COMPILING.md
- From: Federico Mena Quintero <federico gnome org>
- To: David Michael <fedora dm0 gmail com>, desktop-devel-list gnome org
- Subject: Re: Suggestions for librsvg's COMPILING.md
- Date: Thu, 07 Dec 2017 19:24:53 -0600
On Sat, 2017-12-02 at 13:51 -0500, David Michael wrote:
In librsvg's COMPILING.md, there are two inconsistencies around
cross-compiling.
* The option --target=TRIPLE is passed to cargo, not --host.
* RUST_TARGET_PATH should be set for make, not configure.
Ah, thanks for noticing! I've pushed this fix.
An alternative to writing a target JSON file could be to override
CARGO_TARGET_ARGS and RUST_TARGET_SUBDIR (if RUST_LIB used the
variable) when a compatible builtin target is available. For
example:
./configure --host=x86_64-redhat-linux-gnu ...
make CARGO_TARGET_ARGS=--target=x86_64-unknown-linux-gnu ...
You mean, in Makefile.am instead of
RUST_LIB=@abs_top_builddir@/rust/target/@RUST_TARGET_SUBDIR@/librsvg_internals.a
Something like
RUST_TARGET_SUBDIR=@RUST_TARGET_SUBDIR@
RUST_LIB=@abs_top_builddir@/rust/target/$(RUST_TARGET_SUBDIR)/librsvg_internals.a
?
(I haven't even tested this; just trying to see if we are thinking of
the same thing.)
Is that worth maybe adding a --with-rust-target option to configure
that defaults to $host when cross-compiling? (I didn't think of that
for the cross-compiling patch since I was only building for a new
target with no builtin support.)
Hmmmmm, I'm not sure. Would these be the two cases then?
1. Rust supports the same --host=TRIPLE out of the box, in the form of
"cargo --target=TRIPLE".
2. Rust doesn't know the --host=TRIPLE. You'd like an easier way to
pass the json file, or a compatible triple, and that would be the
--with-rust-target option?
I haven't played with cross compilation at all, so if you want to own
this bit and patch the build infrastructure, feel free to do it :)
As a side note, here is one way to generate a JSON spec from a
similar
builtin target. It may not be helpful including this in
documentation
since it uses unstable options, so I'm just throwing it out there.
RUSTC_BOOTSTRAP=1 rustc -Z unstable-options \
--print=target-spec-json \
--target=x86_64-unknown-linux-gnu |
sed -e /is-builtin/d -e s/unknown/redhat/g \
> "${RUST_TARGET_PATH%%:*}/x86_64-redhat-linux-gnu.json"
Interesting. For now I want to keep librsvg compiling on rust stable,
although I have implicitly updated what "stable" means in the past :)
No nightly features, I guess.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]