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  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: WireSet missing with 3.14.10
From: Andrew Johnson <[email protected]>
To: Dehong Zhang <[email protected]>
Cc: [email protected]
Date: Fri, 14 Nov 2008 14:12:57 -0600
Hi Dehong,

On Friday 14 November 2008 12:28:23 Dehong Zhang wrote:
>
> Our board actually has MPC7455 processor, with AltiVec coprocessor.
> I followed your suggestions and tried vxWorks-ppc604_altivec.  Still
> got the same error messages:

Ok, now your installation is using all the standard build rules so I believe 
that the problem is mine and not yours.  Thanks for posting the IOC console 
log, that also helps a lot.

> # Epics Startup command file
> # cd "/home/vxworks_boot/fe/hinst1/epics"
>
> # putenv("EPICS_TS_NTP_INET='127.0.0.1'")
> putenv("EPICS_CA_MAX_ARRAY_BYTES=1048576")
> value = 0 = 0x0
>
> ld < hinst1.munch
> Warning: module 0x329d640 holds reference to undefined symbol
> _Z7WireSetIfEvRKT_Ph.
> Warning: module 0x329d640 holds reference to undefined symbol 
_Z7WireSetIiEvRKT_Ph.
> Warning: module 0x329d640 holds reference to undefined symbol 
_Z7WireSetIsEvRKT_Ph.

I tried various versions of c++filt for gcc 3.x, and finally found that the 
version for my linux system (which actually has gcc 4.1.2) can translate 
those symbols, as long as I strip off the trailing '.', giving this:

Warning: module 0x329d640 holds reference to undefined symbol
    void WireSet<float>(float const&, unsigned char*)
Warning: module 0x329d640 holds reference to undefined symbol
    void WireSet<int>(int const&, unsigned char*)
Warning: module 0x329d640 holds reference to undefined symbol
    void WireSet<short>(short const&, unsigned char*)

Those functions should be being in-lined by the compiler wherever they are 
used (they are on my systems), so I don't understand why you're getting this 
error.  It may just be an issue with the vxWorks 6.1 compiler though â if 
there are any other vxWorks 6.x users reading, do you see this problem?

However it is easy to explicitly instantiate the functions manually.  Apply 
the attached patch file to your base/src/ca/templateInstances.cpp file and 
run 'make' first at the top of base and then in your IOC application top.

I think that should solve the problem; please let me know if it does so I can 
commit that change for the next release of Base.

- Andrew
-- 
Talk is cheap. Show me the code. -- Linus Torvalds
Index: templateInstances.cpp
===================================================================
RCS file: /net/phoebus/epicsmgr/cvsroot/epics/base/src/ca/templateInstances.cpp,v
retrieving revision 1.5.2.6
diff -d -u -b -p -r1.5.2.6 templateInstances.cpp
--- templateInstances.cpp	21 Dec 2006 15:44:41 -0000	1.5.2.6
+++ templateInstances.cpp	14 Nov 2008 20:01:32 -0000
@@ -76,6 +76,9 @@ template unsigned comBuf :: push ( const
 template comBuf :: popStatus comBuf :: pop ( unsigned int & returnVal );
 template comBuf :: popStatus comBuf :: pop ( unsigned short & returnVal );
 template comBuf :: popStatus comBuf :: pop ( unsigned char & returnVal );
+template void WireSet (float const&, unsigned char*);
+template void WireSet (int const&, unsigned char*);
+template void WireSet (short const&, unsigned char*);
 
 
 #ifdef _MSC_VER

Replies:
Re: WireSet missing with 3.14.10 Dehong Zhang
References:
WireSet missing with 3.14.10 Dehong Zhang
Re: WireSet missing with 3.14.10 Andrew Johnson
Re: WireSet missing with 3.14.10 Dehong Zhang

Navigate by Date:
Prev: Re: WireSet missing with 3.14.10 Dehong Zhang
Next: Re: WireSet missing with 3.14.10 Dehong Zhang
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: WireSet missing with 3.14.10 Dehong Zhang
Next: Re: WireSet missing with 3.14.10 Dehong Zhang
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·