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
