Hello,

I compiled the last openssl from source with ./config --prefxi=/usr.

nano /usr/lib/pkgconfig/libssl.pc
Code:
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries
Version: 1.0.1e
Requires:
Libs: -L${libdir} -lssl -lcrypto
Libs.private: -ldl
Cflags: -I${includedir}

I tried to compile the following test program with "gcc ssl_accept.c -o 
sslaccept -lssl 2> outputsslgcc":

Code:
 /* confdefs.h.  */
 #define PACKAGE_NAME "Zarafa"
 #define PACKAGE_TARNAME "zarafa"
 #define PACKAGE_VERSION "7.0.0"
 #define PACKAGE_STRING "Zarafa 7.0.0"
 #define PACKAGE_BUGREPORT "zarafa-dev zarafa.com"
 #define PACKAGE "zarafa"
 #define VERSION "7.0.0"
 #define STDC_HEADERS 1
 #define HAVE_SYS_TYPES_H 1
 #define HAVE_SYS_STAT_H 1
 #define HAVE_STDLIB_H 1
 #define HAVE_STRING_H 1
 #define HAVE_MEMORY_H 1
 #define HAVE_STRINGS_H 1
 #define HAVE_INTTYPES_H 1
 #define HAVE_STDINT_H 1
 #define HAVE_UNISTD_H 1
 #define HAVE_DLFCN_H 1
 #define YYTEXT_POINTER 1
 #define STDC_HEADERS 1
 #define HAVE_STDBOOL_H 1
 #define restrict __restrict
 #define TIME_WITH_SYS_TIME 1
 #define HAVE_NCURSES_H 1
 #define HAVE_MEMORY_H 1
 #define HAVE_STDDEF_H 1
 #define HAVE_STDLIB_H 1
 #define HAVE_STRING_H 1
 #define HAVE_SYS_TIMEB_H 1
 #define HAVE_WCHAR_H 1
 #define HAVE_SYSLOG_H 1
 #define HAVE_SYS_UN_H 1
 #define HAVE_SYS_STAT_H 1
 #define HAVE_OPENSSL_SSL_H 1
 #define HAVE_ZLIB_H 1
 #define HAVE_STDLIB_H 1
 #define HAVE_MALLOC 1
 #define HAVE_SYS_TIME_H 1
 #define HAVE_UNISTD_H 1
 #define HAVE_ALARM 1
 #define HAVE_STDLIB_H 1
 #define HAVE_REALLOC 1
 #define HAVE_STRFTIME 1
 #define HAVE_VPRINTF 1
 #define RETSIGTYPE void
 #define RETSIGTYPE void
 #define HAVE_RANDOM 1
 #define HAVE_GETTIMEOFDAY 1
 #define HAVE_FTIME 1
 #define HAVE_LOCALTIME_R 1
 #define HAVE_TIMEGM 1
 #define HAVE_GMTIME 1
 #define HAVE_GMTIME_R 1
 #define HAVE_MEMCHR 1
 #define HAVE_MEMSET 1
 #define HAVE_SELECT 1
 #define HAVE_SOCKET 1
 #define HAVE_STRCHR 1
 #define HAVE_STRERROR 1
 #define HAVE_STRRCHR 1
 #define HAVE_STRSTR 1
 #define HAVE_STRTOL 1
 #define HAVE_STRTOUL 1
 #define HAVE_STRTOLL 1
 #define HAVE_STRTOULL 1
 #define HAVE_SSCANF 1
 #define HAVE_STRTOF_L 1
 #define HAVE_STRTOD_L 1
 #define HAVE_WCTOMB 1
 #define HAVE_MBTOWC 1
 #define HAVE_DCGETTEXT 1
 #define HAVE_GETHOSTBYNAME_R 1
 #define HAVE_GETPWNAM_R 1
 #define HAVE_VSYSLOG 1
 #define HAVE_MYSQL_SET_CHARACTER_SET 1
 #define HAVE_VMIME_UTILITY_SMARTPTRINT_HPP 1
 #define HAVE_LIBICAL_ICAL_H 1
 #define HAVE_CLUCENE_H 1
 #define HAVE_SHADOW_H 1
 #define HAVE_LIBCRYPT 1
 /* end confdefs.h.  */


 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
 char SSL_accept ();
 int
 main ()
 {
 return SSL_accept ();
   ;
   return 0;
 }
