2022-08-23 00:00:00 +00:00
|
|
|
include ../tools.mk
|
2014-06-06 17:48:46 -07:00
|
|
|
|
2023-03-30 08:46:31 -05:00
|
|
|
# ignore-cross-compile
|
|
|
|
|
2014-06-06 17:48:46 -07:00
|
|
|
# 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.
|
|
|
|
|
|
|
|
all:
|
|
|
|
$(RUSTC) foo.rs --crate-type=rlib
|
2014-09-21 00:36:17 -04:00
|
|
|
$(RUSTC) bar.rs --crate-type=staticlib -C lto -L. -o $(TMPDIR)/libbar.a
|
2015-08-26 16:57:56 -07:00
|
|
|
$(CC) foo.c $(TMPDIR)/libbar.a $(EXTRACFLAGS) $(call OUT_EXE,foo)
|
2014-06-06 17:48:46 -07:00
|
|
|
$(call RUN,foo)
|