From 11fa51b8f64823ae4acb844d782540d72e130f40 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 17 Jul 2002 00:34:35 +0000 Subject: [PATCH] Update. 2002-07-01 H.J. Lu * 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. --- ChangeLog | 11 +++++++++++ elf/circleload1.c | 18 ++++++++++++++++++ elf/circlemod1.c | 6 +++--- elf/circlemod2.c | 6 +++--- elf/circlemod2a.c | 6 +++--- elf/circlemod3.c | 15 ++++++++++----- 6 files changed, 48 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 556dc4a..2e58fcc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2002-07-01 H.J. Lu + + * 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. + 2002-07-16 Ulrich Drepper * catgets/tst-catgets.c (main): Don't expect results for diff --git a/elf/circleload1.c b/elf/circleload1.c index 60f8fb5..7ac101a 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]; diff --git a/elf/circlemod1.c b/elf/circlemod1.c index 6b61a4d..933ccd3 100644 --- a/elf/circlemod1.c +++ b/elf/circlemod1.c @@ -1,7 +1,7 @@ -extern void circlemod2 (void); +extern int circlemod2 (void); -void +int circlemod1 (void) { - circlemod2 (); + return circlemod2 (); } diff --git a/elf/circlemod2.c b/elf/circlemod2.c index 1c67abc..ed8c117 100644 --- a/elf/circlemod2.c +++ b/elf/circlemod2.c @@ -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 (); } diff --git a/elf/circlemod2a.c b/elf/circlemod2a.c index f8664a9..dc6410b 100644 --- a/elf/circlemod2a.c +++ b/elf/circlemod2a.c @@ -1,7 +1,7 @@ -extern void circlemod3 (void); +extern int circlemod3 (void); -void +int circlemod2 (void) { - circlemod3 (); + return circlemod3 (); } diff --git a/elf/circlemod3.c b/elf/circlemod3.c index 6ac00a0..8d16fe6 100644 --- a/elf/circlemod3.c +++ b/elf/circlemod3.c @@ -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 (); } -- 2.7.4