EPICS Controls Argonne National Laboratory

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  2020  2021  2022  2023  2024  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  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: EPICS on vxWorks
From: "Amit Chauhan" <[email protected]>
To: "'Andrew Johnson'" <[email protected]>, <[email protected]>
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:[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  <20142015  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  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·