summary refs log tree commit diff
path: root/elf/circleload1.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-07-17 00:34:35 +0000
committerUlrich Drepper <drepper@redhat.com>2002-07-17 00:34:35 +0000
commit11fa51b8f64823ae4acb844d782540d72e130f40 (patch)
tree1c046af07c67ad58b6239473abc85ecceae9e65b /elf/circleload1.c
parentd747a0a564d522ab31944eac60e923e4596b3684 (diff)
downloadglibc-11fa51b8f64823ae4acb844d782540d72e130f40.tar.gz
glibc-11fa51b8f64823ae4acb844d782540d72e130f40.tar.xz
glibc-11fa51b8f64823ae4acb844d782540d72e130f40.zip
Update.
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): Likewise.
	(circlemod3a): A new function.
Diffstat (limited to 'elf/circleload1.c')
-rw-r--r--elf/circleload1.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/elf/circleload1.c b/elf/circleload1.c
index 60f8fb5bad..7ac101a799 100644
--- a/elf/circleload1.c
+++ b/elf/circleload1.c
@@ -102,6 +102,24 @@ load_dso (const char **loading, int undef, int flag)
 	  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 ());
+	    }
+	  else if (func () != 3)
+	    {
+	      ++errors;
+	      printf ("ERRORS: function \"circlemod1\" returned wrong result\n");
+	    }
+	}
+
       loaded[0] = loading [0];
       loaded[1] = loading [1];
       loaded[2] = loading [2];