Blame elf/tst-tlsmod2.c

Packit Service 82fcde
#include <stdio.h>
Packit Service 82fcde
Packit Service 82fcde
#include "tls-macros.h"
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
COMMON_INT_DEF(foo);
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
int
Packit Service 82fcde
in_dso (int n, int *caller_foop)
Packit Service 82fcde
{
Packit Service 82fcde
  int *foop;
Packit Service 82fcde
  int result = 0;
Packit Service 82fcde
Packit Service 82fcde
  puts ("foo");			/* Make sure PLT is used before macros.  */
Packit Service 82fcde
  asm ("" ::: "memory");
Packit Service 82fcde
Packit Service 82fcde
  foop = TLS_GD (foo);
Packit Service 82fcde
Packit Service 82fcde
  if (caller_foop != NULL && foop != caller_foop)
Packit Service 82fcde
    {
Packit Service 82fcde
      printf ("callers address of foo differs: %p vs %p\n", caller_foop, foop);
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  else if (*foop != n)
Packit Service 82fcde
    {
Packit Service 82fcde
      printf ("foo != %d\n", n);
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  *foop = 16;
Packit Service 82fcde
Packit Service 82fcde
  return result;
Packit Service 82fcde
}