xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/testsuite/gdb.base/info-shared.c (revision bdc22b2e01993381dcefeff2bc9b56ca75a4235c)
1 /* Copyright 2012-2016 Free Software Foundation, Inc.
2 
3    This program is free software; you can redistribute it and/or modify
4    it under the terms of the GNU General Public License as published by
5    the Free Software Foundation; either version 3 of the License, or
6    (at your option) any later version.
7 
8    This program is distributed in the hope that it will be useful,
9    but WITHOUT ANY WARRANTY; without even the implied warranty of
10    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11    GNU General Public License for more details.
12 
13    You should have received a copy of the GNU General Public License
14    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
15 
16 #include <dlfcn.h>
17 #include <assert.h>
18 #include <stddef.h>
19 
20 void
21 stop (void)
22 {
23 }
24 
25 int
26 main (void)
27 {
28   void *handle1, *handle2;
29   void (*func)(int);
30 
31   handle1 = dlopen (SHLIB1_NAME, RTLD_LAZY);
32   assert (handle1 != NULL);
33   stop ();
34 
35   handle2 = dlopen (SHLIB2_NAME, RTLD_LAZY);
36   assert (handle2 != NULL);
37   stop ();
38 
39   func = (void (*)(int)) dlsym (handle1, "foo");
40   func (1);
41 
42   func = (void (*)(int)) dlsym (handle2, "bar");
43   func (2);
44 
45   dlclose (handle1);
46   stop ();
47 
48   dlclose (handle2);
49   stop ();
50 
51   return 0;
52 }
53