From: Michal S. <so...@cs...> - 2007-12-20 15:15:12
|
Hello fellow vxl-ers, I ran into the following compiler error when building vnl: Building CXX object core/vnl/CMakeFiles/vnl.dir/Templates/vnl_vector+vnl_rational-.o vxlsrc/core/vnl/vnl_sse.h: In constructor `vnl_vector<T>::vnl_vector(const vnl_matrix<T>&, const vnl_vector<T>&, vnl_tag_mul) [with T = vnl_rational]': vxlsrc/core/vnl/vnl_vector.txx:247: instantiated from `vnl_vector<T>::vnl_vector(const vnl_matrix<T>&, const vnl_vector<T>&, vnl_tag_mul) [with T = vnl_rational]' vxlsrc/core/vnl/Templates/vnl_vector+vnl_rational-.cxx:4: instantiated from here vxlsrc/core/vnl/vnl_sse.h:158: sorry, unimplemented: inlining failed in call to 'static void vnl_sse<T>::matrix_x_vector(const T*, const T*, T*, unsigned int, unsigned int) [with T = vnl_rational]': function body not available vxlsrc/core/vnl/vnl_vector.txx:247: sorry, unimplemented: called from here gmake[2]: *** [core/vnl/CMakeFiles/vnl.dir/Templates/vnl_vector+vnl_rational-.o] Error 1 gmake[2]: Target `core/vnl/CMakeFiles/vnl.dir/build' not remade because of errors. gmake[1]: *** [core/vnl/CMakeFiles/vnl.dir/all] Error 2 gmake[1]: Target `all' not remade because of errors. gmake: *** [all] Error 2 gmake: Target `default_target' not remade because of errors. I have a cvs version of vxl, g++ version 3.4, FreeBSD 6.2. This is a 64-bit machine. The compilation succeeds when I make a change in vnl_sse.h to remove VNL_SSE_FORCE_INLINE (SSE support is turned OFF in CMake): --- vnl_sse.h 20 Nov 2007 18:57:31 -0000 1.6 +++ vnl_sse.h 17 Dec 2007 21:16:59 -0000 @@ -30,7 +30,7 @@ //Try and use compiler instructions for forcing inlining if possible //Also instruction for aligning stack memory is compiler dependent #if defined(VCL_GCC) -# define VNL_SSE_FORCE_INLINE __attribute__((always_inline)) inline +# define VNL_SSE_FORCE_INLINE inline # define VNL_SSE_STACK_ALIGNED(x) __attribute__((aligned(x))) #elif defined VCL_VC || defined VCL_ICC # define VNL_SSE_FORCE_INLINE __forceinline Since this happens even when SSE is OFF, should the force inlining block be conditioned on SSE being ON? Any thoughts? Thanks. Michal. ----------------------------------- Michal Sofka Department of Computer Science, RPI |