From 1e0f2ae79fc55532bd69d2661365cad88d7c8830 Mon Sep 17 00:00:00 2001 From: Janet Anderson Date: Fri, 9 Jul 2010 15:53:58 -0500 Subject: [PATCH] Added LINKER_USE_RPATH option. --- configure/CONFIG_SITE | 4 ++++ configure/os/CONFIG.Common.freebsdCommon | 6 ++++-- configure/os/CONFIG.Common.linux-arm | 6 ++++-- configure/os/CONFIG.Common.linuxCommon | 6 ++++-- configure/os/CONFIG.Common.osf-alpha | 6 ++++-- configure/os/CONFIG.Common.osf-alpha-gnu | 6 ++++-- configure/os/CONFIG.Common.solaris-sparc | 6 ++++-- configure/os/CONFIG.Common.solaris-x86 | 6 ++++-- 8 files changed, 32 insertions(+), 14 deletions(-) diff --git a/configure/CONFIG_SITE b/configure/CONFIG_SITE index 10461f5ab..95cbbc4ad 100644 --- a/configure/CONFIG_SITE +++ b/configure/CONFIG_SITE @@ -171,3 +171,7 @@ EPICS_SITE_VERSION = # between the various stages of compilation. GCC_PIPE = NO +# Include RPATH when linking executables and libraries. +# must be either YES or NO +LINKER_USE_RPATH=YES + diff --git a/configure/os/CONFIG.Common.freebsdCommon b/configure/os/CONFIG.Common.freebsdCommon index 801044c67..7f25fadfd 100644 --- a/configure/os/CONFIG.Common.freebsdCommon +++ b/configure/os/CONFIG.Common.freebsdCommon @@ -21,10 +21,12 @@ OP_SYS_CPPFLAGS += -D_BSD_SOURCE OP_SYS_CPPFLAGS += -Dfreebsd # Set runtime path for shared libraries -SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%) +SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%) +SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) # Set runtime path for products -PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%) +PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%) +PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) # Definitions used when COMMANDLINE_LIBRARY is READLINE LDLIBS_READLINE = -lreadline -lcurses diff --git a/configure/os/CONFIG.Common.linux-arm b/configure/os/CONFIG.Common.linux-arm index 31dae0b5e..15e44d5e9 100644 --- a/configure/os/CONFIG.Common.linux-arm +++ b/configure/os/CONFIG.Common.linux-arm @@ -23,8 +23,10 @@ ifeq ($(BUILD_CLASS),CROSS) CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET)) # Provide a link-time path for shared libraries - SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath-link,%) + SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath-link,%) + SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) # Provide a link-time path for products - PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath-link,%) + PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath-link,%) + PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) endif diff --git a/configure/os/CONFIG.Common.linuxCommon b/configure/os/CONFIG.Common.linuxCommon index 6d28b8be2..aa06020f7 100644 --- a/configure/os/CONFIG.Common.linuxCommon +++ b/configure/os/CONFIG.Common.linuxCommon @@ -28,10 +28,12 @@ STATIC_LDFLAGS_NO= STATIC_LDLIBS_YES= -Wl,-Bdynamic # Set runtime path for shared libraries -SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%) +SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%) +SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) # Set runtime path for products -PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%) +PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%) +PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) # Link libraries controlled by COMMANDLINE_LIBRARY # The newest Linux versions only need readline, older ones need both diff --git a/configure/os/CONFIG.Common.osf-alpha b/configure/os/CONFIG.Common.osf-alpha index fd7ccb48c..1d9a9860c 100644 --- a/configure/os/CONFIG.Common.osf-alpha +++ b/configure/os/CONFIG.Common.osf-alpha @@ -28,10 +28,12 @@ space:=$(empty) $(empty) colon := : # Set runtime path for shared libraries -SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-rpath %) +SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-rpath %) +SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) # Set runtime path for products -PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-rpath %) +PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-rpath %) +PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) ifdef CROSS GNU_TARGET=alpha-osf diff --git a/configure/os/CONFIG.Common.osf-alpha-gnu b/configure/os/CONFIG.Common.osf-alpha-gnu index 758ff8ea6..7b91620bc 100644 --- a/configure/os/CONFIG.Common.osf-alpha-gnu +++ b/configure/os/CONFIG.Common.osf-alpha-gnu @@ -25,10 +25,12 @@ space:=$(empty) $(empty) colon := : # Set runtime path for shared libraries -SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%) +SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%) +SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) # Set runtime path for products -PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%) +PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%) +PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) ifdef CROSS GNU_TARGET=alpha-osf diff --git a/configure/os/CONFIG.Common.solaris-sparc b/configure/os/CONFIG.Common.solaris-sparc index 8c75c68d6..3f5723444 100644 --- a/configure/os/CONFIG.Common.solaris-sparc +++ b/configure/os/CONFIG.Common.solaris-sparc @@ -28,10 +28,12 @@ OP_SYS_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION) $(COMPILER_CPPFLAGS) OP_SYS_LDFLAGS += $(COMPILER_LDFLAGS) # Set runtime path for shared libraries -SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-R%) +SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-R%) +SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) # Set runtime path for products -PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-R%) +PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-R%) +PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY)) diff --git a/configure/os/CONFIG.Common.solaris-x86 b/configure/os/CONFIG.Common.solaris-x86 index a600ba656..c39af7070 100644 --- a/configure/os/CONFIG.Common.solaris-x86 +++ b/configure/os/CONFIG.Common.solaris-x86 @@ -29,10 +29,12 @@ OP_SYS_LDFLAGS += $(COMPILER_LDFLAGS) ARCH_DEP_CPPFLAGS = -D_X86_ # Set runtime path for shared libraries -SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-R%) +SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-R%) +SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) # Set runtime path for products -PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-R%) +PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-R%) +PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)) RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))