about summary refs log tree commit diff
path: root/elf/restest1.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-01-19 23:47:25 +0000
committerUlrich Drepper <drepper@redhat.com>1999-01-19 23:47:25 +0000
commit6bd0638460756557bab2c3c176fd31f5e0ba6e1b (patch)
tree17d10cdd1c425896153d360ac1d6b3a1366738a0 /elf/restest1.c
parentdf4d289887774c548345e8c5fe5de64046a00425 (diff)
downloadglibc-6bd0638460756557bab2c3c176fd31f5e0ba6e1b.tar.gz
glibc-6bd0638460756557bab2c3c176fd31f5e0ba6e1b.tar.xz
glibc-6bd0638460756557bab2c3c176fd31f5e0ba6e1b.zip
Update.
	* elf/restest1.c: New file.  Symbol resolution test.
	* elf/testobj1_1.c: New file.  Module used in this test.
	* elf/Makefile: Add rules for restest1 generation and execution.
Diffstat (limited to 'elf/restest1.c')
-rw-r--r--elf/restest1.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/elf/restest1.c b/elf/restest1.c
new file mode 100644
index 0000000000..e4eca557c5
--- /dev/null
+++ b/elf/restest1.c
@@ -0,0 +1,48 @@
+#include <dlfcn.h>
+#include <error.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main (void)
+{
+  void *h1;
+  int (*fp1) (int);
+  void *h2;
+  int (*fp2) (int);
+  int res1;
+  int res2;
+
+  h1 = dlopen ("testobj1.so", RTLD_LAZY);
+  if (h1 == NULL)
+    error (EXIT_FAILURE, 0, "while loading `%s': %s", "testobj1.so",
+	   dlerror ());
+
+  h2 = dlopen ("testobj1_1.so", RTLD_LAZY);
+  if (h1 == NULL)
+    error (EXIT_FAILURE, 0, "while loading `%s': %s", "testobj1_1.so",
+	   dlerror ());
+
+  fp1 = dlsym (h1, "obj1func1");
+  if (fp1 == NULL)
+    error (EXIT_FAILURE, 0, "getting `obj1func1' in `%s': %s",
+	   "testobj1.so", dlerror ());
+
+  fp2 = dlsym (h2, "obj1func1");
+  if (fp2 == NULL)
+    error (EXIT_FAILURE, 0, "getting `obj1func1' in `%s': %s",
+	   "testobj1_1.so", dlerror ());
+
+  res1 = fp1 (10);
+  res2 = fp2 (10);
+  printf ("fp1(10) = %d\nfp2(10) = %d\n", res1, res2);
+
+  return res1 != 42 || res2 != 72;
+}
+
+
+int
+foo (int a)
+{
+  return a + 10;
+}