Gilles Chanteperdrix wrote: > Jan Kiszka wrote: >> Gilles Chanteperdrix wrote: >>> Gilles Chanteperdrix wrote: >>>> Jan Kiszka wrote: >>>>> Gilles Chanteperdrix wrote: >>>>>> I get this warning when compiling trunk: >>>>>> >>>>>> checking for __thread... rm: cannot remove `conftest1.dir': Is a directory >>>>>> yes >>>>>> >>>>> That simple, it's a typo in this line: >>>>> >>>>> http://www.rts.uni-hannover.de/xenomai/lxr/source/configure.in?v=SVN-trunk#394 >>>>> >>>>> Also, that rm should be done outside the if block to play safe. >>>> Ok. But once this is fixed, I get a segmentation fault with __thread on >>>> ARM in rt_task_trampoline. I am currently testing the SIGWINCH thing, >>>> and if __thread is disabled, there is no segfault. >>> If a #ifdef 0 xeno_set_current, there is no segfault. >>> >> Interesting. What about removing the initial-exec attributes? Is >> __thread otherwise know to work on your platform? > > Yes. This is a race condition, the real bug is, IMHO: > __native_self = *iargs->task; > When the segfault happens iargs->task is NULL. I suspect you are not > supposed to use iargs after the __native_task_create syscall. Don't see the race yet. iargs is provided by the trampoline creator, and with that one we synchronize with the barrier AFTER this access - or does the compiler some fancy reordering here? Jan