# ifndef _GNU_SOURCE
# define _GNU_SOURCE /* make sure dladdr is declared */
# endif
+# define HAVE_DLINFO 1
#endif
#include <stdio.h>
* 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
# 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 */
{
int spec2len, len;
- spec2len = (filespec2 ? strlen(filespec2) : 0);
+ spec2len = strlen(filespec2);
len = spec2len + (filespec1 ? strlen(filespec1) : 0);
if(filespec2 && filespec2[spec2len - 1] == '/')
intention to change this interface, so on a practical level, the code
below is safe to use on IRIX.
*/
+#define HAVE_DLINFO 1
#include <rld_interface.h>
#ifndef _RLD_INTERFACE_DLFCN_H_DLADDR
#define _RLD_INTERFACE_DLFCN_H_DLADDR
static int dlfcn_pathbyaddr(void *addr,char *path,int sz)
{
+#ifdef HAVE_DLINFO
Dl_info dli;
int len;
}
ERR_add_error_data(4, "dlfcn_pathbyaddr(): ", dlerror());
+#endif
return -1;
}