#include <dlfcn.h>
#include <stdio.h>


int call_puts;

static int
do_test (void)
{
  call_puts = 1;

  void *h1 = dlopen ("$ORIGIN/order2mod1.so", RTLD_LAZY | RTLD_GLOBAL);
  if (h1 == NULL)
    {
      puts ("cannot load order2mod1");
      return 1;
    }
  void *h2 = dlopen ("$ORIGIN/order2mod2.so", RTLD_LAZY);
  if (h2 == NULL)
    {
      puts ("cannot load order2mod2");
      return 1;
    }
  if (dlclose (h1) != 0)
    {
      puts ("dlclose order2mod1 failed");
      return 1;
    }
  if (dlclose (h2) != 0)
    {
      puts ("dlclose order2mod2 failed");
      return 1;
    }
  return 0;
}

#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"

static void
__attribute__ ((destructor))
fini (void)
{
  if (call_puts)
    puts ("5");
}
