diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2020-04-06 00:53:43 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-06 00:53:43 +0200 |
| commit | aafbe07af3eb9b497c5c24db0a5c7253b2125bbf (patch) | |
| tree | 7b3e41c22dd1e72db2296cbee22cc6f4bb5b7436 /src/test | |
| parent | be93b1cdc5fbc94d4ab0c58f4c1542c1e45da877 (diff) | |
| parent | 13bd25e4722a02f7b38797c7d116bfb9d1667e72 (diff) | |
| download | rust-aafbe07af3eb9b497c5c24db0a5c7253b2125bbf.tar.gz rust-aafbe07af3eb9b497c5c24db0a5c7253b2125bbf.zip | |
Rollup merge of #70665 - petrochenkov:linkargs, r=nagisa
Do not lose or reorder user-provided linker arguments Linker arguments are potentially order-dependent, so the order in which `-C link-arg` and `-C link-args` options are passed to `rustc` should be preserved when they are passed further to the linker. Also, multiple `-C link-args` options are now appended to each other rather than overwrite each other. In other words, `-C link-arg=a -C link-args="b c" -C link-args="d e" -C link-arg=f` is now passed as `"a" "b" "c" "d" "e" "f"` and not as `"d" "e" "a" "f"`. Addresses https://github.com/rust-lang/rust/pull/70505#issuecomment-606780163.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/run-make-fulldeps/link-args-order/Makefile | 10 | ||||
| -rw-r--r-- | src/test/run-make-fulldeps/link-args-order/empty.rs | 6 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/test/run-make-fulldeps/link-args-order/Makefile b/src/test/run-make-fulldeps/link-args-order/Makefile new file mode 100644 index 00000000000..98c1e0eac3b --- /dev/null +++ b/src/test/run-make-fulldeps/link-args-order/Makefile @@ -0,0 +1,10 @@ +# ignore-msvc + +-include ../tools.mk + +RUSTC_FLAGS = -C linker-flavor=ld -C link-arg=a -C link-args="b c" -C link-args="d e" -C link-arg=f +RUSTC_FLAGS_PRE = -C linker-flavor=ld -Z pre-link-arg=a -Z pre-link-args="b c" -Z pre-link-args="d e" -Z pre-link-arg=f + +all: + $(RUSTC) $(RUSTC_FLAGS) empty.rs 2>&1 | $(CGREP) '"a" "b" "c" "d" "e" "f" "g"' + $(RUSTC) $(RUSTC_FLAGS_PRE) empty.rs 2>&1 | $(CGREP) '"a" "b" "c" "d" "e" "f"' diff --git a/src/test/run-make-fulldeps/link-args-order/empty.rs b/src/test/run-make-fulldeps/link-args-order/empty.rs new file mode 100644 index 00000000000..2439171004b --- /dev/null +++ b/src/test/run-make-fulldeps/link-args-order/empty.rs @@ -0,0 +1,6 @@ +#![feature(link_args)] + +#[link_args = "g"] +extern "C" {} + +fn main() {} |
