dealii / candi

candi - (Compile & Install) - Downloads, configures, builds and installs deal.II
GNU Lesser General Public License v3.0
63 stars 61 forks source link

strange dealii configure failure, RHEL8 #329

Open jochenkamm opened 1 year ago

jochenkamm commented 1 year ago

Hello again,

I am sorry I am already back with another issue. I have been stuck at that point before, and I couldn't solve it in a few days trying. dealii configure fails:

Call Stack (most recent call first):
  cmake/macros/macro_verbose_include.cmake:19 (INCLUDE)
  CMakeLists.txt:138 (VERBOSE_INCLUDE)

-- Configuring incomplete, errors occurred!

and the error is very arcane to me, and it appears as if my compiler isn't behaving correctly.

Performing C++ SOURCE FILE Test DEAL_II_HAVE_ALTIVEC failed with the following compile output:
Change Dir: /home/my_user_name/dealii-candi/tmp/build/deal.II-v9.4.1/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_8bb63/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_8bb63.dir/build.make CMakeFiles/cmTC_8bb63.dir/build
gmake[1]: Entering directory '/home/my_user_name/dealii-candi/tmp/build/deal.II-v9.4.1/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_8bb63.dir/src.cxx.o
/usr/bin/c++ -DDEAL_II_HAVE_ALTIVEC  -march=native -o CMakeFiles/cmTC_8bb63.dir/src.cxx.o -c /home/my_user_name/dealii-candi/tmp/build/deal.II-v9.4.1/CMakeFiles/CMakeTmp/src.cxx
/home/my_user_name/dealii-candi/tmp/build/deal.II-v9.4.1/CMakeFiles/CMakeTmp/src.cxx:3:6: error: #error "__ALTIVEC__ flag not set, no support for Altivec"
     #error "__ALTIVEC__ flag not set, no support for Altivec"
      ^~~~~
/home/my_user_name/dealii-candi/tmp/build/deal.II-v9.4.1/CMakeFiles/CMakeTmp/src.cxx:5:14: fatal error: altivec.h: No such file or directory
     #include <altivec.h>
              ^~~~~~~~~~~
compilation terminated.
gmake[1]: *** [CMakeFiles/cmTC_8bb63.dir/build.make:78: CMakeFiles/cmTC_8bb63.dir/src.cxx.o] Error 1
gmake[1]: Leaving directory '/home/my_user_name/dealii-candi/tmp/build/deal.II-v9.4.1/CMakeFiles/CMakeTmp'
gmake: *** [Makefile:127: cmTC_8bb63/fast] Error 2

...and run output:

Return value: 1
Source file was:

    #ifndef __ALTIVEC__
    #error "__ALTIVEC__ flag not set, no support for Altivec"
    #endif
    #include <altivec.h>
    #undef vector
    #undef pixel
    #undef bool
    int main()
    {
    __vector double a, b, data1, data2;
    const int n_vectors = sizeof(a)/sizeof(double);
    double * ptr = reinterpret_cast<double*>(&a);
    ptr[0] = static_cast<volatile double>(1.0);
    for (int i=1; i<n_vectors; ++i)
      ptr[i] = 0.0;
    b = vec_splats (static_cast<volatile double>(2.25));
    data1 = vec_add (a, b);
    data2 = vec_mul (b, data1);
    ptr = reinterpret_cast<double*>(&data2);
    int return_value = 0;
    if (ptr[0] != 7.3125)
      return_value += 1;
    for (int i=1; i<n_vectors; ++i)
      if (ptr[i] != 5.0625)
        return_value += 2;
    b = vec_splats (static_cast<volatile double>(-1.0));
    data1 = vec_abs(vec_mul (b, data2));
    vec_vsx_st(data1, 0, ptr);
    b = vec_vsx_ld(0, ptr);
    ptr = reinterpret_cast<double*>(&b);
    if (ptr[0] != 7.3125)
      return_value += 4;
    for (int i=1; i<n_vectors; ++i)
      if (ptr[i] != 5.0625)
        return_value += 8;
    return return_value;
    }

and many more similar fails follow. Altivec should in anyway not be relevant because this is an intel system, but with the other errors, it could be something more fundamental.

Any help is appreciated.

Here is gcc (RHEL8):

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 8.5.0 20210514 (Red Hat 8.5.0-16) (GCC)
Rombur commented 1 year ago

This is not the real error. We try to introspect your compiler and your computer's architecture by writing many simple programs that give us information by passing or failing. The fact that this code fails is not a problem. Try to configure in a clean directory and pay attention to all the messages on your screen. Sometimes the error happens at the beginning of the configuration but CMake keeps going on. This often happens when there is a problem with Trilinos