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:
>>>>>>>>> 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.
>>> Yes, but libxeno_common is included in and
>>> 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
> is assembled, the object files from libxeno_common are
> included.

BTW, what speaks against making it a dynamic library?

> I guess the loader eliminates the duplicates.

It has to. For the same reason, we should be able to clean up
skins/common/current.c now.


Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux

Xenomai-core mailing list

Reply via email to