rust/tests/run-make-fulldeps/redundant-libs/Makefile

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

24 lines
825 B
Makefile
Raw Normal View History

include ../tools.mk
2019-03-12 15:01:13 -05:00
# ignore-windows-msvc
2019-03-19 13:53:19 -05:00
2019-03-12 15:01:13 -05:00
# rustc will remove one of the two redundant references to foo below. Depending
# on which one gets removed, we'll get a linker error on SOME platforms (like
# Linux). On these platforms, when a library is referenced, the linker will
# only pull in the symbols needed _at that point in time_. If a later library
# depends on additional symbols from the library, they will not have been pulled
# in, and you'll get undefined symbols errors.
#
# So in this example, we need to ensure that rustc keeps the _later_ reference
# to foo, and not the former one.
2019-03-07 14:12:48 -06:00
RUSTC_FLAGS = \
-l static=bar \
-l foo \
-l static=baz \
-l foo \
--print link-args
2019-03-07 14:12:48 -06:00
all: $(call DYLIB,foo) $(call STATICLIB,bar) $(call STATICLIB,baz)
$(RUSTC) $(RUSTC_FLAGS) main.rs
$(call RUN,main)