diff options
Diffstat (limited to 'src/test/run-make/raw-dylib-link-ordinal')
5 files changed, 21 insertions, 2 deletions
diff --git a/src/test/run-make/raw-dylib-link-ordinal/Makefile b/src/test/run-make/raw-dylib-link-ordinal/Makefile index c9baa3c1e..b55a94dbc 100644 --- a/src/test/run-make/raw-dylib-link-ordinal/Makefile +++ b/src/test/run-make/raw-dylib-link-ordinal/Makefile @@ -2,7 +2,7 @@ # only-windows --include ../../run-make-fulldeps/tools.mk +include ../../run-make-fulldeps/tools.mk all: $(RUSTC) --crate-type lib --crate-name raw_dylib_test lib.rs diff --git a/src/test/run-make/raw-dylib-link-ordinal/exporter.c b/src/test/run-make/raw-dylib-link-ordinal/exporter.c index a9dd6da66..aabf32ff1 100644 --- a/src/test/run-make/raw-dylib-link-ordinal/exporter.c +++ b/src/test/run-make/raw-dylib-link-ordinal/exporter.c @@ -3,3 +3,10 @@ void exported_function() { printf("exported_function\n"); } + +int exported_variable = 0; + +void print_exported_variable() { + printf("exported_variable value: %d\n", exported_variable); + fflush(stdout); +} diff --git a/src/test/run-make/raw-dylib-link-ordinal/exporter.def b/src/test/run-make/raw-dylib-link-ordinal/exporter.def index 1a4b4c941..5d87c580a 100644 --- a/src/test/run-make/raw-dylib-link-ordinal/exporter.def +++ b/src/test/run-make/raw-dylib-link-ordinal/exporter.def @@ -1,3 +1,5 @@ LIBRARY exporter EXPORTS exported_function @13 NONAME + exported_variable @5 NONAME + print_exported_variable @9 NONAME diff --git a/src/test/run-make/raw-dylib-link-ordinal/lib.rs b/src/test/run-make/raw-dylib-link-ordinal/lib.rs index 20609caa5..bb25ac64c 100644 --- a/src/test/run-make/raw-dylib-link-ordinal/lib.rs +++ b/src/test/run-make/raw-dylib-link-ordinal/lib.rs @@ -1,13 +1,21 @@ -#![feature(raw_dylib)] +#![cfg_attr(target_arch = "x86", feature(raw_dylib))] #[link(name = "exporter", kind = "raw-dylib")] extern { #[link_ordinal(13)] fn imported_function(); + #[link_ordinal(5)] + static mut imported_variable: i32; + #[link_ordinal(9)] + fn print_imported_variable(); } pub fn library_function() { unsafe { imported_function(); + imported_variable = 42; + print_imported_variable(); + imported_variable = -42; + print_imported_variable(); } } diff --git a/src/test/run-make/raw-dylib-link-ordinal/output.txt b/src/test/run-make/raw-dylib-link-ordinal/output.txt index 2d0ed60f2..a4b2031d9 100644 --- a/src/test/run-make/raw-dylib-link-ordinal/output.txt +++ b/src/test/run-make/raw-dylib-link-ordinal/output.txt @@ -1 +1,3 @@ exported_function +exported_variable value: 42 +exported_variable value: -42 |