Gilles Chanteperdrix wrote: > 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. > > Yes, that was the problem. What did you change? Can you explain the why to me? > > However, another problem, should not the __thread variables be given the > weak attribute too? If a native thread tries to use a pthread mutex, I > want pthread_mutex_lock to obtain the current xnhandle_t set by the > native skin, not an inexistant one that should have been set by the > posix skin but obviously has not. > Yes, true. Please commit a fix as you are already patching. Jan