Jan Kiszka wrote:
 > Gilles Chanteperdrix wrote:
 > > Jan Kiszka wrote:
 > >  > Hi,
 > >  > 
 > >  > I just tried to get the simulator from trunk built but failed here:
 > >  > 
 > >  > In file included from 
 > > ../../../../xenomai/sim/../include/posix/posix.h:29,
 > >  >                  from
 > >  > ../../../../xenomai/sim/../ksrc/skins/posix/internal.h:24,
 > >  >                  from
 > >  > ../../../../xenomai/sim/../ksrc/skins/posix/thread.h:23,
 > >  >                  from
 > >  > ../../../../xenomai/sim/../ksrc/skins/posix/sched.c:48:
 > >  > ../../../../xenomai/sim/../include/posix/pthread.h:246: conflicting
 > >  > types for `pthread_attr_getaffinity_np'
 > >  > /usr/include/pthread.h:383: previous declaration of
 > >  > `pthread_attr_getaffinity_np'
 > >  > ../../../../xenomai/sim/../include/posix/pthread.h:249: conflicting
 > >  > types for `pthread_attr_setaffinity_np'
 > >  > /usr/include/pthread.h:377: previous declaration of
 > >  > `pthread_attr_setaffinity_np'
 > >  > 
 > >  > Looks like glibc-2.4 (that one comes with my opensuse 10.1) now also
 > >  > knows get/setaffinity. Prototypes of glibc:
 > >  > 
 > >  > extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
 > >  >                                         size_t __cpusetsize,
 > >  >                                         __const cpu_set_t *__cpuset)
 > >  > __THROW;
 > >  > extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
 > >  >                                         size_t __cpusetsize,
 > >  >                                         cpu_set_t *__cpuset) __THROW;
 > >  > 
 > > 
 > > Could you try the attached patch ?
 > > 
 > 
 > Takes me further, now stops like this:
 > 
 > if ../../gcic/gcic -DHAVE_CONFIG_H -I.
 > -I../../../../xenomai/sim/skins/posix -I../../include  -D_GNU_SOURCE
 > -D__IN_XENO__ --gcic-backend=/usr/src/xenomai/inst//libexec/gcic
 > --skin-code  -I../../../../xenomai/sim/../ksrc/skins
 > -I../../../../xenomai/sim/../include
 > -I../../../../xenomai/sim/skins/posix/..   -g -MT timer.o -MD -MP -MF
 > ".deps/timer.Tpo" -c -o timer.o
 > ../../../../xenomai/sim/../ksrc/skins/posix/timer.c; \
 > then mv -f ".deps/timer.Tpo" ".deps/timer.Po"; else rm -f
 > ".deps/timer.Tpo"; exit 1; fi
 > In file included from /usr/include/sys/types.h:270,
 >                  from ../../../../xenomai/sim/../include/nucleus/types.h:32,
 >                  from ../../../../xenomai/sim/../include/nucleus/queue.h:24,
 >                  from ../../../../xenomai/sim/../include/nucleus/timer.h:23,
 >                  from
 > ../../../../xenomai/sim/../ksrc/skins/posix/timer.c:24:
 > /usr/include/bits/pthreadtypes.h:69: warning: unnamed struct/union that
 > defines no instances
 > ../../../../xenomai/sim/../ksrc/skins/posix/timer.c: In function
 > `pse51_timer_create':
 > ../../../../xenomai/sim/../ksrc/skins/posix/timer.c:186: warning:
 > assignment makes pointer from integer without a cast
 > ../../../../xenomai/sim/../ksrc/skins/posix/timer.c: In function
 > `pse51_timer_delete':
 > ../../../../xenomai/sim/../ksrc/skins/posix/timer.c:223: array subscript
 > is not an integer
 > ../../../../xenomai/sim/../ksrc/skins/posix/timer.c: In function
 > `pse51_timer_settime':
 > ../../../../xenomai/sim/../ksrc/skins/posix/timer.c:344: array subscript
 > is not an integer
 > ../../../../xenomai/sim/../ksrc/skins/posix/timer.c: In function
 > `pse51_timer_gettime':
 > ../../../../xenomai/sim/../ksrc/skins/posix/timer.c:437: array subscript
 > is not an integer
 > ../../../../xenomai/sim/../ksrc/skins/posix/timer.c: In function
 > `pse51_timer_getoverrun':
 > ../../../../xenomai/sim/../ksrc/skins/posix/timer.c:485: array subscript
 > is not an integer

Looks like timer_t is no longer an integer type, try the attached patch.

 > 
 > >  > Moreover, I get tons of this warning:
 > >  > 
 > >  > /usr/include/bits/pthreadtypes.h:69: warning: unnamed struct/union that
 > >  > defines no instances
 > >  > 
 > >  > But this is an "imported" issue, isn't it? Likely due to some picky gcc
 > >  > switch during the simulator build.
 > > 
 > > It depends on what is defined at line 69 of pthreadtypes.h...
 > > 
 > 
 > typedef union
 > {
 >   struct __pthread_mutex_s
 >   {
 >     int __lock;
 >     unsigned int __count;
 >     int __owner;
 >     /* KIND must stay at this position in the structure to maintain
 >        binary compatibility.  */
 >     int __kind;
 >     unsigned int __nusers;
 >     __extension__ union
 >     {
 >       int __spins;
 >       __pthread_slist_t __list;
 >     };                               /* >>> line 69 <<< */
 >   } __data;
 >   char __size[__SIZEOF_PTHREAD_MUTEX_T];
 >   long int __align;
 > } pthread_mutex_t;

Looking at gcc 2.95 documentation, it seems that unname unions are not
supported.

-- 


                                            Gilles Chanteperdrix.
Index: ksrc/skins/posix/timer.c
===================================================================
--- ksrc/skins/posix/timer.c    (revision 1141)
+++ ksrc/skins/posix/timer.c    (working copy)
@@ -183,7 +183,7 @@
     timer->clockid = clockid;
     xnlock_put_irqrestore(&nklock, s);
 
-    *timerid = timer - timer_pool;
+    *timerid = (timer_t) (timer - timer_pool);
 
     return 0;
 
@@ -220,7 +220,7 @@
 
     xnlock_get_irqsave(&nklock, s);
 
-    timer = &timer_pool[timerid];
+    timer = &timer_pool[(unsigned long) timerid];
 
     if (!xntimer_active_p(&timer->timerbase))
         goto unlock_and_einval;
@@ -341,7 +341,7 @@
 
     xnlock_get_irqsave(&nklock, s);
 
-    timer = &timer_pool[timerid];
+    timer = &timer_pool[(unsigned long) timerid];
 
     if (!xntimer_active_p(&timer->timerbase))
         goto unlock_and_einval;
@@ -434,7 +434,7 @@
 
     xnlock_get_irqsave(&nklock, s);
 
-    timer = &timer_pool[timerid];
+    timer = &timer_pool[(unsigned long) timerid];
 
     if (!xntimer_active_p(&timer->timerbase))
         goto unlock_and_einval;
@@ -482,7 +482,7 @@
 
     xnlock_get_irqsave(&nklock, s);
 
-    timer = &timer_pool[timerid];
+    timer = &timer_pool[(unsigned long) timerid];
 
     if (!xntimer_active_p(&timer->timerbase))
         goto unlock_and_einval;
_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to