]> git.lizzy.rs Git - rust.git/blob - src/test/run-make/symbol-visibility/Makefile
d6c31d148b3046f114592f135cb8e93c1d68e95a
[rust.git] / src / test / run-make / symbol-visibility / Makefile
1 include ../tools.mk
2
3 all:
4         $(RUSTC) an_rlib.rs
5         $(RUSTC) a_cdylib.rs
6         $(RUSTC) a_rust_dylib.rs
7         $(RUSTC) an_executable.rs
8
9         # Check that a cdylib exports its public #[no_mangle] functions
10         [ "$$(nm -D $(TMPDIR)/liba_cdylib.so | grep -c public_c_function_from_cdylib)" -eq "1" ]
11         # Check that a cdylib exports the public #[no_mangle] functions of dependencies
12         [ "$$(nm -D $(TMPDIR)/liba_cdylib.so | grep -c public_c_function_from_rlib)" -eq "1" ]
13         # Check that a cdylib DOES NOT export any public Rust functions
14         [ "$$(nm -D $(TMPDIR)/liba_cdylib.so | grep -c _ZN.*h.*E)" -eq "0" ]
15
16         # Check that a Rust dylib exports its monomorphic functions
17         [ "$$(nm -D $(TMPDIR)/liba_rust_dylib.so | grep -c public_c_function_from_rust_dylib)" -eq "1" ]
18         [ "$$(nm -D $(TMPDIR)/liba_rust_dylib.so | grep -c _ZN.*public_rust_function_from_rust_dylib.*E)" -eq "1" ]
19
20         # Check that a Rust dylib exports the monomorphic functions from its dependencies
21         [ "$$(nm -D $(TMPDIR)/liba_rust_dylib.so | grep -c public_c_function_from_rlib)" -eq "1" ]
22         [ "$$(nm -D $(TMPDIR)/liba_rust_dylib.so | grep -c public_rust_function_from_rlib)" -eq "1" ]
23
24         # Check that an executable does not export any dynamic symbols
25         [ "$$(nm -D $(TMPDIR)/an_executable | grep -c public_c_function_from_rlib)" -eq "0" ]
26         [ "$$(nm -D $(TMPDIR)/an_executable | grep -c public_rust_function_from_exe)" -eq "0" ]