Experimental Physics and Industrial Control System
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
<2006>
2007
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
<2006>
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024