| include ../tools.mk |
| |
| # ignore-cross-compile |
| # only-linux |
| # only-x86_64 |
| |
| NM=nm -D |
| RLIB_NAME=liba_rlib.rlib |
| DYLIB_NAME=liba_dylib.so |
| SO_NAME=libb_dylib.so |
| BIN_NAME=b_bin |
| |
| ifeq ($(UNAME),Darwin) |
| NM=nm -gU |
| RLIB_NAME=liba_rlib.rlib |
| DYLIB_NAME=liba_dylib.dylib |
| SO_NAME=libb_dylib.dylib |
| BIN_NAME=b_bin |
| endif |
| |
| ifdef IS_WINDOWS |
| NM=nm -g |
| RLIB_NAME=liba_rlib.dll.a |
| DYLIB_NAME=liba_dylib.dll |
| SO_NAME=libb_dylib.dll |
| BIN_NAME=b_bin.exe |
| endif |
| |
| all: |
| $(RUSTC) -C prefer-dynamic -Z unstable-options -C symbol-mangling-version=hashed -C metadata=foo a_dylib.rs |
| $(RUSTC) -C prefer-dynamic -Z unstable-options -C symbol-mangling-version=hashed -C metadata=bar a_rlib.rs |
| $(RUSTC) -C prefer-dynamic -L $(TMPDIR) b_dylib.rs |
| $(RUSTC) -C prefer-dynamic -L $(TMPDIR) b_bin.rs |
| |
| # Check hashed symbol name |
| |
| [ "$$($(NM) $(TMPDIR)/$(DYLIB_NAME) | grep -c hello)" -eq "0" ] |
| [ "$$($(NM) $(TMPDIR)/$(DYLIB_NAME) | grep _RNxC7a_dylib | grep -c ' T ')" -eq "2" ] |
| |
| [ "$$($(NM) $(TMPDIR)/$(SO_NAME) | grep b_dylib | grep -c hello)" -eq "1" ] |
| [ "$$($(NM) $(TMPDIR)/$(SO_NAME) | grep _RNxC6a_rlib | grep -c ' T ')" -eq "2" ] |
| [ "$$($(NM) $(TMPDIR)/$(SO_NAME) | grep _RNxC7a_dylib | grep -c ' U ')" -eq "1" ] |
| |
| [ "$$($(NM) $(TMPDIR)/$(BIN_NAME) | grep _RNxC6a_rlib | grep -c ' U ')" -eq "1" ] |
| [ "$$($(NM) $(TMPDIR)/$(BIN_NAME) | grep _RNxC7a_dylib | grep -c ' U ')" -eq "1" ] |
| [ "$$($(NM) $(TMPDIR)/$(BIN_NAME) | grep b_dylib | grep hello | grep -c ' U ')" -eq "1" ] |
| |
| $(call RUN,$(BIN_NAME)) |