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

Reply via email to