summary refs log tree commit diff
path: root/src/test/run-make/issue-14500/Makefile
blob: 6ea3cf48ffbbd41d2d3179b81a3cb81eecbde1d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-include ../tools.mk

# Test to make sure that reachable extern fns are always available in final
# productcs, including when LTO is used. In this test, the `foo` crate has a
# reahable symbol, and is a dependency of the `bar` crate. When the `bar` crate
# is compiled with LTO, it shouldn't strip the symbol from `foo`, and that's the
# only way that `foo.c` will successfully compile.

ifeq ($(UNAME),Bitrig)
	EXTRACFLAGS := -lc $(EXTRACFLAGS) $(EXTRACXXFLAGS)
endif

all:
	$(RUSTC) foo.rs --crate-type=rlib
	$(RUSTC) bar.rs --crate-type=staticlib -C lto -L. -o $(TMPDIR)/libbar.a
	$(CC) foo.c -lbar -o $(call RUN_BINFILE,foo) $(EXTRACFLAGS)
	$(call RUN,foo)