Boost logo

Boost Users :

Subject: [Boost-users] PGI compile problem with lanczos_sse2.hpp
From: Brian Carnes (bcarnes_at_[hidden])
Date: 2010-10-04 11:06:21


I am trying to link to a library that uses some code from boost. So far I have been able to build the code under gcc, intel and pathscale compilers. However, I get about 100 errors from this file under pgi (versions 7.1, 7.2 and 10.1)

   boost/boost/math/special_functions/detail/lanczos_sse2.hpp

I have copied the first few error messages to the end of this email. My suspicion is that some settings are not correct for this compilation under PGI. I did check that the header files used by "lanczos_sse2.hpp" were present. I don't have any experience with the SSE/SSE2 optimizations.

FYI, our build system uses bjam, so there is a Jamfile for boost, which I can send if needed.

Thanks for any assistance,
-Brian

****** pgi 7.1 compile errors ********

"/scratch/SIERRA_TRILINOS/code/TPLs_src/boost/boost/math/special_functions/detail/lanczos_sse2.hpp",
line 26: error:
          identifier "align" is undefined
     static const ALIGN16 double coeff[26] = {
                  ^

"/scratch/SIERRA_TRILINOS/code/TPLs_src/boost/boost/math/special_functions/detail/lanczos_sse2.hpp",
line 26: error:
          expected a ";"
     static const ALIGN16 double coeff[26] = {
                          ^

"/scratch/SIERRA_TRILINOS/code/TPLs_src/boost/boost/math/special_functions/detail/lanczos_sse2.hpp",
line 54: error:
          a global-scope declaration may not have this storage class
     register __m128d vx = _mm_load1_pd(&x);
     ^

"/scratch/SIERRA_TRILINOS/code/TPLs_src/boost/boost/math/special_functions/detail/lanczos_sse2.hpp",
line 54: error:
          identifier "x" is undefined
     register __m128d vx = _mm_load1_pd(&x);
                                         ^

"/scratch/SIERRA_TRILINOS/code/TPLs_src/boost/boost/math/special_functions/detail/lanczos_sse2.hpp",
line 55: error:
          a global-scope declaration may not have this storage class
     register __m128d sum_even = _mm_load_pd(coeff);
     ^

"/scratch/SIERRA_TRILINOS/code/TPLs_src/boost/boost/math/special_functions/detail/lanczos_sse2.hpp",
line 55: error:
          identifier "coeff" is undefined
     register __m128d sum_even = _mm_load_pd(coeff);
                                             ^

"/scratch/SIERRA_TRILINOS/code/TPLs_src/boost/boost/math/special_functions/detail/lanczos_sse2.hpp",
line 56: error:
          a global-scope declaration may not have this storage class
     register __m128d sum_odd = _mm_load_pd(coeff+2);
     ^

"/scratch/SIERRA_TRILINOS/code/TPLs_src/boost/boost/math/special_functions/detail/lanczos_sse2.hpp",
line 57: error:
          a global-scope declaration may not have this storage class
     register __m128d nc_odd, nc_even;
     ^

"/scratch/SIERRA_TRILINOS/code/TPLs_src/boost/boost/math/special_functions/detail/lanczos_sse2.hpp",
line 57: error:
          a global-scope declaration may not have this storage class
     register __m128d nc_odd, nc_even;
     ^


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net