]> Savannah Git Hosting - gnulib.git/commit
threads-h: Define 'thread_local' if and only it actually works.
authorBruno Haible <bruno@clisp.org>
Fri, 21 Jun 2019 02:35:41 +0000 (04:35 +0200)
committerBruno Haible <bruno@clisp.org>
Fri, 21 Jun 2019 09:17:47 +0000 (11:17 +0200)
commita12c7fd184e8a8251b1a3e9c0f681873995ec204
tree7cdfc5f60e90dc73697bfc970e4dce7e62b850f6
parentb6293339816d7df16bb4d31d2ec1c1e5a79f976e
threads-h: Define 'thread_local' if and only it actually works.

* m4/threads.m4 (gl_THREAD_LOCAL_DEFINITION): New macro.
(gl_THREADS_H): Define _Thread_local to __thread also for ARM C, IBM C,
Oracle Solaris Studio C. Compile a simple program, to see whether
_Thread_local basically works. Set HAVE_THREAD_LOCAL and LIBTHREADLOCAL.
(gl_THREADS_H_DEFAULTS): Initialize HAVE_THREAD_LOCAL.
* lib/threads.in.h (thread_local): Undefine if it does not work.
* modules/threads-h (Makefile.am): Substitute HAVE_THREAD_LOCAL.
(Link): Mention LIBTHREADLOCAL.
* tests/test-threads.c: Don't check that thread_local is defined.
* tests/test-thread_local.c: New file.
* modules/threads-h-tests (Files): Add it and macros.h.
(Depends-on): Add thrd and stdint.
(configure.ac): Test whether 'alarm' is declared.
(Makefile.am): Arrange to build and link test-thread_local.
* doc/posix-headers/threads.texi: Mention the platforms that don't
support 'thread_local'.
ChangeLog
doc/posix-headers/threads.texi
lib/threads.in.h
m4/threads.m4
modules/threads-h
modules/threads-h-tests
tests/test-thread_local.c [new file with mode: 0644]
tests/test-threads.c