On Thu, Nov 14, 2002 at 03:00:37PM +0100, Richard Levitte via RT wrote:
> 
> [[EMAIL PROTECTED] - Sun May 12 22:48:56 2002]:
> 
> > JFYI, when updating our package from 0.9.6c to 0.9.6d I've noticed
> > that the new shared libcrypto library doesn't work anymore.  The
> > openssl(1) binary wouldn't recognize any of the block ciphers.  I
> > tracked this down to the addition of -Wl,-Bsymbolic.  Removing that
> > option solved the problem for us.
> 
> Hmm, if you, instead of removing that option, build and check the 
> resulting library with 'nm', what exactly do you get?  It's a 
> mystery to me why things should go wrong for you.

I've now tried removing the patch from our 0.9.6g package and what I
get is:

1. Both versions appear to produce a working library now, however:

2. The sizes and symbol offsets in them differ:

With -Wl,-Bsymbolic (original):
-rwxr-xr-x     root     root       827429 Nov 15 09:28 /usr/lib/libcrypto.so.0.9.6

Without -Wl,-Bsymbolic (patched):
-rwxr-xr-x     root     root       858309 Nov 15 09:40 /usr/lib/libcrypto.so.0.9.6

3. The sets of symbols (as reported by "nm -a") are exactly the same.

> About the -Wl,-Bsymbolic problem, have you tried downloading a 
> recent 0.9.6 snapshot and checked that the problem is still present?

I haven't tried removing the patch from our package in further updates
(to 0.9.6e and 0.9.6g), but have tried so now (see above).  It does
appear that the problem is gone, but I'd feel more comfortable knowing
what made it go.

One change to our package which could be relevant is this:

* Wed Sep 25 2002 Solar Designer <[EMAIL PROTECTED]>
- Don't do an explicit "make build-shared", it's not needed and could only
cause harm (link libssl against libcrypto statically), but luckily didn't;
pointed out by Dmitry V. Levin of ALT Linux.

Basically, with 0.9.6d we used to do:

# Check these against the DIRS= line and "all" target in top-level Makefile
# when updating to a new version of OpenSSL; with 0.9.6d the Makefile says:
# DIRS= crypto ssl rsaref $(SHLIB_MARK) apps test tools
# all: clean-shared Makefile.ssl sub_all
make Makefile.ssl
make sub_all DIRS="crypto ssl rsaref"
make build-shared
LD_LIBRARY_PATH=`pwd` make sub_all DIRS="apps test tools"

Now this has changed to:

# Check these against the DIRS= line and "all" target in top-level Makefile
# when updating to a new version of OpenSSL; with 0.9.6g the Makefile says:
# DIRS= crypto ssl rsaref $(SHLIB_MARK) apps test tools
# all: clean-shared Makefile.ssl sub_all
make Makefile.ssl
make sub_all DIRS="crypto ssl rsaref"
LD_LIBRARY_PATH=`pwd` make sub_all DIRS="apps test tools"

-- 
/sd
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to