diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-08-15 08:23:49 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-08-15 08:23:49 +0000 |
commit | 805d2e7d47affd899bd5103049fd154a0b2302c7 (patch) | |
tree | d31a1e96b9d3e7a167c590a185a4a6edd0b5b7ef /elf | |
parent | fc7f617d300f075fe28567391b10b4c5d64be46f (diff) | |
download | glibc-805d2e7d47affd899bd5103049fd154a0b2302c7.zip glibc-805d2e7d47affd899bd5103049fd154a0b2302c7.tar.gz glibc-805d2e7d47affd899bd5103049fd154a0b2302c7.tar.bz2 |
Update.
* elf/constload1.c: Call mtrace. Check return value of dlclose call.
* elf/constload2.c: Add destructor to unload constload3.
Diffstat (limited to 'elf')
-rw-r--r-- | elf/constload1.c | 9 | ||||
-rw-r--r-- | elf/constload2.c | 22 |
2 files changed, 30 insertions, 1 deletions
diff --git a/elf/constload1.c b/elf/constload1.c index 1435284..4640b77 100644 --- a/elf/constload1.c +++ b/elf/constload1.c @@ -1,6 +1,7 @@ #include <dlfcn.h> #include <errno.h> #include <error.h> +#include <mcheck.h> #include <stdlib.h> int @@ -10,11 +11,17 @@ main (void) void *h; int ret; + mtrace (); + h = dlopen ("constload2.so", RTLD_LAZY | RTLD_GLOBAL); if (h == NULL) error (EXIT_FAILURE, errno, "cannot load module \"constload2.so\""); foo = dlsym (h, "foo"); ret = foo (); - dlclose (h); + if (dlclose (h) != 0) + { + puts ("failed to close"); + exit (EXIT_FAILURE); + } return ret; } diff --git a/elf/constload2.c b/elf/constload2.c index f109838..d20e6dc 100644 --- a/elf/constload2.c +++ b/elf/constload2.c @@ -1,4 +1,6 @@ #include <dlfcn.h> +#include <stdio.h> +#include <stdlib.h> extern int bar (void); @@ -21,4 +23,24 @@ __attribute__ ((__constructor__)) init (void) { h = dlopen ("constload3.so", RTLD_GLOBAL | RTLD_LAZY); + if (h == NULL) + { + puts ("failed to load constload3"); + exit (1); + } + else + puts ("succeeded loading constload3"); +} + +static void +__attribute__ ((__destructor__)) +fini (void) +{ + if (dlclose (h) != 0) + { + puts ("failed to unload constload3"); + exit (1); + } + else + puts ("succeeded unloading constload3"); } |