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

Søren Sandmann sandmann at cs.au.dk
Sun Jan 13 02:20:08 PST 2013


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.


Søren


More information about the Pixman mailing list