| Index: gdb/testsuite/gdb.base/info-shared.c
|
| diff --git a/gdb/testsuite/gdb.cp/infcall-dlopen.cc b/gdb/testsuite/gdb.base/info-shared.c
|
| similarity index 59%
|
| copy from gdb/testsuite/gdb.cp/infcall-dlopen.cc
|
| copy to gdb/testsuite/gdb.base/info-shared.c
|
| index 024eb046c0dbd47a1e0015361f006961654e5376..194af22cb5d10267069a1841958fcf1238aa5af0 100644
|
| --- a/gdb/testsuite/gdb.cp/infcall-dlopen.cc
|
| +++ b/gdb/testsuite/gdb.base/info-shared.c
|
| @@ -1,6 +1,4 @@
|
| -/* This testcase is part of GDB, the GNU debugger.
|
| -
|
| - Copyright 2010-2012 Free Software Foundation, Inc.
|
| +/* Copyright 2012-2013 Free Software Foundation, Inc.
|
|
|
| This program is free software; you can redistribute it and/or modify
|
| it under the terms of the GNU General Public License as published by
|
| @@ -16,28 +14,39 @@
|
| along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
| #include <dlfcn.h>
|
| +#include <assert.h>
|
| #include <stddef.h>
|
|
|
| -static int
|
| -openlib (const char *filename)
|
| +void
|
| +stop (void)
|
| {
|
| - void *h = dlopen (filename, RTLD_LAZY);
|
| -
|
| - if (filename == NULL)
|
| - return 0;
|
| -
|
| - if (h == NULL)
|
| - return 0;
|
| - if (dlclose (h) != 0)
|
| - return 0;
|
| - return 1;
|
| }
|
|
|
| int
|
| main (void)
|
| {
|
| - /* Dummy call to get the function always compiled in. */
|
| - openlib (NULL);
|
| + void *handle1, *handle2;
|
| + void (*func)(int);
|
| +
|
| + handle1 = dlopen (SHLIB1_NAME, RTLD_LAZY);
|
| + assert (handle1 != NULL);
|
| + stop ();
|
| +
|
| + handle2 = dlopen (SHLIB2_NAME, RTLD_LAZY);
|
| + assert (handle2 != NULL);
|
| + stop ();
|
| +
|
| + func = (void (*)(int)) dlsym (handle1, "foo");
|
| + func (1);
|
| +
|
| + func = (void (*)(int)) dlsym (handle2, "bar");
|
| + func (2);
|
| +
|
| + dlclose (handle1);
|
| + stop ();
|
| +
|
| + dlclose (handle2);
|
| + stop ();
|
|
|
| return 0;
|
| }
|
|
|