# ignore-cross-compile include ../tools.mk # Test mixing pathless --extern with paths. # Test for static linking by checking that the binary runs if the dylib # is removed and test for dynamic linking by checking that the binary # fails to run if the dylib is removed. all: $(RUSTC) bar.rs --crate-type=rlib --crate-type=dylib -Cprefer-dynamic # rlib preferred over dylib $(RUSTC) foo.rs --extern bar mv $(call DYLIB,bar) $(TMPDIR)/bar.tmp $(call RUN,foo) mv $(TMPDIR)/bar.tmp $(call DYLIB,bar) $(RUSTC) foo.rs --extern bar=$(TMPDIR)/libbar.rlib --extern bar mv $(call DYLIB,bar) $(TMPDIR)/bar.tmp $(call RUN,foo) mv $(TMPDIR)/bar.tmp $(call DYLIB,bar) # explicit --extern overrides pathless $(RUSTC) foo.rs --extern bar=$(call DYLIB,bar) --extern bar mv $(call DYLIB,bar) $(TMPDIR)/bar.tmp $(call FAIL,foo) mv $(TMPDIR)/bar.tmp $(call DYLIB,bar) # prefer-dynamic does what it says $(RUSTC) foo.rs --extern bar -C prefer-dynamic mv $(call DYLIB,bar) $(TMPDIR)/bar.tmp $(call FAIL,foo) mv $(TMPDIR)/bar.tmp $(call DYLIB,bar)