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
>>
>>
>
|