easybuilders / easybuild-easyconfigs

A collection of easyconfig files that describe which software to build using which build options with EasyBuild.
https://easybuild.io
GNU General Public License v2.0
378 stars 701 forks source link

installation of ELPA 2019.11.001 with foss/2019b fails on POWER #13873

Open boegel opened 3 years ago

boegel commented 3 years ago

(as dependency for QuantumESPRESSO-6.6-foss-2019b.eb)

libtool: compile:  mpicc -DHAVE_CONFIG_H -I. -I/home/centos/EasyBuild/software/Python/2.7.16-GCCcore-8.3.0/include -I/home/centos/EasyBuild/software/FFTW/3.3.8-gompi-2019b/include -I/home/centos/EasyBuild/software/ScaLAPACK/2.0.2-gompi-2019b/include -I/home/centos/EasyBuild/software/OpenBLAS/0.3.7-GCC-8.3.0/include -O2 -ftree-vectorize -mcpu=native -fno-math-errno -fopenmp -std=gnu11 -MT src/elpa2/kernels/real_vsx_2hv_double_precision.lo -MD -MP -MF src/elpa2/kernels/.deps/real_vsx_2hv_double_precision.Tpo -c src/elpa2/kernels/real_vsx_2hv_double_precision.c  -fPIC -DPIC -o src/elpa2/kernels/.libs/real_vsx_2hv_double_precision.o
In file included from src/elpa2/kernels/real_vsx_2hv_double_precision.c:54:
src/elpa2/kernels/real_128bit_256bit_512bit_BLOCK_template.c: In function hh_trafo_kernel_12_VSX_2hv_double:
src/elpa2/kernels/real_128bit_256bit_512bit_BLOCK_template.c:387:18: warning: implicit declaration of function _SIMD_LOAD; did you mean SIMD_SET? [-Wimplicit-function-declaration]
 #define _LOAD(x) _SIMD_LOAD(0, (unsigned long int *) x)
                  ^~~~~~~~~~
src/elpa2/kernels/real_128bit_256bit_512bit_BLOCK_template.c:1911:26: note: in expansion of macro _LOAD
     __SIMD_DATATYPE x1 = _LOAD(&q[ldq]);
                          ^~~~~
src/elpa2/kernels/real_128bit_256bit_512bit_BLOCK_template.c:387:18: error: incompatible types when initializing type __vector double {aka __vector(2) double} using type int
 #define _LOAD(x) _SIMD_LOAD(0, (unsigned long int *) x)
                  ^~~~~~~~~~

@branfosj Does this ring any bells for you?

branfosj commented 3 years ago

In src/elpa2/kernels/real_128bit_256bit_512bit_BLOCK_template.c lines 179 to 183 are:

#ifdef DOUBLE_PRECISION_REAL
#define offset 2
#define __SIMD_DATATYPE __vector double
#define __SIMD_LOAD (__vector double) vec_ld
#endif

Based on the rest of the file the __SIMD_LOAD should be _SIMD_LOAD.

Whether that change is sufficient to finish the build I've not tested.

I have tested ELPA-2020.11.001-foss-2020b.eb and ELPA-2021.05.001-foss-2021a.eb fail and all three fail in different ways.