On 09/26/2018 10:01 AM, Johnson, Andrew N. wrote:
> 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.
I don't have a problem with removing pvCopy now. Although, as there is
no pressing reason to do otherwise, I was planning on marking it deprecated
for this next release cycle.
Why not rename the conflicting header, or skip installing it?
> - 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
>>
>
- References:
- compiler problem in pvData/testApp Dirk Zimoch
- Re: compiler problem in pvData/testApp Johnson, Andrew N.
- Navigate by Date:
- Prev:
Re: compiler problem in pvData/testApp Johnson, Andrew N.
- Next:
Build failed in Jenkins: EPICS-7 #111 Jenkins Epics PSI
- Index:
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: compiler problem in pvData/testApp Johnson, Andrew N.
- Next:
Re: compiler problem in pvData/testApp Dirk Zimoch
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
<2018>
2019
2020
2021
2022
2023
2024
|