I don't have much time to think about this but maybe you could break vtkInformation into two? A superclass such as vtkInformationBase that does not have anything Executive specific (in Common) and a vtkInformation subclass in Filtering? vtkDataArray could have a vtkInformationBase and everything else could keep using vtkInformation... Just an idea.
<br><br>-berk<br><br><div><span class="gmail_quote">On 10/18/07, <b class="gmail_sendername">David C Thompson</b> <<a href="mailto:dcthomp@sandia.gov">dcthomp@sandia.gov</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
> We are unable to build VTK from CVS.  It Release it links, in Debug it<br>> does not.  The error is:<br>><br>> Linking CXX executable ../../../bin/CommonCxxTests<br>> Undefined symbols:<br>>   "typeinfo for vtkExecutive", referenced from:
<br>>       typeinfo for vtkExecutive*in libvtkCommon.a(vtkInformationExecutivePortVectorKey.o)<br>> ld: symbol(s) not found<br>><br>> We see that vtkInformationExecutivePortVectorKey was recently moved from<br>
> Filtering to Common, but vtkExecutive is still in Filtering.  Should it<br>> move too?<br>I will be happy to move vtkExecutive to Common if Kitware approves, but<br>I doubt they will because it would involve moving the following classes
<br>as well (since vtkExecutive.cxx includes them):<br>   vtkAlgorithm<br>   vtkAlgorithmOutput<br>   vtkDataObject<br>And then all of *their* dependencies would have to be moved. I think an<br>aesthetically more pleasing solution would be to eliminate
<br>vtkInformation's dependency on vtkExecutive but I don't see a simple way<br>to do this. Do any of you?<br><br>> Oddly, I do not see this problem on any dashboard.  But we have reproed<br>> this on two machine, with fresh checkouts and fresh builds.
<br>I certainly never saw it before I committed the move but perhaps I<br>didn't build static libraries? Could all of this be caused by<br>vtkSetObjectMacro() calling GetClassName() inside a vtkDebugMacro()?<br>With VTK_DEBUG_LEAKS turned on, does the vtkExecutive::Register() call
<br>(also in vtkSetObjectMacro) also ask for the class name of the<br>vtkExecutive object? If so, it might be more difficult.<br><br>        David<br><br>_______________________________________________<br>vtk-developers mailing list
<br><a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a><br><a href="http://www.vtk.org/mailman/listinfo/vtk-developers">http://www.vtk.org/mailman/listinfo/vtk-developers</a><br></blockquote></div><br>