Skip to content

Commit 9fb5a03

Browse files
committed
---
yaml --- r: 5711 b: refs/heads/master c: d8a85f0 h: refs/heads/master i: 5709: 5effc0b 5707: 4c0d0ae 5703: 3978e89 5695: e3a4f43 v: v3
1 parent a217a04 commit 9fb5a03

File tree

5 files changed

+17
-6
lines changed

5 files changed

+17
-6
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 9c037d21940ca69acf88ad465cd4b1cdcc8e7409
2+
refs/heads/master: d8a85f0758981c8e761c6767992065c4cad2f0aa

trunk/mk/platform.mk

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ ifneq ($(findstring freebsd,$(CFG_OSTYPE)),)
2222
CFG_UNIXY := 1
2323
CFG_LDENV := LD_LIBRARY_PATH
2424
CFG_DEF_SUFFIX := .bsd.def
25+
CFG_INSTALL_NAME =
2526
endif
2627

2728
ifneq ($(findstring linux,$(CFG_OSTYPE)),)
@@ -48,6 +49,7 @@ ifneq ($(findstring linux,$(CFG_OSTYPE)),)
4849
CFG_PERF_TOOL := /usr/bin/time --verbose
4950
endif
5051
endif
52+
CFG_INSTALL_NAME =
5153
endif
5254

5355
ifneq ($(findstring darwin,$(CFG_OSTYPE)),)
@@ -71,6 +73,8 @@ ifneq ($(findstring darwin,$(CFG_OSTYPE)),)
7173
CFG_GCCISH_LINK_FLAGS += -m32
7274
CFG_DSYMUTIL := dsymutil
7375
CFG_DEF_SUFFIX := .darwin.def
76+
# Mac requires this flag to make rpath work
77+
CFG_INSTALL_NAME = -Wl,-install_name,@rpath/$(1)
7478
endif
7579

7680
ifneq ($(findstring mingw,$(CFG_OSTYPE)),)
@@ -154,7 +158,7 @@ ifdef CFG_WINDOWSY
154158
CFG_GCCISH_CFLAGS += -march=i686
155159
CFG_GCCISH_LINK_FLAGS += -shared -fPIC
156160
endif
157-
161+
CFG_INSTALL_NAME =
158162
endif
159163

160164

@@ -169,7 +173,7 @@ ifeq ($(CFG_C_COMPILER),clang)
169173
CFG_DEPEND_C = $(CFG_GCCISH_CROSS)$(CXX) $(CFG_GCCISH_CFLAGS) -MT "$(1)" \
170174
-MM $(2)
171175
CFG_LINK_C = $(CFG_GCCISH_CROSS)$(CXX) $(CFG_GCCISH_LINK_FLAGS) -o $(1) \
172-
$(CFG_GCCISH_DEF_FLAG)$(3) $(2)
176+
$(CFG_GCCISH_DEF_FLAG)$(3) $(2) $(call CFG_INSTALL_NAME,$(4))
173177
else
174178
ifeq ($(CFG_C_COMPILER),gcc)
175179
CC=gcc
@@ -181,7 +185,7 @@ ifeq ($(CFG_C_COMPILER),gcc)
181185
CFG_DEPEND_C = $(CFG_GCCISH_CROSS)$(CXX) $(CFG_GCCISH_CFLAGS) -MT "$(1)" \
182186
-MM $(2)
183187
CFG_LINK_C = $(CFG_GCCISH_CROSS)$(CXX) $(CFG_GCCISH_LINK_FLAGS) -o $(1) \
184-
$(CFG_GCCISH_DEF_FLAG)$(3) $(2)
188+
$(CFG_GCCISH_DEF_FLAG)$(3) $(2) $(call CFG_INSTALL_NAME,$(4))
185189
else
186190
CFG_ERR := $(error please try on a system with gcc or clang)
187191
endif

trunk/mk/rt.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ rt/$(CFG_RUNTIME): $(RUNTIME_OBJS) $(MKFILES) $(RUNTIME_HDR) $(RUNTIME_DEF) $(RU
112112
@$(call E, link: $@)
113113
$(Q)$(call CFG_LINK_C,$@, $(RUNTIME_OBJS) \
114114
$(CFG_GCCISH_POST_LIB_FLAGS) $(RUNTIME_LIBS) \
115-
$(CFG_LIBUV_LINK_FLAGS),$(RUNTIME_DEF))
115+
$(CFG_LIBUV_LINK_FLAGS),$(RUNTIME_DEF),$(CFG_RUNTIME))
116116

117117
# FIXME: For some reason libuv's makefiles can't figure out the correct definition
118118
# of CC on the mingw I'm using, so we are explicitly using gcc. Also, we

trunk/mk/rustllvm.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ rustllvm/$(CFG_RUSTLLVM): $(RUSTLLVM_OBJS_OBJS) \
1717
$(Q)$(call CFG_LINK_C,$@,$(RUSTLLVM_OBJS_OBJS) \
1818
$(CFG_GCCISH_PRE_LIB_FLAGS) $(CFG_LLVM_LIBS) \
1919
$(CFG_GCCISH_POST_LIB_FLAGS) \
20-
$(CFG_LLVM_LDFLAGS),$(RUSTLLVM_DEF))
20+
$(CFG_LLVM_LDFLAGS),$(RUSTLLVM_DEF),$(CFG_RUSTLLVM))
2121

2222
rustllvm/%.o: rustllvm/%.cpp $(MKFILES)
2323
@$(call E, compile: $@)

trunk/src/comp/back/link.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -567,6 +567,13 @@ fn link_binary(sess: session::session,
567567

568568
if sess.get_opts().library {
569569
gcc_args += [lib_cmd];
570+
571+
// On mac we need to tell the linker to let this library
572+
// be rpathed
573+
if sess.get_targ_cfg().os == session::os_macos {
574+
gcc_args += ["-Wl,-install_name,@rpath/"
575+
+ fs::basename(saved_out_filename)];
576+
}
570577
} else {
571578
// FIXME: why do we hardcode -lm?
572579
gcc_args += ["-lm", main];

0 commit comments

Comments
 (0)