changeset 7573:575b3a2fa6c9 icedtea-2.5pre06

RH1059925: RFE: Version Java libraries to allow using multiple Java versions with Linux capabilities enabled Summary: Add installation location to RPATH so libraries can be found even with privileged binaries Contributed-by: Omair Majid <omajid@redhat.com> (original unconditional version)
author andrew
date Tue, 03 Jun 2014 18:52:56 +0100
parents 66dd22301a54
children 5c6f796c97cf
files make/common/Defs-linux.gmk make/common/Program.gmk make/java/instrument/Makefile
diffstat 3 files changed, 22 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/make/common/Defs-linux.gmk	Wed May 21 15:52:15 2014 +0100
+++ b/make/common/Defs-linux.gmk	Tue Jun 03 18:52:56 2014 +0100
@@ -346,8 +346,13 @@
 
   LDFLAG_Z_ORIGIN = $(Z_ORIGIN_FLAG/$(ARCH_FAMILY))
 
+ifneq ($(INSTALL_LOCATION),)
+  LDFLAGS_COMMON += $(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN:$(INSTALL_LOCATION)/jre/lib/$(LIBARCH)
+  LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=$(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN/:$(INSTALL_LOCATION)/jre/lib/$(LIBARCH)%)
+else
   LDFLAGS_COMMON += $(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN
   LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=$(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN/%)
+endif
 
 endif
 
--- a/make/common/Program.gmk	Wed May 21 15:52:15 2014 +0100
+++ b/make/common/Program.gmk	Tue Jun 03 18:52:56 2014 +0100
@@ -110,7 +110,11 @@
   ifeq ($(PLATFORM), linux)
     LDFLAGS += $(LDFLAG_Z_ORIGIN)
     LDFLAGS += -Wl,--allow-shlib-undefined
-    LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../lib/$(LIBARCH)/jli
+    ifneq ($(INSTALL_LOCATION),)
+      LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../lib/$(LIBARCH)/jli:$(INSTALL_LOCATION)/jre/lib/$(LIBARCH)/jli
+    else
+      LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../lib/$(LIBARCH)/jli
+    endif
   endif # PLATFORM LINUX
 endif # PLATFORM linux solaris
 
@@ -148,8 +152,13 @@
   endif # ARCH_DATA_MODEL
 endif # PLATFORM SOLARIS
 ifeq ($(PLATFORM), linux)
-  LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../lib/$(LIBARCH)
-  LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../jre/lib/$(LIBARCH)
+  ifneq ($(INSTALL_LOCATION),)
+    LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../lib/$(LIBARCH):$(INSTALL_LOCATION)/lib/$(LIBARCH)
+    LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../jre/lib/$(LIBARCH):$(INSTALL_LOCATION)/jre/lib/$(LIBARCH)
+  else
+    LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../lib/$(LIBARCH)
+    LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../jre/lib/$(LIBARCH)
+  endif
 endif # PLATFORM LINUX
 
 
--- a/make/java/instrument/Makefile	Wed May 21 15:52:15 2014 +0100
+++ b/make/java/instrument/Makefile	Tue Jun 03 18:52:56 2014 +0100
@@ -123,7 +123,11 @@
   ifeq ($(PLATFORM), linux)
     LDFLAGS += $(LDFLAG_Z_ORIGIN)
     LDFLAGS += -Wl,--allow-shlib-undefined
-    LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/jli
+    ifneq ($(INSTALL_LOCATION),)
+      LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/jli:$(INSTALL_LOCATION)/jre/lib/$(LIBARCH)/jli
+    else
+      LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/jli
+    endif
   endif
 endif
 endif