EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: RE: EPICS on vxWorks
From: "Amit Chauhan" <amit@rrcat.gov.in>
To: "'Andrew Johnson'" <anj@aps.anl.gov>, <tech-talk@aps.anl.gov>
Date: Fri, 17 Oct 2014 11:13:48 +0530
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:anj@aps.anl.gov] 
Sent: Thursday, October 16, 2014 4:37 AM
To: Amit Chauhan; tech-talk@aps.anl.gov
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  <20142015  2016  2017  2018  2019 
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  <20142015  2016  2017  2018  2019