On Sat, Jan 24, 2004 at 06:09:46PM +0100, Matthieu Herrb wrote:
>David Dawes wrote (in a message from Saturday 24)

> > If there is no general consensus, I will at least add a build option to
> > make it easy to turn -rpath on or off for a host.def setting, and leave
> > the defaults as they are now.
>
>Yes I think this makes sense.

A proposed patch is attached.  I've tested it on FreeBSD and Linux.
The defaults are unchanged.  UseRpath can be defined to YES or NO in
host.def to override.

David
-- 
David Dawes
developer/release engineer                      The XFree86 Project
www.XFree86.org/~dawes
Index: FreeBSD.cf
===================================================================
RCS file: /home/x-cvs/xc/config/cf/FreeBSD.cf,v
retrieving revision 3.145
diff -u -r3.145 FreeBSD.cf
--- FreeBSD.cf  6 Dec 2003 19:24:11 -0000       3.145
+++ FreeBSD.cf  25 Jan 2004 03:39:51 -0000
@@ -321,22 +321,53 @@
  * and they can remove it from the list of directories they add to ld.so.cache 
  * in their /etc/rc file.
  */
-#if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 2)
-#ifndef ExtraLoadFlags
-#if UseElfFormat
-#define ExtraLoadFlags         -Wl,-rpath,$(USRLIBDIRPATH) 
-Wl,-rpath-link,$(BUILDLIBDIR)
-#else
-#define ExtraLoadFlags         -Wl,-R,$(USRLIBDIRPATH)
+
+#ifndef UseRpath
+# define UseRpath              YES
 #endif
+
+#if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 2)
+
+# ifndef RpathLoadFlags
+#  if UseRpath
+#   if UseElfFormat
+#    define RpathLoadFlags     -Wl,-rpath,$(USRLIBDIRPATH)
+#   else
+#    define RpathLoadFlags     -Wl,-R,$(USRLIBDIRPATH)
+#   endif
+#  else
+#   define RpathLoadFlags      /**/
+#  endif
+# endif
+
+# ifndef ExtraLoadFlags
+#  if UseElfFormat && !UseInstalled
+#   define ExtraLoadFlags      RpathLoadFlags -Wl,-rpath-link,$(BUILDLIBDIR)
+#  else
+#   define ExtraLoadFlags      RpathLoadFlags
+#  endif
+# endif
+
 #endif
+
+#ifndef LibraryRpathLoadFlags
+# if UseRpath
+#  if UseElfFormat
+#   define LibraryRpathLoadFlags       -rpath $(USRLIBDIRPATH)
+#  else
+#   define LibraryRpathLoadFlags       -R $(USRLIBDIRPATH)
+#  endif
+# else
+#  define LibraryRpathLoadFlags                /**/
+# endif
 #endif
 
 #ifndef SharedLibraryLoadFlags
-#if UseElfFormat
-#define SharedLibraryLoadFlags -shared -rpath $(USRLIBDIRPATH)
-#else
-#define SharedLibraryLoadFlags -Bshareable -R $(USRLIBDIRPATH)
-#endif
+# if UseElfFormat
+#  define SharedLibraryLoadFlags       -shared LibraryRpathLoadFlags
+# else
+#  define SharedLibraryLoadFlags       -Bshareable LibraryRpathLoadFlags
+# endif
 #endif
 
 #ifndef GnuMallocLibrary
Index: OpenBSDLib.rules
===================================================================
RCS file: /home/x-cvs/xc/config/cf/OpenBSDLib.rules,v
retrieving revision 1.10
diff -u -r1.10 OpenBSDLib.rules
--- OpenBSDLib.rules    31 Oct 2003 20:49:03 -0000      1.10
+++ OpenBSDLib.rules    25 Jan 2004 03:53:56 -0000
@@ -20,6 +20,10 @@
 #define ForceNormalLib YES
 #endif
 
+#ifndef UseRpath
+#define UseRpath YES
+#endif
+
 #ifndef BaseShLibReqs
 #define BaseShLibReqs          /* -lc implied by $(CC) */
 #endif
@@ -36,8 +40,18 @@
 #ifndef ShLibIncludeFile
 #define ShLibIncludeFile <OpenBSDLib.tmpl>
 #endif
