[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit
Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/libc/glibc/glibc-2.22/elf/restest1.c b/ap/libc/glibc/glibc-2.22/elf/restest1.c
new file mode 100644
index 0000000..eb5aeca
--- /dev/null
+++ b/ap/libc/glibc/glibc-2.22/elf/restest1.c
@@ -0,0 +1,57 @@
+#include <dlfcn.h>
+#include <error.h>
+#include <mcheck.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main (void)
+{
+ void *h1;
+ int (*fp1) (int);
+ void *h2;
+ int (*fp2) (int);
+ int res1;
+ int res2;
+
+ mtrace ();
+
+ 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);
+
+ if (dlclose (h1) != 0)
+ error (EXIT_FAILURE, 0, "cannot close testobj1.so: %s\n", dlerror ());
+ if (dlclose (h2) != 0)
+ error (EXIT_FAILURE, 0, "cannot close testobj1_1.so: %s\n", dlerror ());
+
+ return res1 != 42 || res2 != 72;
+}
+
+
+extern int foo (int a);
+int
+foo (int a)
+{
+ return a + 10;
+}