EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: compiler problem in pvData/testApp
From: "Johnson, Andrew N." <[email protected]>
To: "[email protected]" <[email protected]>
Date: Wed, 26 Sep 2018 17:01:18 +0000
I'm pretty sure this was caused by Marty's adding the pvCopy code to
pvDatabaseCPP, which includes a similar to but not identical header as
the one that is still in pvDataCPP and presumably being used by the
testApp/copy/testPVCopy.cpp source that is also still in pvData.

I don't have time right now to work out what needs to be removed, Marty
could you generate a PR to remove pvCopy and the associated test
program(s) from pvData? I think that's what we need to do to fix this.

- Andrew


On 09/26/2018 10:39 AM, Dirk Zimoch wrote:
> Hello,
> 
> Since last weekend building EPICS 7 fails in pvData/testApp.
> 
> Can please someone fix this or at least tell me which commit to check
> out so that I can compile again? Unfortunately I failed to find out what
> exactly the problem is or which old commit to check out to make it
> compile again.
> 
> make[4]: Entering directory
> `/afs/psi.ch/group/8211/dirk/git/BASE/epics-base-7.0/modules/pvData/testApp/O.RHEL7-x86_64'
> 
> /usr/bin/g++  -D_GNU_SOURCE -D_DEFAULT_SOURCE            -D_X86_64_
> -DUNIX  -Dlinux     -O3   -Wall           -m64  -I. -I../O.Common -I.
> -I. -I.. -I../../testApp/misc -I../../testApp/pv
> -I../../testApp/property -I../../testApp/copy
> -I/usr/local/epics/base-7.0.1/include/compiler/gcc
> -I/usr/local/epics/base-7.0.1/include/os/Linux
> -I/usr/local/epics/base-7.0.1/include
> -I/usr/local/epics/base-7.0.1/include/compiler/gcc
> -I/usr/local/epics/base-7.0.1/include/os/Linux
> -I/usr/local/epics/base-7.0.1/include        -c
> ../../testApp/copy/testPVCopy.cpp
> ../../testApp/copy/testPVCopy.cpp:38:5: error: ‘PVCopyPtr’ has not been
> declared
>      PVCopyPtr const & pvCopy)
>      ^
> ../../testApp/copy/testPVCopy.cpp: In function ‘void testPVScalar(const
> string&, const string&, const PVStructurePtr&, const int&)’:
> ../../testApp/copy/testPVCopy.cpp:48:41: error: base operand of ‘->’ is
> not a pointer
>      StructureConstPtr structure = pvCopy->getStructure();
>                                          ^
> ../../testApp/copy/testPVCopy.cpp:49:29: error: base operand of ‘->’ is
> not a pointer
>      pvStructureCopy = pvCopy->createPVStructure();
>                              ^
> ../../testApp/copy/testPVCopy.cpp:52:11: error: base operand of ‘->’ is
> not a pointer
>      pvCopy->initCopy(pvStructureCopy, bitSet);
>            ^
> ../../testApp/copy/testPVCopy.cpp:56:11: error: base operand of ‘->’ is
> not a pointer
>      pvCopy->updateCopySetBitSet(pvStructureCopy,bitSet);
>            ^
> ../../testApp/copy/testPVCopy.cpp:60:11: error: base operand of ‘->’ is
> not a pointer
>      pvCopy->getCopyOffset(pvValueMaster);
>            ^
> ../../testApp/copy/testPVCopy.cpp:67:11: error: base operand of ‘->’ is
> not a pointer
>      pvCopy->updateCopyFromBitSet(pvStructureCopy,bitSet);
>            ^
> ../../testApp/copy/testPVCopy.cpp:74:11: error: base operand of ‘->’ is
> not a pointer
>      pvCopy->updateMaster(pvStructureCopy,bitSet);
>            ^
> ../../testApp/copy/testPVCopy.cpp: At global scope:
> ../../testApp/copy/testPVCopy.cpp:83:5: error: ‘PVCopyPtr’ has not been
> declared
>      PVCopyPtr const & pvCopy)
>      ^
> ../../testApp/copy/testPVCopy.cpp: In function ‘void
> testPVScalarArray(const string&, const string&, const PVStructurePtr&,
> const int&)’:
> ../../testApp/copy/testPVCopy.cpp:97:41: error: base operand of ‘->’ is
> not a pointer
>      StructureConstPtr structure = pvCopy->getStructure();
>                                          ^
> ../../testApp/copy/testPVCopy.cpp:99:29: error: base operand of ‘->’ is
> not a pointer
>      pvStructureCopy = pvCopy->createPVStructure();
>                              ^
> ../../testApp/copy/testPVCopy.cpp:102:11: error: base operand of ‘->’ is
> not a pointer
>      pvCopy->initCopy(pvStructureCopy, bitSet);
>            ^
> ../../testApp/copy/testPVCopy.cpp:110:11: error: base operand of ‘->’ is
> not a pointer
>      pvCopy->updateCopySetBitSet(pvStructureCopy,bitSet);
>            ^
> ../../testApp/copy/testPVCopy.cpp:114:11: error: base operand of ‘->’ is
> not a pointer
>      pvCopy->getCopyOffset(pvValueMaster);
>            ^
> ../../testApp/copy/testPVCopy.cpp:125:11: error: base operand of ‘->’ is
> not a pointer
>      pvCopy->updateCopyFromBitSet(pvStructureCopy,bitSet);
>            ^
> ../../testApp/copy/testPVCopy.cpp:137:11: error: base operand of ‘->’ is
> not a pointer
>      pvCopy->updateMaster(pvStructureCopy,bitSet);
>            ^
> ../../testApp/copy/testPVCopy.cpp: In function ‘void scalarTest()’:
> ../../testApp/copy/testPVCopy.cpp:149:5: error: ‘PVCopyPtr’ was not
> declared in this scope
>      PVCopyPtr pvCopy;
>      ^
> ../../testApp/copy/testPVCopy.cpp:149:5: note: suggested alternative:
> In file included from ../../testApp/copy/testPVCopy.cpp:26:0:
> /usr/local/epics/base-7.0.1/include/pv/pvCopy.h:45:38: note:
> ‘epics::pvDatabase::PVCopyPtr’
>  typedef std::tr1::shared_ptr<PVCopy> PVCopyPtr;
>                                       ^
> ../../testApp/copy/testPVCopy.cpp:149:15: error: expected ‘;’ before
> ‘pvCopy’
>      PVCopyPtr pvCopy;
>                ^
> ../../testApp/copy/testPVCopy.cpp:159:5: error: ‘pvCopy’ was not
> declared in this scope
>      pvCopy = PVCopy::create(pvMaster,pvRequest,"");
>      ^
> ../../testApp/copy/testPVCopy.cpp:159:14: error: ‘PVCopy’ has not been
> declared
>      pvCopy = PVCopy::create(pvMaster,pvRequest,"");
>               ^
> ../../testApp/copy/testPVCopy.cpp:166:14: error: ‘PVCopy’ has not been
> declared
>      pvCopy = PVCopy::create(pvMaster,pvRequest,"");
>               ^
> ../../testApp/copy/testPVCopy.cpp:173:14: error: ‘PVCopy’ has not been
> declared
>      pvCopy = PVCopy::create(pvMaster,pvRequest,"");
>               ^
> ../../testApp/copy/testPVCopy.cpp: In function ‘void arrayTest()’:
> ../../testApp/copy/testPVCopy.cpp:186:5: error: ‘PVCopyPtr’ was not
> declared in this scope
>      PVCopyPtr pvCopy;
>      ^
> ../../testApp/copy/testPVCopy.cpp:186:5: note: suggested alternative:
> In file included from ../../testApp/copy/testPVCopy.cpp:26:0:
> /usr/local/epics/base-7.0.1/include/pv/pvCopy.h:45:38: note:
> ‘epics::pvDatabase::PVCopyPtr’
>  typedef std::tr1::shared_ptr<PVCopy> PVCopyPtr;
>                                       ^
> ../../testApp/copy/testPVCopy.cpp:186:15: error: expected ‘;’ before
> ‘pvCopy’
>      PVCopyPtr pvCopy;
>                ^
> ../../testApp/copy/testPVCopy.cpp:196:5: error: ‘pvCopy’ was not
> declared in this scope
>      pvCopy = PVCopy::create(pvMaster,pvRequest,"");
>      ^
> ../../testApp/copy/testPVCopy.cpp:196:14: error: ‘PVCopy’ has not been
> declared
>      pvCopy = PVCopy::create(pvMaster,pvRequest,"");
>               ^
> ../../testApp/copy/testPVCopy.cpp:203:14: error: ‘PVCopy’ has not been
> declared
>      pvCopy = PVCopy::create(pvMaster,pvRequest,"");
>               ^
> ../../testApp/copy/testPVCopy.cpp:210:14: error: ‘PVCopy’ has not been
> declared
>      pvCopy = PVCopy::create(pvMaster,pvRequest,"");
>               ^
> ../../testApp/copy/testPVCopy.cpp: In function ‘void powerSupplyTest()’:
> ../../testApp/copy/testPVCopy.cpp:251:5: error: ‘PVCopyPtr’ was not
> declared in this scope
>      PVCopyPtr pvCopy;
>      ^
> ../../testApp/copy/testPVCopy.cpp:251:5: note: suggested alternative:
> In file included from ../../testApp/copy/testPVCopy.cpp:26:0:
> /usr/local/epics/base-7.0.1/include/pv/pvCopy.h:45:38: note:
> ‘epics::pvDatabase::PVCopyPtr’
>  typedef std::tr1::shared_ptr<PVCopy> PVCopyPtr;
>                                       ^
> ../../testApp/copy/testPVCopy.cpp:251:15: error: expected ‘;’ before
> ‘pvCopy’
>      PVCopyPtr pvCopy;
>                ^
> ../../testApp/copy/testPVCopy.cpp:261:5: error: ‘pvCopy’ was not
> declared in this scope
>      pvCopy = PVCopy::create(pvMaster,pvRequest,"");
>      ^
> ../../testApp/copy/testPVCopy.cpp:261:14: error: ‘PVCopy’ has not been
> declared
>      pvCopy = PVCopy::create(pvMaster,pvRequest,"");
>               ^
> ../../testApp/copy/testPVCopy.cpp:268:14: error: ‘PVCopy’ has not been
> declared
>      pvCopy = PVCopy::create(pvMaster,pvRequest,"");
>               ^
> ../../testApp/copy/testPVCopy.cpp:275:14: error: ‘PVCopy’ has not been
> declared
>      pvCopy = PVCopy::create(pvMaster,pvRequest,"");
>               ^
> ../../testApp/copy/testPVCopy.cpp:282:14: error: ‘PVCopy’ has not been
> declared
>      pvCopy = PVCopy::create(pvMaster,pvRequest,"");
>               ^
> make[4]: *** [testPVCopy.o] Error 1
> make[4]: Leaving directory
> `/afs/psi.ch/group/8211/dirk/git/BASE/epics-base-7.0/modules/pvData/testApp/O.RHEL7-x86_64'
> 
> 
> 
> In case it matters: I have this problem with several gcc versions, e.g
> 4.8.5 and 6.2.1. Also with clang, but with better error message:
> 
> ../../testApp/copy/testPVCopy.cpp:38:5: error: unknown type name
> 'PVCopyPtr'; did you mean 'epics::pvDatabase::PVCopyPtr'?
> 
> Thus the problem seems to be namespace related. However I could not find
> out how to fix it. Using namespace epics::pvDatabase only seems to make
> things worse.
> 
> Dirk
> 

-- 
Arguing for surveillance because you have nothing to hide is no
different than making the claim, "I don't care about freedom of
speech because I have nothing to say." -- Edward Snowdon

Replies:
Re: compiler problem in pvData/testApp Michael Davidsaver
Re: compiler problem in pvData/testApp Dirk Zimoch
References:
compiler problem in pvData/testApp Dirk Zimoch

Navigate by Date:
Prev: compiler problem in pvData/testApp Dirk Zimoch
Next: Re: compiler problem in pvData/testApp Michael Davidsaver
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: compiler problem in pvData/testApp Dirk Zimoch
Next: Re: compiler problem in pvData/testApp Michael Davidsaver
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
ANJ, 27 Sep 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·