[Pixman] [PATCH] Fix thread safety on mingw-w64 and clang
Siarhei Siamashka
siarhei.siamashka at gmail.com
Sat Dec 8 06:59:57 PST 2012
On Sun, 02 Dec 2012 22:36:52 -0500
Benjamin Gilbert <bgilbert at cs.cmu.edu> wrote:
> This is a slightly cleaner fix to the preference-order portion of bug
> 57591. It does not attempt to detect when __declspec(thread) is being
> ignored by the compiler, so is insufficient in general, but it should
> fix the problem for the compilers currently under discussion.
>
> --Benjamin Gilbert
>
>
> 8<---------
>
> After finding a working TLS storage class specifier, configure was
> continuing to test other candidates. This caused it to prefer
> __declspec(thread) over __thread. However, __declspec(thread) is
> ignored with a warning by mingw-w64 [1] and silently ignored by clang [2].
> The resulting binary behaved as if PIXMAN_NO_TLS was defined.
>
> Bug introduced by a069da6c.
>
> [1] https://bugs.freedesktop.org/show_bug.cgi?id=57591
> [2] http://lists.freedesktop.org/archives/pixman/2012-October/002320.html
> ---
> configure.ac | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/configure.ac b/configure.ac
> index 45b709d..81f068d 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -860,7 +860,7 @@ AC_CACHE_VAL(ac_cv_tls, [
> #error OpenBSD has broken __thread support
> #endif
>
> -int $kw test;], [], ac_cv_tls=$kw)
> +int $kw test;], [], [ac_cv_tls=$kw; break])
> done
> ])
> AC_MSG_RESULT($ac_cv_tls)
Thanks for the patch. Pushed it to the master branch in pixman git.
If we are up to releasing pixman-0.28.2 with the accumulated bugfixes,
this patch is a good candidate.
--
Best regards,
Siarhei Siamashka
More information about the Pixman
mailing list