diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
commit | 64d98f8ee037282c35007b64c2649055c56af1db (patch) | |
tree | 5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /tests/run-make-fulldeps/link-path-order | |
parent | Adding debian version 1.67.1+dfsg1-1. (diff) | |
download | rustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip |
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/run-make-fulldeps/link-path-order')
-rw-r--r-- | tests/run-make-fulldeps/link-path-order/Makefile | 18 | ||||
-rw-r--r-- | tests/run-make-fulldeps/link-path-order/correct.c | 1 | ||||
-rw-r--r-- | tests/run-make-fulldeps/link-path-order/main.rs | 16 | ||||
-rw-r--r-- | tests/run-make-fulldeps/link-path-order/wrong.c | 1 |
4 files changed, 36 insertions, 0 deletions
diff --git a/tests/run-make-fulldeps/link-path-order/Makefile b/tests/run-make-fulldeps/link-path-order/Makefile new file mode 100644 index 000000000..ed7c299e6 --- /dev/null +++ b/tests/run-make-fulldeps/link-path-order/Makefile @@ -0,0 +1,18 @@ +include ../tools.mk + +# Verifies that the -L arguments given to the linker is in the same order +# as the -L arguments on the rustc command line. + +CORRECT_DIR=$(TMPDIR)/correct +WRONG_DIR=$(TMPDIR)/wrong + +F := $(call NATIVE_STATICLIB_FILE,foo) + +all: $(call NATIVE_STATICLIB,correct) $(call NATIVE_STATICLIB,wrong) + mkdir -p $(CORRECT_DIR) $(WRONG_DIR) + mv $(call NATIVE_STATICLIB,correct) $(CORRECT_DIR)/$(F) + mv $(call NATIVE_STATICLIB,wrong) $(WRONG_DIR)/$(F) + $(RUSTC) main.rs -o $(TMPDIR)/should_succeed -L $(CORRECT_DIR) -L $(WRONG_DIR) + $(call RUN,should_succeed) + $(RUSTC) main.rs -o $(TMPDIR)/should_fail -L $(WRONG_DIR) -L $(CORRECT_DIR) + $(call FAIL,should_fail) diff --git a/tests/run-make-fulldeps/link-path-order/correct.c b/tests/run-make-fulldeps/link-path-order/correct.c new file mode 100644 index 000000000..3064af952 --- /dev/null +++ b/tests/run-make-fulldeps/link-path-order/correct.c @@ -0,0 +1 @@ +int should_return_one() { return 1; } diff --git a/tests/run-make-fulldeps/link-path-order/main.rs b/tests/run-make-fulldeps/link-path-order/main.rs new file mode 100644 index 000000000..8024e343d --- /dev/null +++ b/tests/run-make-fulldeps/link-path-order/main.rs @@ -0,0 +1,16 @@ +#![feature(rustc_private)] + +extern crate libc; + +#[link(name = "foo", kind = "static")] +extern "C" { + fn should_return_one() -> libc::c_int; +} + +fn main() { + let result = unsafe { should_return_one() }; + + if result != 1 { + std::process::exit(255); + } +} diff --git a/tests/run-make-fulldeps/link-path-order/wrong.c b/tests/run-make-fulldeps/link-path-order/wrong.c new file mode 100644 index 000000000..64275b3ad --- /dev/null +++ b/tests/run-make-fulldeps/link-path-order/wrong.c @@ -0,0 +1 @@ +int should_return_one() { return 0; } |