diff options
| -rwxr-xr-x | configure | 1 | ||||
| -rw-r--r-- | src/sysdeps/trydladdr.c | 33 |
2 files changed, 34 insertions, 0 deletions
@@ -693,6 +693,7 @@ choose cl getauxval 'getauxval()' choose cl kernprocpathname 'the KERN_PROC_PATHNAME sysctl' choose cl _nsgetexecutablepath '_NSGetExecutablePath()' choose cl getexecname 'getexecname()' +choose cl dladdr 'dladdr()' # Here are the evil irreducible run-time sysdeps. choose clr devurandom '/dev/urandom' diff --git a/src/sysdeps/trydladdr.c b/src/sysdeps/trydladdr.c new file mode 100644 index 0000000..3240785 --- /dev/null +++ b/src/sysdeps/trydladdr.c @@ -0,0 +1,33 @@ +/* ISC license. */ + +#undef _POSIX_C_SOURCE +#undef _XOPEN_SOURCE + +#ifndef __EXTENSIONS__ +#define __EXTENSIONS__ +#endif +#ifndef _GNU_SOURCE +#define _GNU_SOURCE +#endif +#ifndef _BSD_SOURCE +#define _BSD_SOURCE +#endif +#ifndef _DEFAULT_SOURCE +#define _DEFAULT_SOURCE +#endif +#ifndef _NETBSD_SOURCE +#define _NETBSD_SOURCE +#endif +#ifndef _INCOMPLETE_XOPEN_C063 +#define _INCOMPLETE_XOPEN_C063 +#endif + +#include <dlfcn.h> + +int main (void) +{ + Dl_info info ; + if (!dladdr(&main, &info)) return 1 ; + if (!info.dli_fname) return 1 ; + return 0 ; +} |
