diff options
| author | "Steven J. Hill" <sjhill@realitydiluted.com> | 2005-10-30 04:33:48 +0000 |
|---|---|---|
| committer | "Steven J. Hill" <sjhill@realitydiluted.com> | 2005-10-30 04:33:48 +0000 |
| commit | 4fc0cd60dfa59fbd89f9f6737db69d3794701dfc (patch) | |
| tree | 53b0181c20035ed05aa5a9def6dad0e7a50dcc7f /test/tls/tst-tlsmod14a.c | |
| parent | c82f7be400838c99fdbf7635610f799a1154ccdd (diff) | |
| download | uClibc-alpine-4fc0cd60dfa59fbd89f9f6737db69d3794701dfc.tar.bz2 uClibc-alpine-4fc0cd60dfa59fbd89f9f6737db69d3794701dfc.tar.xz | |
Add TLS test suite for testing TLS relocation functionality in the dynamic loader. Make sure your read the README file before asking any questions, and then read it again.
Diffstat (limited to 'test/tls/tst-tlsmod14a.c')
| -rw-r--r-- | test/tls/tst-tlsmod14a.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/tls/tst-tlsmod14a.c b/test/tls/tst-tlsmod14a.c new file mode 100644 index 000000000..0bb393d9c --- /dev/null +++ b/test/tls/tst-tlsmod14a.c @@ -0,0 +1,41 @@ +#include <stdint.h> +#include <stdio.h> + +#include <tls.h> + +#if USE_TLS && HAVE___THREAD + +#define AL 4096 +struct foo +{ + int i; +} __attribute ((aligned (AL))); + +static __thread struct foo f; +static struct foo g; + + +#ifndef FCT +# define FCT in_dso1 +#endif + + +int +FCT (void) +{ + puts (__func__); + + int result = 0; + + int fail = (((uintptr_t) &f) & (AL - 1)) != 0; + printf ("&f = %p %s\n", &f, fail ? "FAIL" : "OK"); + result |= fail; + + fail = (((uintptr_t) &g) & (AL - 1)) != 0; + printf ("&g = %p %s\n", &g, fail ? "FAIL" : "OK"); + result |= fail; + + return result; +} + +#endif |
