[vtk-developers] New build error in 64 bits
Sean McBride
sean at rogue-research.com
Mon Jun 18 17:37:17 EDT 2007
On 6/18/07 4:15 PM, Jeff Baumes said:
>Are you saying that vtkTypeInt64 is typedef-ed to long while
>vtkTypeInt64Array's superclass is vtkLongLongArray?
Yes.
>If this is indeed
>the case, please provide more details on your system so I can see if I
>can replicate it. The parallel logic in vtkType.h and
>Common\CMakeLists.txt seems like it would avoid this type of behavior.
> Here is the relevant cmake script. VTK_TYPE_NATIVE_Int64 determines
>the superclass of vtkTypeInt64.
We are using a pre-release version of Mac OS X 10.5 Leopard, and
building VTK as a 4-way Universal Binary (ppc32, ppc64, intel32,
intel64). We have a nightly build of this configuration, but it is not
on the public kitware dashboard because of the pre-release nature of the OS.
We'll look at this more tomorrow, but our suspicion is that your recent
changes are not 'cross-compilation friendly'. Universal Binaries are
essentially a form of cross compilation.
If you take a look at vtkConfigure.h.in you'll see we did the following
some months ago:
#if !defined(__APPLE__)
# define VTK_SIZEOF_CHAR @VTK_SIZEOF_CHAR@
# define VTK_SIZEOF_SHORT @VTK_SIZEOF_SHORT@
# define VTK_SIZEOF_INT @VTK_SIZEOF_INT@
# define VTK_SIZEOF_LONG @VTK_SIZEOF_LONG@
# define VTK_SIZEOF_FLOAT @VTK_SIZEOF_FLOAT@
# define VTK_SIZEOF_DOUBLE @VTK_SIZEOF_DOUBLE@
#else
# define VTK_SIZEOF_CHAR 1
# define VTK_SIZEOF_SHORT 2
# define VTK_SIZEOF_INT 4
# if defined(__LP64__) && __LP64__
# define VTK_SIZEOF_LONG 8
# else
# define VTK_SIZEOF_LONG 4
# endif
# define VTK_SIZEOF_FLOAT 4
# define VTK_SIZEOF_DOUBLE 8
#endif
This was needed because anything that does introspection of the
compiling machine is a no-no for cross-compilation. In our build, the
compiler does 4 passes, one for each architecture, and each time the
size of some fundamental types change.
See also
<http://www.vtk.org/Bug/bug.php?op=show&bugid=3059>
We suspect that those vtkTypeFooArray classes are somehow autogenerated,
right? If so, when does that happen? Our guess is that it only happens
once, and thus the problem...
--
____________________________________________________________
Sean McBride, B. Eng sean at rogue-research.com
Rogue Research www.rogue-research.com
Mac Software Developer Montréal, Québec, Canada
More information about the vtk-developers
mailing list