From: Wheeler, F. W (Research) <wh...@cr...> - 2003-11-24 20:13:56
|
Peter, This dashboard build error at first looks like the vgl/vgui problems we saw and fixed last week, but this one is different. http://www.cs.rpi.edu/research/vision/vxl/Testing/Sites/crd.ge.com/Win2k_bcc -5.5.1_Release_NO_CONTRIB/20031124-0300-Nightly/BuildError.html Simple source updates and rebuilds are not helping this time. Does the const in "<const float>" in the error message look suspicious to you? Unfortunately the free Borland tools do not come with a useful tool like nm. I tried tracking this error backward on the dashboard. It seems to have started on Nov. 17 when most of the recent vgl changes were put in. However, I can't be completely sure of that because some of the older dashboard file change information is no longer available. Brad: Let me know if you get this same error on your local build. -Fred |
From: Brad K. <bra...@ki...> - 2003-11-24 20:35:52
|
On Mon, 24 Nov 2003, Wheeler, Frederick W (Research) wrote: > Simple source updates and rebuilds are not helping this time. Does the > const in "<const float>" in the error message look suspicious to you? > Unfortunately the free Borland tools do not come with a useful tool like > nm. It should come with "tdump", which is Borland 5.5's equivalent of nm or dumpbin. > Brad: Let me know if you get this same error on your local build. I will not be able to try this until tomorrow, but I will try it. -Brad |
From: Peter V. <Pet...@es...> - 2003-11-24 20:44:22
|
> Does the const in "<const float>" in the error message look suspicious to you? Maybe, yes. But I cannot see why vgui/vgui_soview2D.cxx would try to access something with a different signature than what vgl/Templates/vgl_distance+float-.cxx instantiates, since both are looking at the same template declaration in vgl/vgl_distance.h Could it have to do with different compiler options when building vgui/vgui_soview2D.cxx as compared to vgl/Templates/vgl_distance+float-.cxx ? Seems very unlikely to me, but that's all I can think of... -- Peter. |
From: Brad K. <bra...@ki...> - 2003-11-24 20:58:23
|
On Mon, 24 Nov 2003, Peter Vanroose wrote: > > Does the const in "<const float>" in the error message look suspicious to you? > > Maybe, yes. But I cannot see why vgui/vgui_soview2D.cxx would try to > access something with a different signature than what > vgl/Templates/vgl_distance+float-.cxx instantiates, since both are looking > at the same template declaration in vgl/vgl_distance.h > > Could it have to do with different compiler options when building > vgui/vgui_soview2D.cxx as compared to vgl/Templates/vgl_distance+float-.cxx ? > Seems very unlikely to me, but that's all I can think of... One of the known borland bugs is that it does not distinguish instantiations based on top-level cv-qualifiers. That is, "A<int>" and "A<int const>" are treated as the same instantiation or specialization. This case seems to be the opposite problem, though. Perhaps the linker does distinguish them. My guess is that this is happening: // Template: template <class T> void foo(T); // Source file foo+int-.cxx: template void foo<int>(int); // Instantiates foo<int> // Source file bar.cxx: void f() { const int x; foo(x); // Instantiates foo<int const> int y; foo(y); // Uses foo<int const> instantiation. } Then the linker sees bar.o and tries to find foo<int const>, but it has only foo<int>. This is only a guess. I have not yet looked at the problem in detail. I'll have more time tomorrow to try it. -Brad |