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. Jan
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core