From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4B732487.50103@domain.hid> Date: Wed, 10 Feb 2010 22:26:31 +0100 From: Gilles Chanteperdrix MIME-Version: 1.0 References: <4B72A7E2.5020001@domain.hid> <4B72A9DA.1090104@domain.hid> <4B730A04.9040908@domain.hid> <4B731608.6010803@domain.hid> <4B73180C.6070301@domain.hid> <4B73207C.6020400@domain.hid> <4B73218A.9080306@domain.hid> <4B7323D5.1040804@domain.hid> In-Reply-To: <4B7323D5.1040804@domain.hid> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-core] [Xenomai-git] Jan Kiszka : Make xnarch_init_timeconv an uninlined weak function List-Id: Xenomai life and development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: Xenomai core 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 >>>>>>>>> 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. -- Gilles.