diff options
Diffstat (limited to 'build/cargo-linker')
-rwxr-xr-x | build/cargo-linker | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/build/cargo-linker b/build/cargo-linker new file mode 100755 index 0000000000..394dabcf7f --- /dev/null +++ b/build/cargo-linker @@ -0,0 +1,22 @@ +#!/bin/sh + +# If you want to use a custom linker with Cargo, Cargo requires that you +# specify it in Cargo.toml or via the matching environment variable. +# Passing extra options to the linker is possible with Cargo via +# RUSTFLAGS='-C link-args', but testing showed that doing this reliably +# was difficult. +# +# Our solution to these problems is to use this wrapper script. We pass +# in the LD and the LDFLAGS to use via environment variables. Note that +# we do *not* quote either MOZ_CARGO_WRAP variable: +# +# * MOZ_CARGO_WRAP_LD is equivalent to CC on Unix-y platforms, and CC +# frequently has additional arguments in addition to the compiler +# itself. +# * MOZ_CARGO_WRAP_LDFLAGS contains space-separated arguments to pass, +# and not quoting it ensures that each of those arguments is passed +# as a separate argument to the actual LD. +# +# $@ is doubly quoted for the eval. See bug 1418598. + +eval ${MOZ_CARGO_WRAP_LD} ${MOZ_CARGO_WRAP_LDFLAGS} '"$@"' |