On 03/08/2013 07:17 AM, Gilles Chanteperdrix wrote:

> On 03/07/2013 02:42 PM, Paolo Minazzi wrote:
> 
>> Il 07/03/2013 13.57, Gilles Chanteperdrix ha scritto:
>>> #define ARM(x...)   x
>>> #define     THUMB(x...)
>> I have a problem of double definition of  __xn_tscinfo
>>
>> #make
>> 2ms.c: In function 'InitIrq':
>> 2ms.c:182: warning: incompatible implicit declaration of built-in 
>> function 'exit'
>> /DVD/xenomai-2.6.2.1/src/skins/common/.libs/libxenomai.a(libxenomai_la-bind.o):(.data+0x0):
>>  
>> multiple definition of `__xn_tscinfo'
>> /DVD/xenomai-2.6.2.1/src/skins/native/.libs/libnative.a(libnative_la-init.o):(.data+0x4):
>>  
>> first defined here
>> collect2: ld returned 1 exit status
>> make: *** [All] Error 1
>>
>>
>> __xn_tscinfo is defined in src/include/asm/xenomai/bits/bind.h
>>
>> ...
>> ...
>> #include <asm-generic/xenomai/bits/bind.h>
>> #include <asm/xenomai/syscall.h>
>>
>> struct __xn_full_tscinfo __xn_tscinfo = {
>>          .kinfo = {
>>                  .type = -1,
>>          },
>> };
>> ...
>> ...
>>
>> It is strange define a struct in a .h file.
> 
> 
> Right, normally this file should only be included in
> src/skins/common/bind.c, but it happens to be included in all skins.
> Will fix.
> 

Could you try to compile again static libraries with the following patch
applied?

diff --git a/include/asm-nios2/bits/bind.h b/include/asm-nios2/bits/bind.h
index 067e7e2..668d8b8 100644
--- a/include/asm-nios2/bits/bind.h
+++ b/include/asm-nios2/bits/bind.h
@@ -12,7 +12,7 @@

 #include <asm-generic/xenomai/bits/bind.h>

-__attribute__((weak)) volatile void *xeno_nios2_hrclock = NULL;
+volatile void *xeno_nios2_hrclock = NULL;

 static inline void xeno_nios2_features_check(struct xnfeatinfo *finfo)
 {
diff --git a/include/asm-sh/bits/bind.h b/include/asm-sh/bits/bind.h
index 3b2b54d..bd25f80 100644
--- a/include/asm-sh/bits/bind.h
+++ b/include/asm-sh/bits/bind.h
@@ -14,10 +14,8 @@

 struct xnarch_tsc_area;

-__attribute__((weak))
 volatile struct xnarch_tsc_area *xeno_sh_tsc = NULL;

-__attribute__((weak))
 volatile unsigned long *xeno_sh_tcnt = NULL;

 static volatile void *__xeno_kmem_map(unsigned long pa, unsigned int
pagesz)
diff --git a/src/skins/native/init.c b/src/skins/native/init.c
index 2c36444..5d433b3 100644
--- a/src/skins/native/init.c
+++ b/src/skins/native/init.c
@@ -24,7 +24,7 @@
 #include <pthread.h>
 #include <native/syscall.h>
 #include <native/task.h>
-#include <asm/xenomai/bits/bind.h>
+#include <asm-generic/xenomai/bits/bind.h>

 int __native_muxid = -1;
 static int fork_handler_registered;
diff --git a/src/skins/posix/init.c b/src/skins/posix/init.c
index 332081a..83d27a6 100644
--- a/src/skins/posix/init.c
+++ b/src/skins/posix/init.c
@@ -30,7 +30,7 @@
 #include <posix/mutex.h>
 #include <rtdk.h>

-#include <asm/xenomai/bits/bind.h>
+#include <asm-generic/xenomai/bits/bind.h>

 int __pse51_muxid = -1;
 int __pse51_rtdm_muxid = -1;
diff --git a/src/skins/psos+/init.c b/src/skins/psos+/init.c
index b72825f..5098f91 100644
--- a/src/skins/psos+/init.c
+++ b/src/skins/psos+/init.c
@@ -20,7 +20,7 @@
 #include <errno.h>
 #include <sys/mman.h>
 #include <psos+/psos.h>
-#include <asm/xenomai/bits/bind.h>
+#include <asm-generic/xenomai/bits/bind.h>

 int __psos_muxid = -1;

diff --git a/src/skins/rtdm/init.c b/src/skins/rtdm/init.c
index dbbcbb1..9672486 100644
--- a/src/skins/rtdm/init.c
+++ b/src/skins/rtdm/init.c
@@ -21,7 +21,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <rtdm/syscall.h>
-#include <asm/xenomai/bits/bind.h>
+#include <asm-generic/xenomai/bits/bind.h>

 int __rtdm_muxid = -1;

diff --git a/src/skins/uitron/init.c b/src/skins/uitron/init.c
index a6cc77f..0ffc8bd 100644
--- a/src/skins/uitron/init.c
+++ b/src/skins/uitron/init.c
@@ -20,7 +20,7 @@
 #include <errno.h>
 #include <sys/mman.h>
 #include <uitron/uitron.h>
-#include <asm/xenomai/bits/bind.h>
+#include <asm-generic/xenomai/bits/bind.h>

 int __uitron_muxid = -1;

diff --git a/src/skins/vrtx/init.c b/src/skins/vrtx/init.c
index 8a81660..d3d6cdb 100644
--- a/src/skins/vrtx/init.c
+++ b/src/skins/vrtx/init.c
@@ -23,7 +23,7 @@
 #include <stdlib.h>
 #include <pthread.h>
 #include <vrtx/vrtx.h>
-#include <asm/xenomai/bits/bind.h>
+#include <asm-generic/xenomai/bits/bind.h>

 int __vrtx_muxid = -1;

diff --git a/src/skins/vxworks/init.c b/src/skins/vxworks/init.c
index 181b575..b2cdad4 100644
--- a/src/skins/vxworks/init.c
+++ b/src/skins/vxworks/init.c
@@ -23,7 +23,7 @@
 #include <stdlib.h>
 #include <pthread.h>
 #include <vxworks/vxworks.h>
-#include <asm/xenomai/bits/bind.h>
+#include <asm-generic/xenomai/bits/bind.h>

 int __vxworks_muxid = -1;



-- 
                                                                Gilles.

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to