[petsc-users] Info; build petsc-3.20.2 with llvm check fails

Satish Balay balay.anl at fastmail.org
Thu Feb 20 12:52:05 CST 2025


Any particular reason to use these flags? What clang version? OS?

Best if you can send build logs [perhaps to petsc-maint]

Can you try a simpler build and see if it works:

./configure --with-mpi-dir=/PATH_TO/models/src/v2021.03-2.0.3-llvm --download-fblaslapack="$(DIR_SRC)/fblaslapack-$(FBLASLAPACK_VERSION).tar.gz" && make && make check
or:
./configure --with-cc=clang --with-cxx=clang++ --with-fc=gfortran --download-mpich="$(DIR_SRC)/mpich-$(MPICH_VERSION).tar.gz" --download-fblaslapack="$(DIR_SRC)/fblaslapack-$(FBLASLAPACK_VERSION).tar.gz" && make && make check

Satish

On Thu, 20 Feb 2025, Michael Schaferkotter wrote:

> build petsc-3.20.3 with llvm, clang, clang++, gfortran 
> 
> CFLAGS='-std=c++11'
> CXXFLAGS='-std=c++11 -D_GLIBCXX_USE_CXX11_ABI=1'
> LDLIBS += -lstdc++
> 
> $PETSC_ARCH     arch-linux-c-opt
> MPIF90  = ./models/src/v2021.03-2.0.3-llvm/bin/mpif90
> MPICC   = ./models/src/v2021.03-2.0.3-llvm/bin/mpicc
> CLANG   = clang
> FC   = gfortran
> 
> 
> Petsc libraries are built;
> /models/src/v2021.03-2.0.3-llvm/lib/libpetsc.so@
> /models/src/v2021.03-2.0.3-llvm/lib/libpetsc.so.3.020@
> /models/src/v2021.03-2.0.3-llvm/lib/libpetsc.so.3.020.3*
> 
> 
> The configure is this:
>         cd $(PETSC_SRC) && unset CXX CC FC F77 && $(PYTHON2) ./configure --prefix=$(PREFIX) \
>   --with-cc=clang \
>   --with-cxx=clang++ \
>   --with-fc=gfortran \
>   --download-mpich="$(DIR_SRC)/mpich-$(MPICH_VERSION).tar.gz" \
>   --download-fblaslapack="$(DIR_SRC)/fblaslapack-$(FBLASLAPACK_VERSION).tar.gz" \
>   --download-sowing \
>   --with-debugging=$(PETSC_DBG) \
>   --with-shared-libraries=1 \
>  CFLAGS='-std=c11' \
>   CXXFLAGS='-std=c++11 -D_GLIBCXX_USE_CXX11_ABI=1' \
>   CPPFLAGS='-D_GLIBCXX_USE_CXX11_ABI=1' \
>   LDFLAGS='-L$(LLVM_LIB)' \
>   LIBS='-lstdc++’ \
>   --COPTFLAGS=$(COPTFLAGS) --CXXOPTFLAGS=$(CXXOPTFLAGS) --FOPTFLAGS=$(FOPTFLAGS)
> 
> 
> Here is the make:
> 
>         $(MAKE) -C $(PETSC_SRC) PETSC_DIR=$(PETSC_SRC) PETSC_ARCH=$(PETSC_ARCH) all
> 
> 
> Check-petsc is:
> 
>         $(MAKE) -C $(PETSC_SRC) PETSC_DIR=$(PETSC_SRC) PETSC_ARCH=$(PETSC_ARCH) test
> 
> Here is the log file for test:
> 
> make[1]: Entering directory '/models/src/v2021.03-2.0.3-llvm/build/petsc/petsc-3.20.3'
> /usr/bin/python3 /models/src/v2021.03-2.0.3-llvm/build/petsc/petsc-3.20.3/config/gmakegentest.py --petsc-dir=/models/src/v2021.03-2.0.3-llvm/build/petsc/petsc-3.20.3 --petsc-arch=arch-linux-c-opt --testdir=./arch-linux-c-opt/tests --srcdir /models/src/v2021.03-2.0.3-llvm/build/petsc/petsc-3.20.3/src --pkg-pkgs "sys vec mat dm ksp snes ts tao"
> Using MAKEFLAGS: iw -- PETSC_ARCH=arch-linux-c-opt PETSC_DIR=/models/src/v2021.03-2.0.3-llvm/build/petsc/petsc-3.20.3
>          CC arch-linux-c-opt/tests/sys/classes/draw/tests/ex1.o
>     CLINKER arch-linux-c-opt/tests/sys/classes/draw/tests/ex1
> /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../bin/ld: arch-linux-c-opt/lib/libpetsc.so: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()'
> /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../bin/ld: arch-linux-c-opt/lib/libpetsc.so: undefined reference to `std::__throw_bad_array_new_length()'
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
> make[1]: [gmakefile.test:273: arch-linux-c-opt/tests/sys/classes/draw/tests/ex1] Error 1 (ignored)
> 
> 
> There are many errors of the ilk: 
> 
> std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()
> 
> [lib]$ nm -A libpetsc.so | grep basic_ostringstream
> libpetsc.so:                 U _ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv at GLIBCXX_3.4.21
> libpetsc.so:                 U _ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
> libpetsc.so:                 U _ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev at GLIBCXX_3.4.21
> 
> 
> I/m new to llvm and this is the first time to compile petsc.3.20.3 with llvm compilers.
> 
> Clearly something is amiss.
> 
> Any ideas appreciated.
> 
> Michael
> 
> 
> 


More information about the petsc-users mailing list