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

Juan Francisco Cantero Hurtado iam at juanfra.info
Mon Mar 4 11:43:33 PST 2013


On 03/02/13 03:25, Juan Francisco Cantero Hurtado wrote:
> 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.

I forgot add that disable SSE2 in pixman isn't a good fix for OpenBSD 
because only one program crashes with SSE2 enabled on i386 (it works 
amd64). Can you give me any guidance for help you with the fix of the 
bug?. If you suspect is a bug in OpenBSD, a little test code would be 
great because I could show the problem to OpenBSD devs.

Thanks.



More information about the Pixman mailing list