From: Rafael Espindola Date: Fri, 28 Feb 2014 13:48:03 +0000 (+0000) Subject: Centralize the handling of install_name and rpath. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=37c04a0d4d0df0e2efddcc76a1036a9fc384e61a;p=oota-llvm.git Centralize the handling of install_name and rpath. This centralizes the Makefile handling of -install_name and -rpath. It also moves the cmake build to using @rpath. The reason being that libclang needs it, and it works for everything else. A followup patch will move clang to using this and then there will be a single point to edit to support other systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202499 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 72901c88768..ab93503f282 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -443,7 +443,7 @@ set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib ) set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) if (APPLE) - set(CMAKE_INSTALL_NAME_DIR "@executable_path/../lib") + set(CMAKE_INSTALL_NAME_DIR "@rpath") set(CMAKE_INSTALL_RPATH "@executable_path/../lib") else(UNIX) if(NOT DEFINED CMAKE_INSTALL_RPATH) diff --git a/Makefile.rules b/Makefile.rules index d668b23afbb..3f1c2afe73d 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -589,6 +589,8 @@ ifdef SHARED_LIBRARY ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW)) ifneq ($(HOST_OS),Darwin) LD.Flags += $(RPATH) -Wl,'$$ORIGIN' +else + LD.Flags += -Wl,-install_name -Wl,"@rpath/lib$(LIBRARYNAME)$(SHLIBEXT)" endif endif endif diff --git a/tools/llvm-shlib/Makefile b/tools/llvm-shlib/Makefile index 317da517202..92ddfdb7631 100644 --- a/tools/llvm-shlib/Makefile +++ b/tools/llvm-shlib/Makefile @@ -49,14 +49,6 @@ ifeq ($(HOST_OS),Darwin) endif # Include everything from the .a's into the shared library. LLVMLibsOptions := $(LLVMLibsOptions) -all_load - - # Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line - DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/') - ifneq ($(DARWIN_VERS),8) - LLVMLibsOptions := $(LLVMLibsOptions) \ - -Wl,-install_name \ - -Wl,"@rpath/lib$(LIBRARYNAME)$(SHLIBEXT)" - endif endif ifeq ($(HOST_OS), $(filter $(HOST_OS), DragonFly Linux FreeBSD GNU/kFreeBSD OpenBSD GNU Bitrig)) diff --git a/tools/lto/Makefile b/tools/lto/Makefile index 1cfff028f6f..a4fe9ac77c1 100644 --- a/tools/lto/Makefile +++ b/tools/lto/Makefile @@ -37,14 +37,6 @@ ifeq ($(HOST_OS),Darwin) -Wl,-compatibility_version -Wl,1 endif - # Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line - DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/') - ifneq ($(DARWIN_VERS),8) - LLVMLibsOptions := $(LLVMLibsOptions) \ - -Wl,-install_name \ - -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)" - endif - # If we're doing an Apple-style build, add the LTO object path. ifeq ($(RC_XBS),YES) TempFile := $(shell mkdir -p ${OBJROOT}/dSYMs ; mktemp ${OBJROOT}/dSYMs/llvm-lto.XXXXXX)