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:    
>>>>>>>> Author: Jan Kiszka <>
>>>>>>>> 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.

> xnarch_init_timeconv does not need to be exported, it may only be called
> in common (bind.c, or timeconv.c, or something like that).

If xnarch_init_timeconv shall be executed unconditionally, I will
happily make it static inline again and call it from xeno_bind_skin_opt
(which would imply retrieving sysinfo as well).

> xnarch_tsc_to_ns/ns_to_tsc have no reason to be put in arith.h,
> timeconv.h was about just right. Maybe create asm-generic/timeconv.h?

Makes sense.


Attachment: signature.asc
Description: OpenPGP digital signature

Xenomai-core mailing list

Reply via email to