[Pixman] [PATCH] glyphs: Check the return code from _pixman_implementation_lookup_composite()

Juan Francisco Cantero Hurtado iam at juanfra.info
Fri Mar 1 18:25:55 PST 2013


On 01/13/13 22:37, Juan Francisco Cantero Hurtado wrote:
> On 01/13/13 11:20, Søren Sandmann wrote:
>> Søren Sandmann <sandmann at cs.au.dk> writes:
>>
>>> Juan Francisco Cantero Hurtado <iam at juanfra.info> writes:
>>>
>>>> OpenBSD and gcc 4.2 (the default compiler) don't support thread local
>>>> storage.
>>>
>>> In that case, it should fall back to pthread_setspecific(). Can you try
>>> putting in a #error above "#include <pthread.h>" in pixman-compiler.h
>>> and see if compilation fails.
>>>
>>> It's possible there is a bug in the pthread_setspecific() fallback in
>>> pixman, but if so, I couldn't reproduce it on Linux by forcing
>>> pthread_setspecific() and running the test suite.
>>>
>>> Does the test suite pass for you if you run "make check"?
>>
>> I found this thread:
>>
>>
>> https://groups.google.com/forum/?fromgroups=#!topic/comp.unix.bsd.openbsd.misc/y-qciyc6wNY
>>
>>
>> in which Marc Espie says that pthreads on OpenBSD 4.2 is a purely
>> userspace thread library.
>>
>> Since the backtrace you posted included multiple threads, I'm guessing
>> those are kernel threads, which means pthread_setspecific() can't work
>> on them.
>>
>> If this diagnosis is right, then pixman currently can't support threads
>> on OpenBSD 4.2. Support could potentially be added, but it would have to
>> be done (and maintained) by someone who understands threads on OpenBSD.
>>
>
> OpenBSD changed from user-level to kernel-level threads in the last
> release (5.2). I'll mail to the maintainer of pixman on OpenBSD, my
> knowledge of OpenBSD internals isn't enough for help you with the bug.
>

I've been doing some tests the last month. The error occur in pixman 
0.28 and 0.29.2 when SSE is enabled. If I disable SSE in the configure 
script of pixman 0.28, all works.





More information about the Pixman mailing list