Set install name with absolute path for Mac host shared libraries.
Before this change, path of the install name is relative to the top dir.
That means you can execute dynamically-linked binaries only in the top dir.
With this change, you can execute dynamically-linked binaries anywhere.
Change-Id: I1c6441579ffb68505ea678296aceb2e66a6df1be
diff --git a/core/combo/HOST_darwin-x86.mk b/core/combo/HOST_darwin-x86.mk
index f5fd001..ca396eb 100644
--- a/core/combo/HOST_darwin-x86.mk
+++ b/core/combo/HOST_darwin-x86.mk
@@ -82,6 +82,12 @@
$(call _darwin-extract-and-include-single-whole-static-lib, $(lib)))
endef
+ifeq (,$(filter /%,$(HOST_OUT_SHARED_LIBRARIES)))
+ABP_HOST_OUT_SHARED_LIBRARIES := $(shell pwd)/$(HOST_OUT_SHARED_LIBRARIES)
+else
+ABP_HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT_SHARED_LIBRARIES)
+endif
+
define transform-host-o-to-shared-lib-inner
$(call darwin-extract-and-include-whole-static-libs)
$(hide) $(PRIVATE_CXX) \
@@ -96,6 +102,7 @@
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
$(PRIVATE_LDLIBS) \
-o $@ \
+ -install_name $(ABP_HOST_OUT_SHARED_LIBRARIES)/$(notdir $@) \
$(PRIVATE_LDFLAGS) \
$(HOST_LIBGCC)
endef