# rules need a little love to work with glibc ...
export UCLIBC_ONLY := 1
-TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk
+TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk dladdr
include ../Test.mak
LDFLAGS_test1 := -ldl
LDFLAGS_test2 := -ldl
LDFLAGS_test3 := -ldl ./libtest1.so ./libtest2.so -Wl,-rpath,.
+LDFLAGS_dladdr := -ldl
DEBUG_LIBS := X
WRAPPER := env $(DEBUG_LIBS)=all LD_LIBRARY_PATH="$$PWD:.:$(LD_LIBRARY_PATH)"
--- /dev/null
+#include <dlfcn.h>\r
+#include <stdlib.h>\r
+#include <stdio.h>\r
+#include <string.h>\r
+\r
+int main(int argc, char **argv)\r
+{\r
+ Dl_info info;\r
+ int res = 0;\r
+\r
+ memset(&info, '\0', sizeof(Dl_info));\r
+ res = dladdr((void *)1, &info);\r
+ if (res != 0) {\r
+ fprintf(stderr, "dladdr() should fail\n");\r
+ fprintf(stderr, "dli_fname = %s\n", info.dli_fname);\r
+ fprintf(stderr, "dli_fbase = 0x%08x\n", (unsigned int)info.dli_fbase);\r
+ fprintf(stderr, "dli_sname = %s\n", info.dli_sname);\r
+ fprintf(stderr, "dli_saddr = 0x%08x\n", (unsigned int)info.dli_saddr);\r
+ exit(1);\r
+ }\r
+\r
+ fprintf(stderr, "dladdr() failed as expected\n");\r
+ return EXIT_SUCCESS;\r
+}\r
+\r