There is, apparently, a bug in GCC 4.7 that makes it unable to resolve a member function defined in a parent class that stops the build from being able to complete. This is the output from it (and yes, this is the default compiler of Fedora 17)
[ 9%] Building C++ object built/tmp/p3pipeline_composite1.o In file included from built/include/nodePointerTo.h:85:0, from panda/src/pipeline/pipelineCyclerTrueImpl.h:26, from panda/src/pipeline/pipelineCyclerBase.h:25, from panda/src/pipeline/pipelineCycler.h:19, from panda/src/pipeline/cycleDataLockedReader.h:21, from panda/src/pipeline/cycleDataLockedReader.cxx:15, from panda/src/pipeline/p3pipeline_composite1.cxx:15: built/include/nodePointerTo.I: In instantiation of ‘NodePointerTo<T>& NodePointerTo<T>::operator=(const NodePointerTo<T>&) [with T = CycleData]’: panda/src/pipeline/pipelineCyclerTrueImpl.I:466:30: required from here built/include/nodePointerTo.I:136:3: error: ‘reassign’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] built/include/nodePointerTo.I:136:3: note: declarations in dependent base ‘NodePointerToBase<CycleData>’ are not found by unqualified lookup built/include/nodePointerTo.I:136:3: note: use ‘this->reassign’ instead Storing dependency cache. Elapsed Time: 6 sec The following command returned a non-zero value: g++ -ftemplate-depth-30 -fPIC -c -o built/tmp/p3pipeline_composite1.o -Ibuilt/tmp -Ibuilt/include -I/usr/include/python2.7 -DMAKEPANDA= -Ipanda/src/pipeline -pthread -msse2 -O2 -DBUILDING_PANDA panda/src/pipeline/p3pipeline_composite1.cxx Build terminated.
I have checked the code and don’t want to have to edit it, because I’m sure this is going to keep coming up and I’m not familiar with the code base. Is the suggestion of using “this->reassign” a good one ?
fixing it to follow the suggestion at both line 122 and line 136 seems to have worked and the build is once more on track.