EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: problem about compiling EPICS base on Int el XScale RISC CPU and Monta Vista Linux
From: "marco_hair" <[email protected]>
To: [email protected]
Date: Mon, 26 Jun 2006 16:41:02 +0800 (CST)
hi,all:
 
  I am trying to compile EPICS base on our new device. It has a Intel XScale IXP-422 266Mhz RISC CPU and Monta Vista linux as embedded OS. Gcc cross compiler is like this:
mxscaleb-gcc (GCC) 3.3.2                                                                              
Copyright (C) 2003 Free Software Foundation, Inc.                                                     
This is free software; see the source for copying conditions.  There is NO                            
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                           
I defined a new target archiecture as linux-ixp422. When I tried to compile the target, I got the following message:
[[email protected]]:/usr/local/epics/base>make linux-ixp422
make -C configure linux-ixp422
make[1]: Entering directory `/usr/local/epics/base-3.14.8.2/configure'
make -C O.linux-ixp422 -f ../Makefile TOP=../.. T_A=linux-ixp422
make[2]: Entering directory `/usr/local/epics/base-3.14.8.2/configure/O.linux-ixp422'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/local/epics/base-3.14.8.2/configure/O.linux-ixp422'
make[1]: Leaving directory `/usr/local/epics/base-3.14.8.2/configure'
make -C src linux-ixp422
make[1]: Entering directory `/usr/local/epics/base-3.14.8.2/src'
make -C makeBaseApp linux-ixp422
make[2]: Entering directory `/usr/local/epics/base-3.14.8.2/src/makeBaseApp'
make -C O.linux-ixp422 -f ../Makefile TOP=../../.. T_A=linux-ixp422
make[3]: Entering directory `/usr/local/epics/base-3.14.8.2/src/makeBaseApp/O.linux-ixp422'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/epics/base-3.14.8.2/src/makeBaseApp/O.linux-ixp422'
make[2]: Leaving directory `/usr/local/epics/base-3.14.8.2/src/makeBaseApp'
make -C makeBaseExt linux-ixp422
make[2]: Entering directory `/usr/local/epics/base-3.14.8.2/src/makeBaseExt'
make -C O.linux-ixp422 -f ../Makefile TOP=../../.. T_A=linux-ixp422
make[3]: Entering directory `/usr/local/epics/base-3.14.8.2/src/makeBaseExt/O.linux-ixp422'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/epics/base-3.14.8.2/src/makeBaseExt/O.linux-ixp422'
make[2]: Leaving directory `/usr/local/epics/base-3.14.8.2/src/makeBaseExt'
make -C libCom linux-ixp422
make[2]: Entering directory `/usr/local/epics/base-3.14.8.2/src/libCom'
make -C O.linux-ixp422 -f ../Makefile TOP=../../.. T_A=linux-ixp422
make[3]: Entering directory `/usr/local/epics/base-3.14.8.2/src/libCom/O.linux-ixp422'
/usr/local/mxscaleb/bin/mxscaleb-gcc -c        -DDONT_USE_POSIX_THREAD_PRIORITY_SCHEDULING   -D_ARM_  -DUNIX  -D_BSD_SOURCE -Dlinux  -D_REENTRANT -ansi  -O3  -Wall          -fPIC -I. -I.. -I../../../src/libCom/bucketLib -I../../../src/libCom/ring -I../../../src/libCom/calc -I../../../src/libCom/cvtFast -I../../../src/libCom/cppStd -I../../../src/libCom/cxxTemplates -I../../../src/libCom/dbmf -I../../../src/libCom/ellLib -I../../../src/libCom/env -I../../../src/libCom/error -I../../../src/libCom/fdmgr -I../../../src/libCom/freeList -I../../../src/libCom/gpHash -I../../../src/libCom/logClient -I../../../src/libCom/macLib -I../../../src/libCom/misc -I../../../src/libCom/osi -I../../../src/libCom/taskwd -I../../../src/libCom/timer -I../../../src/libCom/tsDefs -I../../../include/os/Linux -I../../../include       -I/usr/local/mxscaleb/armv5b-linux/include  ../../../src/libCom/osi/os/posix/osdThread.c
../../../src/libCom/osi/os/posix/osdThread.c: In function `start_routine':
../../../src/libCom/osi/os/posix/osdThread.c:307: warning: implicit declaration of function `sigfillset'
../../../src/libCom/osi/os/posix/osdThread.c:308: error: `SIG_SETMASK' undeclared (first use in this function)
../../../src/libCom/osi/os/posix/osdThread.c:308: error: (Each undeclared identifier is reported only once
../../../src/libCom/osi/os/posix/osdThread.c:308: error: for each function it appears in.)
../../../src/libCom/osi/os/posix/osdThread.c: In function `epicsThreadCreate':
../../../src/libCom/osi/os/posix/osdThread.c:395: error: `SIG_SETMASK' undeclared (first use in this function)
../../../src/libCom/osi/os/posix/osdThread.c: In function `epicsThreadSleep':
../../../src/libCom/osi/os/posix/osdThread.c:589: error: storage size of `delayTime' isn't known
../../../src/libCom/osi/os/posix/osdThread.c:590: error: storage size of `remainingTime' isn't known
../../../src/libCom/osi/os/posix/osdThread.c:596: warning: implicit declaration of function `nanosleep'
../../../src/libCom/osi/os/posix/osdThread.c:589: warning: unused variable `delayTime'
../../../src/libCom/osi/os/posix/osdThread.c:590: warning: unused variable `remainingTime'
../../../src/libCom/osi/os/posix/osdThread.c: At top level:
../../../src/libCom/osi/os/posix/osdThread.c:151: warning: `getOssPriorityValue' defined but not used
../../../src/libCom/osi/os/posix/osdThread.c:426: warning: `nonEPICSthreadCleanup' defined but not used
make[3]: *** [osdThread.o] Error 1
make[3]: Leaving directory `/usr/local/epics/base-3.14.8.2/src/libCom/O.linux-ixp422'
make[2]: *** [linux-ixp422] Error 2
make[2]: Leaving directory `/usr/local/epics/base-3.14.8.2/src/libCom'
make[1]: *** [libCom.linux-ixp422] Error 2
make[1]: Leaving directory `/usr/local/epics/base-3.14.8.2/src'
make: *** [src.linux-ixp422] Error 2
[[email protected]]:/usr/local/epics/base>
we can see the first error message is SIG_SETMASK is not defined. Usually, it's defined in the signal.h file. If I search "/usr/local/mxscaled", where development environment is resident, I can find
./armv5b-linux/include/asm-arm/signal.h                                                               
./armv5b-linux/include/linux/signal.h                                                                 
./armv5b-linux/include/signal.h                                                                       
./armv5b-linux/include/sys/signal.h                                                                   
but, ./armv5b-linux/include/signal.h does not define SIG_SETMASK,
while, ./armv5b-linux/include/asm-arm/signal.h includes the definition of IG_SETMASK marco。
so my first question is: which include directory should I include in my EPICS Makefile?
the second problem, there is another error message is like“storage size of `delayTime' isn't known”,In the osdThread.c, delayTime is defined as following:
struct timespec delayTime;
the "struct timespec" should be defined in time.h,similarly,I can find several time.h,as these:
./armv5b-linux/include/asm-arm/arch-ixp425/time.h                                                     
./armv5b-linux/include/bits/time.h                                                                    
./armv5b-linux/include/dns/time.h                                                                     
./armv5b-linux/include/isc/time.h                                                                     
./armv5b-linux/include/linux/time.h                                                                   
./armv5b-linux/include/linux/xfs_support/time.h                                                       
./armv5b-linux/include/sys/time.h                                                                     
./armv5b-linux/include/time.h                                                                         
In "/usr/local/mxscaleb/armv5b-linux/include/time.h",there is lines like this:
#if !defined __timespec_defined && \                                                                  
((defined _TIME_H && defined __USE_POSIX199309) || defined __need_timespec)                       
# define __timespec_defined     1                                                                     
                                                                                                      
/* POSIX.1b structure for a time value.  This is like a `struct timeval' but                          
   has nanoseconds instead of microseconds.  */                                                       
