From: Andy Polyakov Date: Fri, 4 Jan 2008 23:03:23 +0000 (+0000) Subject: Last dso_dlfcn.c check-in said "Use Dl_info only on systems where it is X-Git-Tag: OpenSSL_0_9_8k^2~585 X-Git-Url: https://git.openssl.org/?a=commitdiff_plain;h=731339627f7bd1dc744a6c78ab7f17083b8da97f;hp=26e71a1850b053ec6c1d2b67023d9e3a9d179008;p=openssl.git Last dso_dlfcn.c check-in said "Use Dl_info only on systems where it is known to exist. It does not exist on AIX 4.3.3, AIX 5.1, SCO 5, or Cygwin" and disabled it on banch of systems it's known to exists, such as FreeBSD, Solaris, 64-bit HP-UX, MacOS X. Get it straight. --- diff --git a/crypto/dso/dso_dlfcn.c b/crypto/dso/dso_dlfcn.c index 979fca8065..d36e0b0f3a 100644 --- a/crypto/dso/dso_dlfcn.c +++ b/crypto/dso/dso_dlfcn.c @@ -64,7 +64,6 @@ # ifndef _GNU_SOURCE # define _GNU_SOURCE /* make sure dladdr is declared */ # endif -# define HAVE_DLINFO 1 #endif #include @@ -79,8 +78,13 @@ DSO_METHOD *DSO_METHOD_dlfcn(void) #else #ifdef HAVE_DLFCN_H - -#include +# include +# define HAVE_DLINFO 1 +# if defined(_AIX) || defined(__CYGWIN__) || \ + defined(__SCO_VERSION__) || defined(_SCO_ELF) || \ + (defined(__OpenBSD__) && !defined(RTLD_SELF)) +# undef HAVE_DLINFO +# endif #endif /* Part of the hack in "dlfcn_load" ... */ @@ -134,7 +138,6 @@ DSO_METHOD *DSO_METHOD_dlfcn(void) * be hacked further relatively easily to deal with cases as we find * them. Initially this is to cope with OpenBSD. */ #if defined(__OpenBSD__) || defined(__NetBSD__) -# define HAVE_DLINFO 1 # ifdef DL_LAZY # define DLOPEN_FLAG DL_LAZY # else @@ -146,7 +149,6 @@ DSO_METHOD *DSO_METHOD_dlfcn(void) # endif #else # ifdef OPENSSL_SYS_SUNOS -# define HAVE_DLINFO 1 # define DLOPEN_FLAG 1 # else # define DLOPEN_FLAG RTLD_NOW /* Hope this works everywhere else */ @@ -397,7 +399,6 @@ This is a quote from IRIX manual for dladdr(3c): intention to change this interface, so on a practical level, the code below is safe to use on IRIX. */ -#define HAVE_DLINFO 1 #include #ifndef _RLD_INTERFACE_DLFCN_H_DLADDR #define _RLD_INTERFACE_DLFCN_H_DLADDR