On 01/13/13 22:37, Juan Francisco Cantero Hurtado wrote:
On 01/13/13 11:20, Søren Sandmann wrote:
Søren Sandmann <[email protected]> writes:

Juan Francisco Cantero Hurtado <[email protected]> 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.



_______________________________________________
Pixman mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pixman

Reply via email to