visit-dav / visit

VisIt - Visualization and Data Analysis for Mesh-based Scientific Data
https://visit.llnl.gov
BSD 3-Clause "New" or "Revised" License
406 stars 110 forks source link

VisIt 3.4.1 Compile error: PyVTKReference.cxx:1061:1: error: cannot convert 'std::nullptr_t' to 'Py_ssize_t' {aka 'long int'} in initialization #19582

Open tharman-git opened 1 month ago

tharman-git commented 1 month ago

Greetings,

I'm hitting a compilation error:

3.4.1-build/VTK-8.1.0/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx:230:1: error: cannot convert 'std::nullptr_t' to 'Py_ssize_t' {aka 'long int'} in initialization 3.4.1-build/VTK-8.1.0/Wrapping/PythonCore/PyVTKReference.cxx:1061:1: error: cannot convert 'std::nullptr_t' to 'Py_ssize_t' {aka 'long int'} in initialization 3.4.1-build/VTK-8.1.0/Wrapping/PythonCore/PyVTKReference.cxx:1118:1: error: cannot convert 'std::nullptr_t' to 'Py_ssize_t' {aka 'long int'} in initialization 3.4.1-build/VTK-8.1.0/Wrapping/PythonCore/PyVTKReference.cxx:1175:1: error: cannot convert 'std::nullptr_t' to 'Py_ssize_t' {aka 'long int'} in initialization 3.4.1-build/VTK-8.1.0/Wrapping/PythonCore/PyVTKReference.cxx:1232:1: error: cannot convert 'std::nullptr_t' to 'Py_ssize_t' {aka 'long int'} in initialization

with the the command:

build_visit3_4_1 --parallel --fortran --uintah --no-icet --mesagl --llvm --no-sphinx --skip-opengl-context-check --mpich --server-components-only --makeflags -j10

Attached is the log file.
build_visit3_4_1_log.gz

I'm compiling this on a cluster that is running:

Rocky Linux 8.8

with the modules:

1) chpc/1.0 (S) 2) gcc/11.2.0 3) zlib/1.3.1 4) openmpi/4.1.6 5) cmake/3.26.0

Thanks for any insight you may have. Todd Harman University of Utah

cyrush commented 1 month ago

@tharman-git can you try building with VTK-9 support?

--vtk9 (this will be the default for vtk in future releases)

biagas commented 1 month ago

@tharman-git, you might also want to try --qt6 as Qt 6 is the preferred version.

tharman-git commented 1 month ago

Thanks. I added --vtk9 an --qt6 options and it made it further to configuring mpich

`checking whether Fortran 77 compiler accepts option -O2... yes checking whether routines compiled with -O2 can be linked with ones compiled without -O2... yes checking how to get verbose linking output from /uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/bin/gfortran... -v checking for Fortran 77 libraries of /uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/bin/gfortran... -L/uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/lib64/../lib64 -L/uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/lib/../lib64 -L/uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/lib/gcc/x86_64-pc-linux-gnu/11.2.0 -L/uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/uufs/chpc.utah.edu/sys/spack/v019/linux-rocky8-x86_64/gcc-11.2.0/openmpi-4.1.6-wooyfpvdndufimxcy3rshvlfg7lvxsrv/lib -L/uufs/chpc.utah.edu/sys/spack/v019/linux-rocky8-x86_64/gcc-11.2.0/zlib-1.3.1-5e2k6fewfrs4jvmo3rcj4qlhbpo2uhvp/lib -L/uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/lib64 -L/uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/lib -L/uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../.. -lgfortran -lm -lquadmath checking whether /uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/bin/gfortran accepts the FLIBS found by autoconf... yes checking whether gcc links with FLIBS found by autoconf... yes checking whether Fortran 77 and C objects are compatible... yes checking for linker for Fortran main program... Use Fortran to link programs checking for Fortran 77 name mangling... lower uscore checking for libraries to link Fortran main with C stdio routines... none checking whether Fortran init will work with C... yes checking for extension for Fortran 90 programs... f90 checking whether the Fortran 90 compiler (/uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/bin/gfortran ) works... yes checking whether the Fortran 90 compiler (/uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/bin/gfortran ) is a cross-compiler... no checking whether Fortran 90 compiler works with Fortran 77 compiler... yes checking for shared library (esp. rpath) characteristics of F77... done (results in src/env/f77_shlib.conf) checking whether Fortran 77 accepts ! for comments... yes checking for include directory flag for Fortran... -I checking for Fortran 77 flag for library directories... -L checking whether Fortran 77 compiler processes .F files with C preprocessor... yes checking whether /uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/bin/gfortran allows mismatched arguments... no configure: error: The Fortran compiler /uufs/chpc.utah.edu/sys/spack/linux-rocky8-nehalem/gcc-8.5.0/gcc-11.2.0-wc2i7djjsrbmf7or7prpvcjf4xlcijdf/bin/gfortran will not compile files that call the same routine with arguments of different types.

I've attached the log file. build_visit3_4_1_log.gz

Note, this cluster has mpich modules if that helps: mpich/default mpich/3.2 mpich/3.2.1 mpich/3.3 mpich/3.3.1 mpich/3.4.2 mpich/4.0.2 mpich/4.1.1 mpich/4.1.2-gpu mpich/4.1.2 Should I downshift to gcc8.5?

tharman-git commented 1 month ago

I was able to get passed the fortran compiler issue by setting the flag: FFLAGS="-w -fallow-argument-mismatch -O2"

See URL below for details: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91731

I then ran:

'/configure --enable-shared --enable-fortran=all --prefix= make -j20 make install `

tharman-git commented 1 month ago

To configure Uintah I added -std=c++11 to build_visit3_4_1

21388: CFLAGS=\"-std=c++11 $CFLAGS $C_OPT_FLAGS -headerpad_max_install_names\" CXXFLAGS=\"-std=c++11 $CXXFLAGS $CXX_OPT_FLAGS\"

21409: CFLAGS=\"-std=c++11 $CFLAGS $C_OPT_FLAGS\" CXXFLAGS=\"-std=c++11 $CXXFLAGS $CXX_OPT_FLAGS\" \

biagas commented 1 month ago

To configure Uintah I added -std=c++11 to build_visit3_4_1

Yes, we discovered this and have fixed it for our next release.