PATCH: Add a dlsym test in circular dependency test
H. J. Lu
hjl@lucon.org
Mon Jul 1 09:08:00 GMT 2002
This adds a dlsym test in circular dependency test.
H.J.
-------------- next part --------------
2002-07-01 H.J. Lu <hjl@gnu.org>
* elf/circleload1.c (load_dso): Call "circlemod1" and check
return value.
* elf/circlemod1.c (circlemod1): Return int.
* elf/circlemod2.c (circlemod2); Likewise.
* elf/circlemod2a.c (circlemod2): Likewise.
* elf/circlemod3.c (circlemod3.c): Likewise.
(circlemod3a): A new function.
--- elf/circleload1.c.dlsym Sun Jun 30 00:14:39 2002
+++ elf/circleload1.c Mon Jul 1 09:00:58 2002
@@ -102,6 +102,25 @@ load_dso (const char **loading, int unde
printf ("ERRORS: dlopen shouldn't work for RTLD_NOW\n");
}
+ if (!undef)
+ {
+ int (*func) (void);
+
+ func = dlsym (obj, "circlemod1");
+ if (func == NULL)
+ {
+ ++errors;
+ printf ("ERRORS: cannot get address of \"circlemod1\": %s\n",
+ dlerror ());
+ }
+
+ if (func () != 3)
+ {
+ ++errors;
+ printf ("ERRORS: function \"circlemod1\" returned wrong result\n");
+ }
+ }
+
loaded[0] = loading [0];
loaded[1] = loading [1];
loaded[2] = loading [2];
--- elf/circlemod1.c.dlsym Sun Jun 30 00:14:58 2002
+++ elf/circlemod1.c Mon Jul 1 08:55:20 2002
@@ -1,7 +1,7 @@
-extern void circlemod2 (void);
+extern int circlemod2 (void);
-void
+int
circlemod1 (void)
{
- circlemod2 ();
+ return circlemod2 ();
}
--- elf/circlemod2.c.dlsym Sun Jun 30 00:14:58 2002
+++ elf/circlemod2.c Mon Jul 1 08:55:46 2002
@@ -1,9 +1,9 @@
extern void circlemod2_undefined (void);
-extern void circlemod3 (void);
+extern int circlemod3 (void);
-void
+int
circlemod2 (void)
{
circlemod2_undefined ();
- circlemod3 ();
+ return circlemod3 ();
}
--- elf/circlemod2a.c.dlsym Sun Jun 30 00:14:58 2002
+++ elf/circlemod2a.c Mon Jul 1 08:56:02 2002
@@ -1,7 +1,7 @@
-extern void circlemod3 (void);
+extern int circlemod3 (void);
-void
+int
circlemod2 (void)
{
- circlemod3 ();
+ return circlemod3 ();
}
--- elf/circlemod3.c.dlsym Sun Jun 30 00:14:58 2002
+++ elf/circlemod3.c Mon Jul 1 08:58:29 2002
@@ -1,9 +1,14 @@
-extern void circlemod1 (void);
-extern void circlemod2 (void);
+extern int circlemod1 (void);
+extern int circlemod2 (void);
-void
+int
circlemod3 (void)
{
- circlemod1 ();
- circlemod2 ();
+ return 3;
+}
+
+int
+circlemod3a (void)
+{
+ return circlemod1 () + circlemod2 ();
}
More information about the Libc-alpha
mailing list