+#ifndef RpathLoadFlags
+#if UseRpath
+#define RpathLoadFlags -Wl,-rpath,$(USRLIBDIRPATH)
+#else
+#define RpathLoadFlags /**/
+#endif
+#endif
+#ifndef LibraryRpathLoadFlags
+#define LibraryRpathLoadFlags RpathLoadFlags
+#endif
 #ifndef SharedLibraryLoadFlags
-#define SharedLibraryLoadFlags -shared PositionIndependentCFlags 
-Wl,-rpath,$(USRLIBDIR)
+#define SharedLibraryLoadFlags -shared PositionIndependentCFlags LibraryRpathLoadFlags
 #endif
 #ifndef PositionIndependentCFlags
 #define PositionIndependentCFlags -fPIC
@@ -48,13 +62,13 @@
 #if UseElfFormat
 #ifndef ExtraLoadFlags
 #ifdef UseInstalled
-#define ExtraLoadFlags -Wl,-rpath,$(USRLIBDIRPATH)
+#define ExtraLoadFlags RpathLoadFlags
 #else
-#define ExtraLoadFlags -Wl,-rpath,$(USRLIBDIRPATH) -Wl,-rpath-link,$(BUILDLIBDIR)
+#define ExtraLoadFlags RpathLoadFlags -Wl,-rpath-link,$(BUILDLIBDIR)
 #endif
 #endif
 #ifndef HardCodeLibdirFlag
-#define HardCodeLibdirFlag -Wl,-rpath,$(USRLIBDIRPATH)
+#define HardCodeLibdirFlag RpathLoadFlags
 #endif
 #endif /* UseElfFormat */
 
Index: bsdLib.rules
===================================================================
RCS file: /home/x-cvs/xc/config/cf/bsdLib.rules,v
retrieving revision 3.27
diff -u -r3.27 bsdLib.rules
--- bsdLib.rules        20 Nov 2003 00:41:37 -0000      3.27
+++ bsdLib.rules        25 Jan 2004 03:54:32 -0000
@@ -170,6 +170,10 @@
 #define ForceNormalLib YES
 #endif
 
+#ifndef UseRpath
+#define UseRpath YES
+#endif
+
 #ifndef BaseShLibReqs
 #define BaseShLibReqs          /* -lc */
 #endif
@@ -186,8 +190,18 @@
 #ifndef ShLibIncludeFile
 #define ShLibIncludeFile <bsdLib.tmpl>
 #endif
+#ifndef RpathLoadFlags
+#if UseRpath
+#define RpathLoadFlags -Wl,-rpath,$(USRLIBDIRPATH)
+#else
+#define RpathLoadFlags /**/
+#endif
+#endif
+#ifndef LibraryRpathLoadFlags
+#define LibraryRpathLoadFlags RpathLoadFlags
+#endif
 #ifndef SharedLibraryLoadFlags
-#define SharedLibraryLoadFlags -shared -Wl,-rpath,$(USRLIBDIRPATH)
+#define SharedLibraryLoadFlags -shared LibraryRpathLoadFlags
 #endif
 #ifndef PositionIndependentCFlags
 #define PositionIndependentCFlags -fPIC
@@ -197,14 +211,14 @@
 #endif
 #ifndef ExtraLoadFlags
 #ifdef UseInstalled
-#define ExtraLoadFlags -Wl,-rpath,$(USRLIBDIRPATH)
+#define ExtraLoadFlags RpathLoadFlags
 #else
-#define ExtraLoadFlags -Wl,-rpath,$(USRLIBDIRPATH) -Wl,-rpath-link,$(BUILDLIBDIR)
+#define ExtraLoadFlags RpathLoadFlags -Wl,-rpath-link,$(BUILDLIBDIR)
 #endif
 #endif
 
 #ifndef HardCodeLibdirFlag
-#define HardCodeLibdirFlag -Wl,-rpath,$(USRLIBDIRPATH)
+#define HardCodeLibdirFlag RpathLoadFlags
 #endif
 
 #if !defined(ShlibGlobalsFlags)
Index: gnuLib.rules
===================================================================
RCS file: /home/x-cvs/xc/config/cf/gnuLib.rules,v
retrieving revision 1.9
diff -u -r1.9 gnuLib.rules
--- gnuLib.rules        11 Oct 2003 09:40:13 -0000      1.9
+++ gnuLib.rules        25 Jan 2004 03:54:48 -0000
@@ -17,6 +17,11 @@
 #define ForceNormalLib NO
 #endif
 
