Hi Andrew,
Thanks for the useful and effective solution.
Actually after building for vxWorks-ppc32 target, I tried running EPICS on
the target CPU (MVME-5500 with PowerPC 7448) but was encountering some
problem.
Wanting to be more architecture specific, I tried building for ppc604_long
and following your suggestion of changing ARCH_DEP_CFLAGS_4, I could
successfully do so.
But while trying to run it on Target I am facing the same problem as I faced
with ppc32 case.
The problem is that when my application's .munch file executes on the
target, it flags following errors and stops:
ld 0,0, "myIoc.munch"
Warning: module 0x2474770 holds reference to undefined symbol
_ZNSt9exceptionD2Ev.
Warning: module 0x2474770 holds reference to undefined symbol
__gxx_personality_v0.
ld(): module contains undefined symbol(s) and may be unusable.
value = 0 = 0x0
Any suggestions how to overcome this ?
Thanks,
Amit.
-----Original Message-----
From: Andrew Johnson [mailto:[email protected]]
Sent: Thursday, October 16, 2014 4:37 AM
To: Amit Chauhan; [email protected]
Subject: Re: EPICS on vxWorks
Hi Amit,
On 10/15/2014 08:09 AM, Amit Chauhan wrote:
> We are trying to put EPICS on target running vxWorks 6.9.
>
> We could build EPICS Base 3-14-12-4 for
> CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32
>
> But when I am trying to build the same for :
> CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc604_long
Why are you building that architecture as well? The vxWorks-ppc32 target
binaries can be used on ppc604 cpus, and I recommend using the more
generic target nowadays (as does Wind River I believe).
> we are getting following errors during the 'make' process:
>
> C:/WindRiver/vxworks-6.9/target/h/stdio.h:349: warning: 'int voprintf(int
(*)(...), _Vx_usr_arg_t, const char*, __va_list_tag*)' is deprecated
> (declared at C:/WindRiver/vxworks-6.9/target/h/stdio.h:347)
> ../../../src/libCom/fdmgr/fdmgr.cpp: In member function 'virtual
epicsTimerNotify::expireStatus timerForOldFdmgr::expire(const epicsTime&)':
> ../../../src/libCom/fdmgr/fdmgr.cpp:154: error: unable to find a register
to spill in class 'FLOAT_REGS'
I get exactly the same error when I try to build that target with
VxWorks 6.9 on a Linux host. With VxWorks 6.8 it builds successfully, so
this has to be related to the change from gcc 4.1.2 to 4.3.3.
> Any clues to solve this issue will be of help.
The only differences between those two targets are some of the flags
given to the compiler; for the ppc604 it gets
-DCPU=PPC604 -mcpu=604 -mstrict-align -fno-implicit-fp
while for the ppc32 it gets
-DCPU=PPC32 -mstrict-align
Removing the -fno-implicit-fp flag does seem to fix the build problem
for the ppc604 target, but I haven't tested the resulting code. Without
that flag, gcc is free to make use of floating-point registers to hold
non-fp values, which is a problem if it does that when compiling an
interrupt service routine that does not save the floating-point
registers. That was why we added that flag to our builds in the first
place, although that was with an older compiler version when the flag
was spelled -mno-implicit-fp instead.
If you want to remove it, change the assignment of ARCH_DEP_CFLAGS_4 in
the file base/configure/os/CONFIG.Common.vxWorks-ppc604.
The vxWorks-ppc32 target does currently not use this flag, but I wonder
whether it should. Adding it causes both fdmgr.cpp and epicsTimer.cpp to
fail to build though, so that's a bit of a show-stopper...
- Andrew
--
People everywhere confuse what they read in newspapers with news.
-- A. J. Liebling
- Replies:
- Re: EPICS on vxWorks Andrew Johnson
- References:
- EPICS on vxWorks Amit Chauhan
- Re: EPICS on vxWorks Andrew Johnson
- Navigate by Date:
- Prev:
csstudio RAP applications Xinyu.Wu
- Next:
Re: StreamDevice "in" command disturbed by out command haquin
- 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: EPICS on vxWorks Andrew Johnson
- Next:
Re: EPICS on vxWorks Andrew Johnson
- 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
|