Wait - I'm on Mac OS X 10.6, so if this is believed to be fixed in the most recent versions, maybe there's something wrong with my environment. brian-bockelmans-macbook-pro-3:~ brian$ gcc -version i686-apple-darwin10-gcc-4.2.1: no input files What should I be staring at? Brian On Oct 25, 2010, at 6:38 AM, Lukasz Janyst wrote: > Well, we actually fixed the problem of compiling the secssl plugin on > a really outdated macosx some two weeks ago, which shows that these > are still in use, so I would be in favor of fixing this one as well. > It's not a dramatic change after all. > > Lukasz > > On Mon, Oct 25, 2010 at 9:12 AM, Andrew Hanushevsky > <[log in to unmask]> wrote: >> Hi Brian, >> >> Unfortunately, that his distinction went way in the most recent release. So, >> it's q question of how far back we want to carry support. Given Apple's >> aggresive upgrade schedule, it's not clear whather we want to actually do >> this. I looking for the maintanenrs to respond. >> >> Andy >> >> On Sat, 23 Oct 2010, Brian Bockelman wrote: >> >>> >>> Mac OS X makes a distinction between shared libraries and shared modules. >>> Shared libraries end in .dylib and are loaded when the executable starts >>> up. Shared modules end in .so and can be loaded during runtime using >>> dlopen. >>> >>> This patch makes XrdCrypto and friends shared modules, and uses an >>> autoconf macro to auto-determine the shared library extension. >>> >>> This patch also generates a few warnings when shared libraries (such as >>> libXrdClient) are linked against the shared modules. In testing, this seems >>> to be harmless. >>> --- >>> configure.ac | 2 ++ >>> src/XrdCrypto/Makefile.am | 3 +++ >>> src/XrdCrypto/XrdCryptoFactory.cc | 8 ++++++-- >>> 3 files changed, 11 insertions(+), 2 deletions(-) >>> >>> diff --git a/configure.ac b/configure.ac >>> index 770fcaa..0232eea 100644 >>> --- a/configure.ac >>> +++ b/configure.ac >>> @@ -1017,6 +1017,8 @@ fi >>> >>> AM_CONDITIONAL(ENABLE_SECSSL,test x"$activate_secssl" = xyes -o >>> x"$activate_secssl" = xdefault_yes) >>> >>> +# Record the extension of dynamic libraries on this platform >>> +LT_SYS_MODULE_EXT >>> >>> ########################################### >>> # tkauthz checks >>> diff --git a/src/XrdCrypto/Makefile.am b/src/XrdCrypto/Makefile.am >>> index 9b2f3a9..edd19b7 100644 >>> --- a/src/XrdCrypto/Makefile.am >>> +++ b/src/XrdCrypto/Makefile.am >>> @@ -70,11 +70,13 @@ libXrdCrypto_la_LIBADD = libXrdSSLutil.la \ >>> ../XrdSys/libXrdSys.la \ >>> ../XrdNet/libXrdNet.la \ >>> ../XrdNet/libXrdNetUtil.la >>> +libXrdCrypto_la_LDFLAGS = -module >>> >>> libXrdCryptoLite_la_SOURCES = \ >>> XrdCryptoLite.hh \ >>> XrdCryptoLite.cc \ >>> XrdCryptoLite_bf32.cc >>> +libXrdCryptoLite_la_LDFLAGS = -module >>> libXrdCrytoLite_la_CXXFLAGS = $(SSLCXXFLAGS) >>> >>> >>> @@ -91,6 +93,7 @@ libXrdCryptossl_la_SOURCES = \ >>> XrdCryptosslgsiX509Chain.cc >>> libXrdCryptossl_la_LIBADD = ../XrdSut/libXrdSut.la \ >>> $(OPENSSL_LIBDIR) -lssl -lcrypto >>> +libXrdCryptossl_la_LDFLAGS = -module >>> libXrdCryptossl_la_CXXFLAGS = $(SSLCXXFLAGS) >>> >>> >>> diff --git a/src/XrdCrypto/XrdCryptoFactory.cc >>> b/src/XrdCrypto/XrdCryptoFactory.cc >>> index 6f110b5..ec9ed1f 100644 >>> --- a/src/XrdCrypto/XrdCryptoFactory.cc >>> +++ b/src/XrdCrypto/XrdCryptoFactory.cc >>> @@ -26,6 +26,10 @@ const char *XrdCryptoFactoryCVSID = "$Id$"; >>> #include <XrdCrypto/XrdCryptoFactory.hh> >>> #include <XrdCrypto/XrdCryptolocalFactory.hh> >>> >>> +#ifndef LT_MODULE_EXT >>> +#define LT_MODULE_EXT ".so" >>> +#endif >>> + >>> // We have always an instance of the simple RSA implementation >>> static XrdCryptolocalFactory localCryptoFactory; >>> >>> @@ -374,7 +378,7 @@ XrdCryptoFactory >>> *XrdCryptoFactory::GetCryptoFactory(const char *factoryid) >>> >>> // >>> // Form library name >>> - snprintf(libfn, sizeof(libfn)-1, "libXrdCrypto.so"); >>> + snprintf(libfn, sizeof(libfn)-1, "libXrdCrypto%s", LT_MODULE_EXT); >>> libfn[sizeof(libfn)-1] = '\0'; >>> >>> // >>> @@ -396,7 +400,7 @@ XrdCryptoFactory >>> *XrdCryptoFactory::GetCryptoFactory(const char *factoryid) >>> >>> // >>> // Try also specific library name >>> - snprintf(libfn, sizeof(libfn)-1, "libXrdCrypto%s.so", factoryid); >>> + snprintf(libfn, sizeof(libfn)-1, "libXrdCrypto%s%s", factoryid, >>> LT_MODULE_EXT); >>> libfn[sizeof(libfn)-1] = '\0'; >>> >>> // >>> -- >>> 1.7.3.1 >>> >>> >>