> >> [EMAIL PROTECTED] wrote: > >>> I did so and called, within the library, every > >> posix_rt-function with > >>> the prefix __wrap_ : e.g. __wrap_shm_open then I compiled my > >>> application, which does not use any Xenomai-function, and > linked it > >>> with pthread_rt an rt (-lpthread_rt -lrt) and my new > Xenomai-library > >>> (linking without any wrapping defined). Linking and > >> compiling did not > >>> produce any error. But, when I call a function in my > library, which > >>> in turn calls __wrap_shm_open, then shm_open fails. When I link my > >>> application with wrapping (as provided by the XENO_CONFIG-script) > >>> then everything is fine. Do you have an explanation for > >> this behavior > >>> or even better a solution ? > >> __wrap_shm_open only works if you have the > CONFIG_XENO_OPT_POSIX_SHM > >> option enabled. Is it enabled? > > > > yes it is : > > CONFIG_XENO_OPT_POSIX_SHM=y > > otherwise, I think, my application linked with wrappings > defined wouldn´t work ? But it does. > > > >> Note that xenomai posix skin shm support > >> is mainly useful for sharing memory between kernel and > >> user-space. > > O.k., I just want to share SHM between applications. What > SHM construct should I use instead ? > > > >> If it is enabled, then please tell us what is the value of > errno when > >> __wrap_shm_open fails. > >> > > > > shm_open fails. errno=2 > > shm_open fails : : No such file or directory > > > > I don´t know what this should mean ?? > > Well, it means that the shared memory does not exist.
I am quite shure that it exist. It is created by an other process. Is there a /proc-entry or something else which lists existing shared memories ? > > > I call shm_open in the following way : > > #define LOGSHMNAME "/var/logshm" > > oflags=O_RDWR; > > *shmfd = shm_open(LOGSHMNAME, oflags, 0); > > a shm name should contain one slash at the beginning and no > other slash, > for best portability. As I expected, reducing the number of slashes to one does not change the behavior. > If you want to create a shared memory, you should pass the > O_CREAT flag. As mentioned above, an other process creates the shared memory. What I still don´t understand is, what influence the wrapper defines have on linking. With wrappers : aplication works fine. Without wrappers : application does not work !? Roderik Achtung: Neue E-Mail-Adresse! Attention: New e-mail-address! [EMAIL PROTECTED] -------------------------------------------------------- manroland AG Vorsitzender des Aufsichtsrates: Hanno C. Fiedler Vorstand: Gerd Finkbeiner (Vorsitzender), Dr. Ingo Koch, Dr. Markus Rall, Paul Steidle Sitz der Gesellschaft: Offenbach am Main, Registergericht: Amtsgericht Offenbach HRB-Nr. 42592 USt-Ident-Nr. DE 250200933 _______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
