Jan Kiszka wrote: > Gilles Chanteperdrix wrote: >> Jan Kiszka wrote: >>> Gilles Chanteperdrix wrote: >>>> Jan Kiszka wrote: >>>>> Gilles Chanteperdrix wrote: >>>>>> Jan Kiszka wrote: >>>>>>> Gilles Chanteperdrix wrote: >>>>>>>> Jan Kiszka wrote: >>>>>>>>> Gilles Chanteperdrix wrote: >>>>>>>>>> GIT version control wrote: >>>>>>>>>>> Module: xenomai-jki >>>>>>>>>>> Branch: for-upstream >>>>>>>>>>> Commit: 6b40653e9c3c4a2433bb4e91344fc378eb860f75 >>>>>>>>>>> URL: >>>>>>>>>>> http://git.xenomai.org/?p=xenomai-jki.git;a=commit;h=6b40653e9c3c4a2433bb4e91344fc378eb860f75 >>>>>>>>>>> >>>>>>>>>>> Author: Jan Kiszka <jan.kis...@siemens.com> >>>>>>>>>>> Date: Wed Feb 10 13:24:29 2010 +0100 >>>>>>>>>>> >>>>>>>>>>> Make xnarch_init_timeconv an uninlined weak function >>>>>>>>>>> >>>>>>>>>>> Otherwise the wrong set of time conversion variables might get >>>>>>>>>>> initialized when using > 1 skin libraries. >>>>>>>>>> If that would be possible, then it is the conversion variables which >>>>>>>>>> should made be weak, not the function. >>>>>>>>>> >>>>>>>>>> The way I see it, the posix and native skins currently get a >>>>>>>>>> different >>>>>>>>>> set of variables and functions, which works, but with your change, >>>>>>>>>> since >>>>>>>>>> there is only one function, only one set of variable gets >>>>>>>>>> initialized by >>>>>>>>>> the two function calls. And one skin just broke. >>>>>>>>>> >>>>>>>>>> Or am I missing something? Does the patch fix a problem you really >>>>>>>>>> had? >>>>>>>>> Frankly, I wasn't able to test in the field yet as replacing the libs >>>>>>>>> there is non-trivial. But I was able to observe that only one set of >>>>>>>>> functions is used - which is logical considering the weak marks. And >>>>>>>>> this breaks due to the static inline initialization. >>>>>>>>> >>>>>>>>> However, let's mark both functions and variables weak to fix the issue >>>>>>>>> and avoid leaving unused variables around. Will update my patch in a >>>>>>>>> minute. >>>>>>>> Ok. I am reverting this patch until you provide me with another >>>>>>>> solution. It causes latency to segfault purely and simply at startup on >>>>>>>> my dual PIII. >>>>>>>> >>>>>>> Cannot reproduce yet. Do you have a backtrace? >>>>>> No. But the problem is probably the same as the one signaled by Henri, >>>>>> a misplaced weak directive ending up in a symbol with no address at all. >>>>>> Since the current situation works, I am going to wait for the "clean" >>>>>> fix which puts some code/data in the src/skins/common directory. >>>>>> >>>>> Find it in my tree. But it's not yet well tested. >>>> I do not like it either. Functions which are in src/skins/common should >>>> still be weak, since this lib is included in all the skins libraries. >>> Those functions are now in libxeno_common only, so I see no point in >>> allowing them to be overloaded. >> Yes, but libxeno_common is included in libpthread_rt.so and >> libnative.so. So, if you link with both libraries, you get >> libxeno_common twice. >> > > Do we link libxeno_common statically? Otherwise, this conflict is not > logical to me. Also, there are other symbols in bind.c that are non-weak.
libxeno_common is a "convenience library", which means that when libpthread_rt.so is assembled, the object files from libxeno_common are included. I guess the loader eliminates the duplicates. -- Gilles. _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core