> 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]