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
<2008>
2009
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
<2008>
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|