From 805d2e7d47affd899bd5103049fd154a0b2302c7 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 15 Aug 2000 08:23:49 +0000 Subject: Update. * elf/constload1.c: Call mtrace. Check return value of dlclose call. * elf/constload2.c: Add destructor to unload constload3. --- elf/constload1.c | 9 ++++++++- elf/constload2.c | 22 ++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) (limited to 'elf') 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 #include #include +#include #include 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 +#include +#include 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"); } -- cgit v1.1