> I am also attempting to build OpenSSL 1.0.0a on an antique "OSF1
> system-name-here V4.0 1530 alpha alpha Tru64" system running Alpha
> 4.0G.  I also get the error about "dli" not being declared.  This is
> the last of the compile log where it fails:
> 
> cc -I.. -I../.. -I../asn1 -I../evp -I../../include  -DOPENSSL_THREADS 
> -pthread -DDSO_DLFCN -DHAVE_DLFCN_H -std1 -tune host -fast -readonly_strings 
> -DOPENSSL_BN_ASM_MONT   -c -o dso_dlfcn.o dso_dlfcn.c
> cc: Error: dso_dlfcn.c, line 445: In this declaration, "Dl_info" must specify 
> a type. (badparsedecl)
>         Dl_info dli;
> --------^
> cc: Error: dso_dlfcn.c, line 455: In this statement, "dli" is not declared. 
> (undeclared)
>         if (dladdr(addr,&dli))
> 
>                     -----------------------------------
> 
> I looked at the page http://cvs.openssl.org/chngview?cn=19501 and saw
> that the change to dso_dlfcn.c was:
> 
> +# ifdef __osf__
> +#  define __EXTENSIONS__
> +# endif

Yes, this was tested on Tru64 5.0 only.

> I validated that the version of dso_dlfcn.c has this change.  It
> still gets this compiler error.  I looked a bit deeper and determined
> that the struct Dl_info is not being created because "__sgi" is NOT
> defined.
> 
> As a test I defined __sgi temporarily and the dso_dlfcn.c module
> compiled.  I have no clue as to where __sgi might correctly be
> defined or what it means.

Is it so hard to imagine that __sgi is defined on a SGI system? I'd
expect a person working with Tru64 Unix 4.0 to remember that there was
SGI IRIX as well... :-):-):-) But to be serious, it's inappropriate to
solve the problem by defining __sgi. What one should do is to figure out
how to tell apart Tru64 4.0 and 5.0 and *abstain* from attempt to
compile the code denoted with HAVE_DLINFO on 4.0. I only have 4.0
source, real thing can be different, but try following:

--- crypto/dso/dso_dlfcn.c      29 Mar 2010 09:50:02 -0000      1.35
+++ crypto/dso/dso_dlfcn.c      2 Oct 2010 12:35:22 -0000
@@ -85,6 +85,7 @@
 # define HAVE_DLINFO 1
 # if defined(_AIX) || defined(__CYGWIN__) || \
      defined(__SCO_VERSION__) || defined(_SCO_ELF) || \
+     (defined(__osf__) && !defined(RTLD_NEXT))     || \
      (defined(__OpenBSD__) && !defined(RTLD_SELF))
 #  undef HAVE_DLINFO
 # endif

A.


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to