But I get a lot of undefinied function errors in libssl.a like this:
/usr/lib/gcc/sparc-unknown-linux-gnu/4.6.0/../../../libssl.a(ssl_lib.o)(.text+0x368):
 In function `ssl_undefined_function':
: undefined reference to `ERR_put_error'
/usr/lib/gcc/sparc-unknown-linux-gnu/4.6.0/../../../libssl.a(ssl_lib.o)(.text+0x3c8):
 In function `SSL_CTX_free.part.5':
: undefined reference to `X509_VERIFY_PARAM_free'
/usr/lib/gcc/sparc-unknown-linux-gnu/4.6.0/../../../libssl.a(ssl_lib.o)(.text+0x3f0):
 In function `SSL_CTX_free.part.5':
: undefined reference to `CRYPTO_free_ex_data'
/usr/lib/gcc/sparc-unknown-linux-gnu/4.6.0/../../../libssl.a(ssl_lib.o)(.text+0x408):
 In function `SSL_CTX_free.part.5':
: undefined reference to `lh_free'
/usr/lib/gcc/sparc-unknown-linux-gnu/4.6.0/../../../libssl.a(ssl_lib.o)(.text+0x420):
 In function `SSL_CTX_free.part.5':
: undefined reference to `X509_STORE_free'
/usr/lib/gcc/sparc-unknown-linux-gnu/4.6.0/../../../libssl.a(ssl_lib.o)(.text+0x438):
 In function `SSL_CTX_free.part.5':
: undefined reference to `sk_free'
/usr/lib/gcc/sparc-unknown-linux-gnu/4.6.0/../../../libssl.a(ssl_lib.o)(.text+0x450):
 In function `SSL_CTX_free.part.5':
: undefined reference to `sk_free'
/usr/lib/gcc/sparc-unknown-linux-gnu/4.6.0/../../../libssl.a(ssl_lib.o)(.text+0x480):
 In function `SSL_CTX_free.part.5':
: undefined reference to `X509_NAME_free'
/usr/lib/gcc/sparc-unknown-linux-gnu/4.6.0/../../../libssl.a(ssl_lib.o)(.text+0x484):
 In function `SSL_CTX_free.part.5':
: undefined reference to `sk_pop_free'[...]

If I do objdump /usr/lib/libssl.a -t it prints for example:

s2_srvr.o:     file format elf32-sparc

SYMBOL TABLE:
00000000 l    df *ABS*  00000000 s2_srvr.c
00000000 l    d  .text  00000000 
00000000 l    d  .data  00000000 
00000000 l    d  .bss   00000000 
00000000 l     F .text  0000001c ssl2_get_server_method
00000000 l     O .rodata        00000074 SSLv2_server_method_data.14895
00000000 l    d  .rodata.str1.8 00000000 
00000000 l    d  .rodata        00000000 
00000000 l    d  .note.GNU-stack        00000000 
00000000 l    d  .comment       00000000 
0000001c g     F .text  000019ec ssl2_accept
00000000         *UND*  00000000 time
00000000         *UND*  00000000 RAND_add
00000000         *UND*  00000000 ERR_clear_error
00000000         *UND*  00000000 __errno_location
00000000         *UND*  00000000 SSL_state
00000000         *UND*  00000000 ssl2_do_write
00000000         *UND*  00000000 SSL_clear
00000000         *UND*  00000000 ssl2_read
00000000         *UND*  00000000 ssl_get_prev_session
00000000         *UND*  00000000 ssl_get_new_session
00000000         *UND*  00000000 memcpy
00000000         *UND*  00000000 ERR_put_error
[...]

It seems that this "undefined functions" are defined in libssl.a. I got no idea 
why this undefinied functions errors occour. Or is this a gcc problem?

Any help is appreciated. Thanks

Martin                                    
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to