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  <20102011  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  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: problem with tpmac-3-7 (loading IOC munch file results in undefined symbol error)
From: Jay Steele <[email protected]>
To: "J. Lewis Muir" <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Wed, 13 Oct 2010 15:57:14 -0700
Hi Lewis,
    Thanks for the suggestion. I did check and I'm linking in the tpmac libraries in the same order as you have them. I still have the error. The conflict appears to be that ioc21idbnpVX_registerRecordDeviceDriver.o is not finding the symbols defined in libpmacIoc.a.

Here's an abbreviated version of the output from the make command (without a bunch of -L options, vxComLibrary, and other libraries).

/powerpc-wrs-vxworks/bin/ld -r -o 21idbnp -static ioc21idbnpVX_registerRecordDeviceDriver.o -lpmacIoc

Thanks,
Jay Steele

________________________________________
From: J. Lewis Muir [[email protected]]
Sent: Wednesday, October 13, 2010 3:31 PM
To: Jay Steele
Cc: [email protected]
Subject: Re: problem with tpmac-3-7 (loading IOC munch file results in undefined symbol error)

On 10/13/10 4:43 PM, Jay Steele wrote:
> Hi Tech-Talk,
>     To use the TurboPMAC VME board with a PPC mother board to control
> motors, I am trying to integrate tmac-3-7 with synApps_5_5 and
> epics/base-3-14-11 for my IOC named 21idbnp. I am having the following
> problem. Any clues to its resolution or a workaround would be greatly
> appreciated.
>
> tpmac-3-7 compiles with synApps. I added the statement
> "ioc21idbnpVX_DBD+=pmacInclude.dbd" to 21idbnpApp/src/Makefile.
> pmacInclude.dbd includes statusRecord.dbd, tsubRecord.dbd,
> statusDevice.dbd, pmacAsynIPPort.dbd, pmacAsynMotor.dbd,
> pmacAsynCoord.dbd, and add_pmac.dbd. Then I compile the 21idbnp IOC that
> includes the tpmac libraries (pmacAsynCoord, pmacAsynIPPort,
> pmacAsynMotor, pmacIoc). This compiles for vxWorks without error.
>
> When I load the munch file to vxworks, I get the following error.
>
> ld(0,0,"21idbnp.munch")
> Undefined symbol: pvar_dset_devPmac (binding 1 type 0)
> Undefined symbol: pvar_dset_devPmacRamStatus (binding 1 type 0)
> ld error: Module contains undefined symbol(s) and may be unusable.
> value = 0 = 0x0
>
> For my investigation, I see the following:
> 1. when compiling the IOC, -lpmacIoc, -lpmacAsynCoord, -lpmacAsynIPPort,
> and -lpmacAsynMotor are used with ld to create 21idbnp.
> 2. grep using the string "pvar_dset_devPmac" in the IOC directory
> results in the following:
>       a. binary file 21idbnp.munch matches.
>       b. ioc21idbnpVx_registerRecordDeviceDriver.cpp has references to
> pvar_dset_devPmac.
>       c. binary file 21idbnp matches.
>       d. binary file ioc21idbnpVx_registerRecordDeviceDriver.o matches.
>       e. 21idbnp.nm has references to pvar_dset_devPmac.
> 3. Same results as #2 above for string "pvar_dset_devPmacRamStatus"

Hi, Jay.

In what order did you list the libraries in your Makefile?  I believe
the GNU linker used for building for vxWorks is a single-pass linker, so
the order matters.

Here's the order I have for one of my IOCs:

  17idb_vxWorks_LIBS += pmacIoc
  17idb_vxWorks_LIBS += pmacAsynCoord
  17idb_vxWorks_LIBS += pmacAsynMotor
  17idb_vxWorks_LIBS += pmacAsynIPPort

Lewis

--
J. Lewis Muir
Software Engineer
IMCA-CAT

 The information in this email, including any attachments, is confidential and intended only for the recipient(s) listed.  Any use of this email for any other purpose is prohibited.  If you have received this email in error, please notify me immediately by reply email, delete this email, and do not disclose its contents to anyone.


References:
problem with tpmac-3-7 (loading IOC munch file results in undefined symbol error) Jay Steele
Re: problem with tpmac-3-7 (loading IOC munch file results in undefined symbol error) J. Lewis Muir

Navigate by Date:
Prev: Re: problem with tpmac-3-7 (loading IOC munch file results in undefined symbol error) J. Lewis Muir
Next: Re: Calling an iocsh "sub-script" Ben Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: problem with tpmac-3-7 (loading IOC munch file results in undefined symbol error) J. Lewis Muir
Next: Re: problem with tpmac-3-7 (loading IOC munch file results in undefined symbol error) Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 14 Oct 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·