From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Thu, 30 Aug 2018 02:17:36 -0500 (CDT) From: Per Oberg Message-ID: <1401452424.613986.1535613456917.JavaMail.zimbra@wolfram.com> In-Reply-To: <8992f6ad-6627-cb28-32f8-a3e890567e3a@xenomai.org> References: <368012593.481146.1535555747324.JavaMail.zimbra@wolfram.com> <8992f6ad-6627-cb28-32f8-a3e890567e3a@xenomai.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Xenomai] Importance of missing modechk/cobolt.wrappers List-Id: Discussions about the Xenomai project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xenomai ----- Den 29 aug 2018, p=C3=A5 kl 18:01, Philippe Gerum rpm@xenomai.org skr= ev: > On 08/29/2018 05:15 PM, Per Oberg wrote: > > Hello all >> I'm working with a Yocto build of xenomai. I have compiled a sdk for bui= lding on >> a build-host but I am doing something wrong because I get the wrong path= to >> modechk.wrappers and cobalt.wrappers. I could probably fix this but I ju= st want > > to know whether this is a real problem or not. > > When I run xeno-config i get : > > Xenomai: wrappers cannot be read from /usr/lib/modechk.wrappers > > Xenomai: wrappers cannot be read from /usr/lib/cobalt.wrappers >> The contents of the wrapper files are listed below for completeness. It = seems >> like a lot of stuff that is not getting wrapped when these files are mis= sing, >> and that would mean that I am missing a lot of wrapping and that I defin= itely > > need to fix it. Or is is just a warning? > It's an important warning, your build may be broken. This means that > wrapping failed for any executable depending on it, which retrieved its > linker flags from xeno-config --ldflags. Basically, all built-in Xenomai > apps (e.g. latency, switchtest), and any user application depending on > xeno-config for retrieving those flags. > > How do I know if the final software is wrapping stuff the way I want? > Dumping the executable's namelist should always refer to the wrapper for > any routine listed in the wrapper files. e.g. > $ nm -u $executable | grep 'U __wrap_' > U __wrap_clock_gettime > U __wrap_close > U __wrap_fclose > U __wrap_fprintf > U __wrap_fputc > U __wrap_fputs > U __wrap_free > U __wrap_fwrite > U __wrap_ioctl > U __wrap_kill > U __wrap_malloc > U __wrap_open > U __wrap_printf > U __wrap_pthread_attr_init > U __wrap_pthread_create > U __wrap_pthread_join > U __wrap_pthread_setname_np > U __wrap_puts > U __wrap_read > U __wrap_sem_close > U __wrap_sem_open > U __wrap_sem_post > U __wrap_sem_unlink > U __wrap_sem_wait > U __wrap_time > U __wrap_timerfd_create > U __wrap_timerfd_settime > U __wrap_write > -- > Philippe. Thanks for that, I suspected this was the case.=20 I did do some checking on the built-in Xenomai apps and they are compiled u= sing the right flags. This does not puzzle me because we are usually able t= o trust the magic of the build system for solving this. (Meaning: Since the= re are no libraries, linker files, or other dependencies in the "prefix" di= rectories during the first build the tools must all be referring to the bui= ld-dir instead of the prefix destination.) In my case, since I'm building for a target with no build tools installed (= which I assume would be quite normal for a lot of people doing real time st= uff) I need to prepare some kind of SDK. For the X86 platform I can install= Xenomai on my laptop, and have the exact same setup on the target. But I r= ather not have it this way. Is there some kind of special flag I can use du= ring build of the SDK or how do people generally go about this? Perhaps this is more of a Yocto-question or question of build-systems in ge= neral but I guess Xenomai-users should be quite good at setting these thing= s up. Thanks Per =C3=96berg=20