struct timespec                                                                                       
  {                                                                                                   
    __time_t tv_sec;            /* Seconds.  */                                                       
    long int tv_nsec;           /* Nanoseconds.  */                                                   
  };                                                                                                  
                                                                                                      
#endif /* timespec not defined and <time.h> or need timespec.  */                                     
#undef  __need_timespec                                                                               
while I should have included this time.h when I compiled the target, so maybe I should define some marco to make those lines work. Does anybody have some experence with this? otherwise I have to check the marco like "__USE_POSIX199309" or "__need_timespec" one by one.
I appreciate for any suggestion and help, thanks a lot in advance.
 
Best Wishes
 
Geyang 2006/6/26
SSRF Control Group







你 不 想 试 试 今 夏 最 “酷” 的 邮 箱 吗 ?
蕴 涵 中 华 传 统 文 化 于 世 界 一 流 科 技 之 中,创 新 Ajax 技 术,126 “D 计 划”火 热 体 验 中 !
Navigate by Date:
Prev: Re: Gateway Crashes Dirk Zimoch
Next: problem about compiling EPICS base on Int el XScale RISC CPU and Monta Vista Linux marco_hair
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Gateway Crashes Steven Banks
Next: problem about compiling EPICS base on Int el XScale RISC CPU and Monta Vista Linux marco_hair
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024