Blame elf/tst-deep1.c

Packit 6c4009
#include <dlfcn.h>
Packit 6c4009
#include <stdio.h>
Packit 6c4009
Packit 6c4009
int
Packit 6c4009
xyzzy (void)
Packit 6c4009
{
Packit 6c4009
  printf ("%s:%s\n", __FILE__, __func__);
Packit 6c4009
  return 21;
Packit 6c4009
}
Packit 6c4009
Packit 6c4009
int
Packit 6c4009
back (void)
Packit 6c4009
{
Packit 6c4009
  printf ("%s:%s\n", __FILE__, __func__);
Packit 6c4009
  return 1;
Packit 6c4009
}
Packit 6c4009
Packit 6c4009
extern int foo (void);
Packit 6c4009
Packit 6c4009
static int
Packit 6c4009
do_test (void)
Packit 6c4009
{
Packit 6c4009
  void *p = dlopen ("$ORIGIN/tst-deep1mod2.so", RTLD_LAZY|RTLD_DEEPBIND);
Packit 6c4009
Packit 6c4009
  int (*f) (void) = dlsym (p, "bar");
Packit 6c4009
  if (f == NULL)
Packit 6c4009
    {
Packit 6c4009
      puts (dlerror ());
Packit 6c4009
      return 1;
Packit 6c4009
    }
Packit 6c4009
Packit 6c4009
  return foo () + f ();
Packit 6c4009
}
Packit 6c4009
Packit 6c4009
#include <support/test-driver.c>