From 218caa410aa38c29984be31a5229b9fa717560ee Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:19:13 +0200 Subject: Merging upstream version 1.68.2+dfsg1. Signed-off-by: Daniel Baumann --- tests/run-make-fulldeps/link-path-order/Makefile | 18 ++++++++++++++++++ tests/run-make-fulldeps/link-path-order/correct.c | 1 + tests/run-make-fulldeps/link-path-order/main.rs | 16 ++++++++++++++++ tests/run-make-fulldeps/link-path-order/wrong.c | 1 + 4 files changed, 36 insertions(+) create mode 100644 tests/run-make-fulldeps/link-path-order/Makefile create mode 100644 tests/run-make-fulldeps/link-path-order/correct.c create mode 100644 tests/run-make-fulldeps/link-path-order/main.rs create mode 100644 tests/run-make-fulldeps/link-path-order/wrong.c (limited to 'tests/run-make-fulldeps/link-path-order') 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; } -- cgit v1.2.3