[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openssl-dev
Subject:    [openssl.org #293] Openssl-0.9.6g on Solaris, broken shared libraries
From:       "René Berber via RT" <rt () openssl ! org>
Date:       2002-09-29 20:41:45
[Download RAW message or body]



Bug description:

Make and make test succeed, but the test programs are linked against the static \
libraries, never against the shared libraries, so if there is a problem with the \
shared libraries (and there is in my system, all applications linked against them \
core dump) it's not detected.

The problem is probably not with the openssl shared libraries but they fail to work \
when used.  I haven't found where exactly is the problem, but for reference here's \
the complete information.

make report returns:

OpenSSL self-test report:

OpenSSL version:  0.9.6h-dev
Last change:      Don't impose a 16-byte length minimum on session IDs in...
Options:          --prefix=/usr/local/ssl threads shared no-asm
OS (uname):       SunOS legosoft 5.8 Generic_108528-14 sun4m sparc \
SUNW,SPARCstation-5 OS (config):      sun4m-whatever-solaris2
Target (default): solaris-sparcv8-gcc
Target:           solaris-sparcv8-gcc
Compiler:         Configured with: ../gcc-3.2/configure --prefix=/opt/gnu \
--with-gnu-as --with-gnu-ld --disable-multilib --enable-threads \
--enable-languages=c,c++,objc,java --enable-libgcj --disable-nls Thread model: posix
gcc version 3.2

Test passed.

Note: This is the last recompile I did, I started with version 0.9.6g, then \
downloaded the last snapshot and tried again, then disabled use of assembler, then \
disabled optimization.  Also tested the recommendation from bug report #29: re-linked \
without the -Wl,-Bsymbolic parameter, same result.

To test the shared libraries I took a small program (adapted and corrected from the \
configure script of openSsh):

#include <string.h>
#include <openssl/crypto.h>

int main(void) { return(SSLeay() == OPENSSL_VERSION_NUMBER ? 0 : 1); }

And compiled with:

gcc -o test -pipe -g -Wall -Wpointer-arith -Wno-uninitialized -I../include -L.. -R.. \
test.c -lpam -ldl -lz -lsocket -lnsl -lcrypto

Running it, in all tested variations, results in "Segmentation Fault (core dumped)"

The stack traceback is:

GNU gdb 5.0
[snip]
This GDB was configured as "sparc-sun-solaris2.8"...
(gdb) r
Starting program: /home/rberber/openssl-0.9.6-stable-SNAP-20020925/test/test 

Program received signal SIGSEGV, Segmentation fault.
0xef4a6224 in __register_frame_info_bases (begin=0xef4c0000, ob=0xef4c0000, 
    tbase=0x0, dbase=0x0) at ../../gcc-3.0.3/gcc/unwind-pe.h:211
211     ../../gcc-3.0.3/gcc/unwind-pe.h: No such file or directory.
(gdb) where
#0  0xef4a6224 in __register_frame_info_bases (begin=0xef4c0000, 
    ob=0xef4c0000, tbase=0x0, dbase=0x0) at ../../gcc-3.0.3/gcc/unwind-pe.h:211
#1  0xef4a62a0 in __register_frame_info (begin=0xef4c0000, ob=0xef4c0000)
    at ../../gcc-3.0.3/gcc/unwind-pe.h:211
#2  0xef4e3f18 in frame_dummy ()
   from /home/rberber/openssl-0.9.6-stable-SNAP-20020925/test/../libcrypto.so.0.9.6
#3  0xef4e3e00 in _init ()
   from /home/rberber/openssl-0.9.6-stable-SNAP-20020925/test/../libcrypto.so.0.9.6
#4  0xef7cc1ec in ?? ()
#5  0xef7cbae4 in ?? ()
#6  0xef7d6fdc in ?? ()
#7  0xef7c2a50 in ?? ()

I think only #2 abd #3 are significant, gdb is reporting bogus information which \
include a path with gcc-3.0.3 which never has existed on this machine.  Perhaps all \
the information is bogus since I haven't been able to put a breakpoint at the _init() \
or frame_dummy() routines, one is not found, the later is in another library not \
libcrypto.

-- 
René Berber

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majordomo@openssl.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic