Gilles Chanteperdrix wrote: > Jan Kiszka wrote: >> Gilles Chanteperdrix wrote: >>> Jan Kiszka wrote: >>>> 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? >>> Because I guess iargs is no longer valid at this point. So, I saved the >>> task pointer and reused it. >>> >> Sorry, makes no sense to me: *iargs is on the stack of the >> rt_task_create caller, and that one is not expected to proceed until we >> issue __xn_sys_barrier. > > Well I am busy with the ARM FCSE now. Do you want my test case ? Yes, hoping that it triggers on x86 as well. And is toolchain independent. Jan