hiddenSymmetries / virtual-casing

4 stars 7 forks source link

Compilation failure with gcc/7.3.1 #14

Open mbkumar opened 2 months ago

mbkumar commented 2 months ago

Hello,

When I try to compile virtual casing on Amazon Linux 2 (derivative of CentOS 7) with the default gcc 7.3.1, I am getting errors.

The output is

 [1/2] Building CXX object CMakeFiles/virtual_casing.dir/src/python.cpp.o
  FAILED: CMakeFiles/virtual_casing.dir/src/python.cpp.o
  /usr/bin/c++ -DSCTL_HAVE_BLAS -DSCTL_HAVE_LAPACK -Dvirtual_casing_EXPORTS -I/shared/t1e-hpc/conda-envs/cerfon-20240917/include -I/shared/software/virtual-casing/include -I/shared/software/virtual-casing/extern/SCTL/include -I/shared/software/virtual-casing/extern/BIEST/include -isystem /shared/t1e-hpc/conda-envs/cerfon-20240917/include/python3.10 -isystem /shared/software/virtual-casing/extern/pybind11/include -O3 -march=native -mfma -ffp-contract=fast -O3 -DNDEBUG -std=gnu++14 -fPIC -fvisibility=hidden -flto -fno-fat-lto-objects -fopenmp -MD -MT CMakeFiles/virtual_casing.dir/src/python.cpp.o -MF CMakeFiles/virtual_casing.dir/src/python.cpp.o.d -o CMakeFiles/virtual_casing.dir/src/python.cpp.o -c /shared/software/virtual-casing/src/python.cpp
  In file included from /shared/software/virtual-casing/extern/SCTL/include/sctl/lagrange-interp.txx:12:0,
                   from /shared/software/virtual-casing/extern/SCTL/include/sctl.hpp:18,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest/surface.hpp:4,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest/boundary_integ_op.hpp:4,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest/vacuum-field.hpp:4,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest.hpp:6,
                   from /shared/software/virtual-casing/include/virtual-casing.hpp:2,
                   from /shared/software/virtual-casing/src/python.cpp:2:
  /shared/software/virtual-casing/extern/SCTL/include/sctl/vec.txx:20:42: error: ‘VData’ does not name a type; did you mean ‘VecData’?
       template <class... T1> static inline VData apply(T1... start, T x) {
                                            ^~~~~
                                            VecData
  In file included from /shared/software/virtual-casing/extern/SCTL/include/sctl.hpp:26:0,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest/surface.hpp:4,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest/boundary_integ_op.hpp:4,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest/vacuum-field.hpp:4,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest.hpp:6,
                   from /shared/software/virtual-casing/include/virtual-casing.hpp:2,
                   from /shared/software/virtual-casing/src/python.cpp:2:
  /shared/software/virtual-casing/extern/SCTL/include/sctl/tensor.txx:261:163: error: prototype for ‘sctl::Tensor<ValueType, true, TensorArgExtract<0, Args ...>(), N2> sctl::Tensor<ValueType, own_data, Args>::operator*(const sctl::Tensor<ValueType, own_data_, N1, N2>&) const’ does not match any in class ‘sctl::Tensor<ValueType, own_data, Args>’
     template <class ValueType, bool own_data, Long... Args> template <bool own_data_, Long N1, Long N2> Tensor<ValueType, true, TensorArgExtract<0, Args...>(), N2> Tensor<ValueType, own_data, Args...>::operator*(const Tensor<ValueType, own_data_, N1, N2> &M2) const {
                                                                                                                                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  In file included from /shared/software/virtual-casing/extern/SCTL/include/sctl.hpp:25:0,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest/surface.hpp:4,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest/boundary_integ_op.hpp:4,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest/vacuum-field.hpp:4,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest.hpp:6,
                   from /shared/software/virtual-casing/include/virtual-casing.hpp:2,
                   from /shared/software/virtual-casing/src/python.cpp:2:
  /shared/software/virtual-casing/extern/SCTL/include/sctl/tensor.hpp:263:111: error: candidates are: template<class ValueType, bool own_data, long int ...Args> template<bool own_data_, long int N1, long int N2> sctl::Tensor<ValueType, true, TensorArgExtract<0, Args ...>(), N2> sctl::Tensor<ValueType, own_data, Args>::operator*(const sctl::Tensor<ValueType, own_data_, N1, N2>&) const
         template <bool own_data_, Long N1, Long N2> Tensor<ValueType, true, TensorArgExtract<0, Args...>(), N2> operator*(const Tensor<ValueType, own_data_, N1, N2> &M2) const;
                                                                                                                 ^~~~~~~~
  In file included from /shared/software/virtual-casing/extern/SCTL/include/sctl.hpp:26:0,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest/surface.hpp:4,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest/boundary_integ_op.hpp:4,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest/vacuum-field.hpp:4,
                   from /shared/software/virtual-casing/extern/BIEST/include/biest.hpp:6,
                   from /shared/software/virtual-casing/include/virtual-casing.hpp:2,
                   from /shared/software/virtual-casing/src/python.cpp:2:
  /shared/software/virtual-casing/extern/SCTL/include/sctl/tensor.txx:221:92: error:                 sctl::Tensor<ValueType, true, Args ...> sctl::Tensor<ValueType, own_data, Args>::operator*(const ValueType&) const
     template <class ValueType, bool own_data, Long... Args> Tensor<ValueType, true, Args...> Tensor<ValueType, own_data, Args...>::operator*(const ValueType &s) const {
                                                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dmalhotra commented 2 months ago

I believe older versions of GCC are not fully compliant or don't fully support the C++11 standard. This code compiles with GCC-9 and newer versions.