]> git.ipfire.org Git - thirdparty/glibc.git/blame - elf/nextmod1.c
Merge branch release/2.28/master into ibm/2.28/master
[thirdparty/glibc.git] / elf / nextmod1.c
CommitLineData
917fd061
UD
1#include <dlfcn.h>
2
5c80f57c
AJ
3extern int successful_rtld_next_test (void);
4extern void *failing_rtld_next_use (void);
5
e6ea9c0d
UD
6int nextmod1_dummy_var;
7
917fd061
UD
8int
9successful_rtld_next_test (void)
10{
11 int (*fp) (void);
12
13 /* Get the next function... */
14 fp = (int (*) (void)) dlsym (RTLD_NEXT, __FUNCTION__);
15
16 /* ...and simply call it. */
17 return fp ();
18}
19
20
21void *
22failing_rtld_next_use (void)
23{
e6ea9c0d
UD
24 void *ret = dlsym (RTLD_NEXT, __FUNCTION__);
25
26 /* Ensure we are not tail call optimized, because then RTLD_NEXT
27 might return this function. */
28 ++nextmod1_dummy_var;
29 return ret;
917fd061 30}