+XCOMM XXX To rpath or not to rpath...
+#ifndef UseRpath
+#define UseRpath NO
+#endif
+
 #ifndef SharedOldX
 #define SharedOldX NO
 #endif
@@ -38,10 +43,18 @@
 #ifndef ShLibIncludeFile
 #define ShLibIncludeFile <gnuLib.tmpl>
 #endif
+#ifndef RpathLoadFlags
+#if UseRpath
+#define RpathLoadFlags -Wl,-rpath=$(USRLIBDIRPATH)
+#else
+#define RpathLoadFlags /**/
+#endif
+#endif
+#ifndef LibraryRpathLoadFlags
+#define LibraryRpathLoadFlags RpathLoadFlags
+#endif
 #ifndef SharedLibraryLoadFlags
-XCOMM XXX To rpath or not to rpath...
-XCOMM #define SharedLibraryLoadFlags -shared -Wl,-rpath=$(USRLIBDIR)
-#define SharedLibraryLoadFlags -shared
+#define SharedLibraryLoadFlags -shared LibraryRpathLoadFlags
 #endif
 #ifndef PositionIndependentCFlags
 #define PositionIndependentCFlags -fPIC
@@ -52,9 +65,9 @@
 #ifndef ExtraLoadFlags
 #ifdef UseInstalled
 XCOMM XXX Maybe superfluous.
-#define ExtraLoadFlags -Wl,-rpath-link=$(USRLIBDIRPATH)
+#define ExtraLoadFlags RpathLoadFlags -Wl,-rpath-link=$(USRLIBDIRPATH)
 #else
-#define ExtraLoadFlags -Wl,-rpath-link=$(BUILDLIBDIR)
+#define ExtraLoadFlags RpathLoadFlags -Wl,-rpath-link=$(BUILDLIBDIR)
 #endif
 #endif
 
Index: lnxLib.rules
===================================================================
RCS file: /home/x-cvs/xc/config/cf/lnxLib.rules,v
retrieving revision 3.52
diff -u -r3.52 lnxLib.rules
--- lnxLib.rules        31 Oct 2003 20:49:03 -0000      3.52
+++ lnxLib.rules        25 Jan 2004 03:50:31 -0000
@@ -11,6 +11,10 @@
 # define ForceNormalLib NO
 #endif
 
+#ifndef UseRpath
+#define UseRpath NO
+#endif
+
 #ifndef SharedOldX
 # define SharedOldX NO
 #endif
@@ -63,6 +67,16 @@
 # ifndef ShLibIncludeFile
 #  define ShLibIncludeFile <lnxLib.tmpl>
 # endif
+#ifndef RpathLoadFlags
+#if UseRpath
+#define RpathLoadFlags -Wl,-rpath,$(USRLIBDIRPATH)
+#else
+#define RpathLoadFlags /**/
+#endif
+#endif
+#ifndef LibraryRpathLoadFlags
+#define LibraryRpathLoadFlags RpathLoadFlags
+#endif
 # ifndef SharedLibraryLoadFlags
 #  define SharedLibraryLoadFlags -shared
 # endif
@@ -76,17 +90,17 @@
 #  if LinuxBinUtilsMajorVersion >= 26
 #   ifdef UseInstalled
 #    if LinuxBinUtilsMajorVersion < 27
-#     define ExtraLoadFlags -Wl,-rpath-link,$(USRLIBDIRPATH)
+#     define ExtraLoadFlags RpathLoadFlags -Wl,-rpath-link,$(USRLIBDIRPATH)
 #    endif
 #   else
-#    define ExtraLoadFlags -Wl,-rpath-link,$(BUILDLIBDIR)
+#    define ExtraLoadFlags RpathLoadFlags -Wl,-rpath-link,$(BUILDLIBDIR)
 #   endif
 #  else
-#   define ExtraLoadFlags -Wl,-rpath,$(USRLIBDIRPATH)
+#   define ExtraLoadFlags RpathLoadFlags
 #  endif
 # endif
 # ifndef HardCodeLibdirFlag
-#  define HardCodeLibdirFlag -Wl,-rpath,$(USRLIBDIRPATH)
+#  define HardCodeLibdirFlag RpathLoadFlags
 # endif
 # if !defined(ShlibGlobalsFlags)
 #  define ShlibGlobalsFlags -Wl,-Bsymbolic

Reply via email to