Christian- Thanks very much for your response.  That information is definitely 
helpful.  I'll take some time to process this and work towards your solution.
 > Date: Thu, 21 Jun 2012 07:25:24 +0200
> From: christ...@hohnstaedt.de
> To: openssl-users@openssl.org
> Subject: Re: OpenSSL linking question; handling 1.0.0 vs 0.9.8
> 
> Hi Jason,
> 
> some general things about linking:
> 
> - The symbolic link(s) libcrypto.so pointing to libcrypto.so.0.9.8
>   are only needed during BUILD time. On a host where no compiling
>   happens the symbolic links are not required.
> 
> - While linking the application, the linker opens the library
>   libcrypto.so.0.9.8 by accessing the symbolic link
>   libcrypto.so and reads its SONAME:
>     $ objdump -x /usr/lib/libcrypto.so | grep SONAME
>   This name (which has no path) is added to your application:
>     $ objdump -x /usr/bin/openssl | grep NEEDED
> 
> - When executing the application, the /lib/ld-linux.so link helper
>   searches in the well known places $LD_LIBRARY_PATH:/lib:/usr/lib
>   for the libraries and opens them recursively.
>   To show which library file is actually used during execution, call:
>     $ ldd /usr/bin/openssl
> 
> 
> To solve your problem, I suggest to compile but not install "openssl-1.0.1c"
> on the second machine and only copy the resulting libraries "libssl.so.1.0.0"
> and "libcrypto.so.1.0.0" to /usr/lib without touching their names, the 
> symlinks
> nor the include/openssl.
> 
> This way, any application compiled on that host will link to 0.9.8,
> while applications compiled against 1.0.x will also run smoothly.
> 
> HTH
> 
>       Christian
> 
> 
> On Wed, Jun 20, 2012 at 05:56:07PM +0000, Jason Schultz wrote:
> > 
> > 
> > 
> > 
> > I'm building and running an application that uses OpenSSL on SUSE Linux.  I 
> > don't know a lot about linking in general, just very basic stuff, so my 
> > question might be better posed to a Linux forum, but it might be specific 
> > to OpenSSL.  Let me describe the scenario.
> >  
> > I have built installed OpenSSL 1.0.1c on one machine; built as a shared 
> > library(with "shared" option on ./config).  I build my application and run 
> > it on this machine, dynamically linking OpenSSL.  After some trial and 
> > error(to get the application to use the new OpenSSL instead of the the 
> > previous install of 0.9.8r), everything works fine, my application is using 
> > OpenSSL 1.0.1c. Now, let's say I want to run my application on another SUSE 
> > Linux machine.  However, this machine has 0.9.8r(or any 0.9.8 level) 
> > installed.  When I try to run the application, I get an error saying it 
> > can't find OpenSSL 1.0.0.  I know that there are symbolic links set up when 
> > installing OpenSSL, so libssl.so will be linked to libssl.so.1.0.0 after 
> > installing OpenSSL 1.0.1c. (Similar for libcrypto.so) But in the old 
> > branch, the link is set up with libssl.so pointing to libssl.so.0.9.8.  
> > When I build my application, it seems to know that it's looking for 
> > libssl.so.1.0.0, instead of just the generic libssl.so.  I'm basing this on 
> > doing a readelf -d on my the .so file my make produces, and seeing the 
> > following line:  (NEEDED)             Shared library: [libssl.so.1.0.0]
> > On the machine I moved my application to(with the older OpenSSL), the link 
> > where OpenSSL exists shows libssl.so linked to libssl.so.0.9.8, obviously. 
> > I started messing around with trying to build 1.0.1c to "look like" 0.9.8 
> > by changing the SHLIB_VERSION_NUMBER in Makefile.org and 
> > /crypto/opensslv.h, but that started getting confusing and is probably 
> > beyond the scope of my knowledge at this point. I've done it before with, 
> > for example, going from 0.9.8i to 0.9.8r and didn't have any problems.  I 
> > suppose because the symbolic links look the same. Has anyone had to do this 
> > before?  A point in the right direction would be appreciated.  Is this even 
> > possible to go between branches like that?  
> >                                       
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    openssl-users@openssl.org
> Automated List Manager                           majord...@openssl.org
                                          

Reply via email to