Print

Print


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