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
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...
People everywhere confuse what they read in newspapers with news.
-- A. J. Liebling
- RE: EPICS on vxWorks Amit Chauhan
- EPICS on vxWorks Amit Chauhan
- Navigate by Date:
Support for hivolt power supply Emma Shepherd
Re: Support for hivolt power supply Jörn Wüstenfeld
- Navigate by Thread:
EPICS on vxWorks Amit Chauhan
RE: EPICS on vxWorks Amit Chauhan