-
Notifications
You must be signed in to change notification settings - Fork 65
Closed
Description
Hi,
I'm trying to compile core with relatively recent compilers, and get errors due to cast between incompatible function types.
These errors can be bypassed by removing Werror from the FLAGS (but I suppose you want to fix the warning rather than fix the flag).
diff --git a/cmake/bob.cmake b/cmake/bob.cmake
index fb68a8dc..21ce40f4 100644
--- a/cmake/bob.cmake
+++ b/cmake/bob.cmake
@@ -64,11 +64,11 @@ function(bob_begin_cxx_flags)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
if (${PROJECT_NAME}_CXX_WARNINGS)
- set(FLAGS "${FLAGS} -Werror -Wall -Wextra -Wno-strict-overflow")
+ set(FLAGS "${FLAGS} -Wall -Wextra -Wno-strict-overflow")
endif()
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
if (${PROJECT_NAME}_CXX_WARNINGS)
- set(FLAGS "${FLAGS} -Werror -Wall -Wextra -Wno-strict-overflow")
+ set(FLAGS "${FLAGS} -Wall -Wextra -Wno-strict-overflow")
endif()
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
else()
My compilers:
Currently Loaded Modulefiles:
1) paraview/5.10.0(default) 2) gcc/10.2.0(default) 3) mpi.ompi/4.1.0(default)
Some environments variables for compiling:
export myLibs=/export/dump/ulrich/myLibs/
export path_to_SimModeler=$myLibs/simModelerLib/16.0-220326/
export mpi_name=openmpi3
export path_to_pumi=$myLibs/core/
export path_to_SimModeler_lib=$path_to_SimModeler/lib/x64_rhel8_gcc83
export path_to_SimModeler_include_dir=$path_to_SimModeler/include
The compiling process and the errors:
ulrich@heisenbug:/export/dump/ulrich/myLibs/core$ mkdir build && cd build
ulrich@heisenbug:/export/dump/ulrich/myLibs/core/build$ cmake .. \
> -DCMAKE_C_COMPILER="`which mpicc`" \
> -DCMAKE_CXX_COMPILER="`which mpiCC`" \
> -DSCOREC_EXTRA_C_FLAGS="-O2 -g -Wall" \
> -DSCOREC_EXTRA_CXX_FLAGS="-O2 -g -Wall" \
> -DCMAKE_INSTALL_PREFIX=$path_to_pumi \
> -DENABLE_SIMMETRIX=ON \
> -DSIM_MPI=$mpi_name \
> -DSIMMETRIX_LIB_DIR=$path_to_SimModeler_lib \
> -DSIMMODSUITE_INCLUDE_DIR=$path_to_SimModeler_include_dir
-- The CXX compiler identification is GNU 10.2.0
-- The C compiler identification is GNU 10.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/software/openmpi/buster/4.1.0_gcc-10.2.0/bin/mpiCC - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/software/openmpi/buster/4.1.0_gcc-10.2.0/bin/mpicc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- CMAKE_VERSION: 3.18.4
-- SCOREC_VERSION: 2.2.7
-- BUILD_TESTING: OFF
-- CMAKE_INSTALL_PREFIX: /export/dump/ulrich/myLibs/core
-- BUILD_SHARED_LIBS: OFF
-- CMAKE_CXX_FLAGS: -O2 -g -Werror -Wall -Wextra -Wno-strict-overflow -O2 -g -Wall
-- CMAKE_CXX_FLAGS = -O2 -g -Werror -Wall -Wextra -Wno-strict-overflow -O2 -g -Wall
-- Try C99 C flag = [ ]
-- Performing Test C99_FLAG_DETECTED
-- Performing Test C99_FLAG_DETECTED - Success
-- CMAKE_C_FLAGS = -O2 -g -Werror -Wall -Wextra -Wno-strict-overflow -O2 -g -Wall
-- IS_TESTING: OFF
-- MESHES: /export/dump/ulrich/myLibs/core/pumi-meshes
-- BUILD_EXES: ON
-- PUMI_FORTRAN_INTERFACE: OFF
-- PUMI_PYTHON_INTERFACE: OFF
-- MPIRUN: /opt/software/openmpi/buster/4.1.0_gcc-10.2.0/bin/mpirun -np
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.13") found components: doxygen dot
-- ENABLE_SIMMETRIX: ON
-- ENABLE_OMEGA_H: OFF
-- ENABLE_FPP: OFF
-- Building with SimModSuite 16.0.220326
-- SIM_ARCHOS x64_rhel8_gcc83
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
The package name passed to `find_package_handle_standard_args`
(SIMMODSUITE) does not match the name of the calling package (SimModSuite).
This can lead to problems in calling code that expects `find_package`
result variables (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
cmake/FindSimModSuite.cmake:177 (find_package_handle_standard_args)
CMakeLists.txt:114 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Found SIMMODSUITE: /export/dump/ulrich/myLibs/simModelerLib/16.0-220326/lib/x64_rhel8_gcc83/libSimPartitionedMesh-mpi.a;/export/dump/ulrich/myLibs/simModelerLib/16.0-220326/lib/x64_rhel8_gcc83/libSimDiscrete.a;/export/dump/ulrich/myLibs/simModelerLib/16.0-220326/lib/x64_rhel8_gcc83/libSimField.a;/export/dump/ulrich/myLibs/simModelerLib/16.0-220326/lib/x64_rhel8_gcc83/libSimAdvMeshing.a;/export/dump/ulrich/myLibs/simModelerLib/16.0-220326/lib/x64_rhel8_gcc83/libSimPartitionedMesh-mpi.a;/export/dump/ulrich/myLibs/simModelerLib/16.0-220326/lib/x64_rhel8_gcc83/libSimMeshing.a;/export/dump/ulrich/myLibs/simModelerLib/16.0-220326/lib/x64_rhel8_gcc83/libSimMeshTools.a;/export/dump/ulrich/myLibs/simModelerLib/16.0-220326/lib/x64_rhel8_gcc83/libSimModel.a;/export/dump/ulrich/myLibs/simModelerLib/16.0-220326/lib/x64_rhel8_gcc83/libSimPartitionWrapper-mpich3.a
-- LION_COMPRESS: OFF
-- PCU_COMPRESS: OFF
-- ENABLE_FIELDSIM: OFF
-- MDS_SET_MAX: 256
-- MDS_ID_TYPE: int
-- ENABLE_ZOLTAN: OFF
-- Looking for clock_gettime
-- Looking for clock_gettime - found
-- ENABLE_STK: OFF
-- ENABLE_STK_MESH: OFF
-- ENABLE_DSP: OFF
-- Looking for mallinfo2
-- Looking for mallinfo2 - not found
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
SCOREC_EXTRA_C_FLAGS
-- Build files have been written to: /export/dump/ulrich/myLibs/core/build
ulrich@heisenbug:/export/dump/ulrich/myLibs/core/build$ make
Scanning dependencies of target lion
[ 1%] Building CXX object lion/CMakeFiles/lion.dir/lionBase64.cc.o
[ 1%] Building C object lion/CMakeFiles/lion.dir/lionPrint.c.o
[ 1%] Building CXX object lion/CMakeFiles/lion.dir/lionNoZLib.cc.o
[ 1%] Linking CXX static library liblion.a
[ 1%] Built target lion
Scanning dependencies of target pcu
[ 1%] Building C object pcu/CMakeFiles/pcu.dir/pcu.c.o
[ 1%] Building C object pcu/CMakeFiles/pcu.dir/pcu_aa.c.o
[ 2%] Building C object pcu/CMakeFiles/pcu.dir/pcu_coll.c.o
[ 2%] Building C object pcu/CMakeFiles/pcu.dir/pcu_io.c.o
[ 2%] Building C object pcu/CMakeFiles/pcu.dir/pcu_buffer.c.o
[ 2%] Building C object pcu/CMakeFiles/pcu.dir/pcu_mpi.c.o
[ 2%] Building C object pcu/CMakeFiles/pcu.dir/pcu_msg.c.o
[ 4%] Building C object pcu/CMakeFiles/pcu.dir/pcu_order.c.o
[ 4%] Building C object pcu/CMakeFiles/pcu.dir/pcu_pmpi.c.o
[ 4%] Building C object pcu/CMakeFiles/pcu.dir/pcu_util.c.o
[ 4%] Building C object pcu/CMakeFiles/pcu.dir/noto/noto_malloc.c.o
[ 4%] Building C object pcu/CMakeFiles/pcu.dir/reel/reel.c.o
[ 4%] Linking C static library libpcu.a
[ 4%] Built target pcu
Scanning dependencies of target gmi
[ 4%] Building C object gmi/CMakeFiles/gmi.dir/gmi.c.o
[ 4%] Building C object gmi/CMakeFiles/gmi.dir/agm.c.o
[ 4%] Building C object gmi/CMakeFiles/gmi.dir/gmi_base.c.o
[ 4%] Building C object gmi/CMakeFiles/gmi.dir/gmi_file.c.o
[ 5%] Building C object gmi/CMakeFiles/gmi.dir/gmi_lookup.c.o
[ 5%] Building C object gmi/CMakeFiles/gmi.dir/gmi_mesh.c.o
[ 5%] Building C object gmi/CMakeFiles/gmi.dir/gmi_null.c.o
[ 5%] Building C object gmi/CMakeFiles/gmi.dir/gmi_analytic.c.o
[ 5%] Linking CXX static library libgmi.a
[ 5%] Built target gmi
Scanning dependencies of target gmi_sim
[ 6%] Building CXX object gmi_sim/CMakeFiles/gmi_sim.dir/gmi_sim.cc.o
In file included from /opt/software/openmpi/buster/4.1.0_gcc-10.2.0/include/openmpi/ompi/mpi/cxx/mpicxx.h:277,
from /opt/software/openmpi/buster/4.1.0_gcc-10.2.0/include/mpi.h:2887,
from /export/dump/ulrich/myLibs/core/pcu/PCU.h:16,
from /export/dump/ulrich/myLibs/core/gmi_sim/gmi_sim.cc:10:
/opt/software/openmpi/buster/4.1.0_gcc-10.2.0/include/openmpi/ompi/mpi/cxx/op_inln.h: In member function ‘virtual void MPI::Op::Init(void (*)(const void*, void*, int, const MPI::Datatype&), bool)’:
/opt/software/openmpi/buster/4.1.0_gcc-10.2.0/include/openmpi/ompi/mpi/cxx/op_inln.h:121:25: error: cast between incompatible function types from ‘void (*)(void*, void*, int*, ompi_datatype_t**, void (*)(void*, void*, int*, ompi_datatype_t**))’ to ‘void (*)(void*, void*, int*, ompi_datatype_t**)’ [-Werror=cast-function-type]
121 | (void)MPI_Op_create((MPI_User_function*) ompi_mpi_cxx_op_intercept,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/software/openmpi/buster/4.1.0_gcc-10.2.0/include/openmpi/ompi/mpi/cxx/op_inln.h:123:38: error: cast between incompatible function types from ‘void (*)(const void*, void*, int, const MPI::Datatype&)’ to ‘void (*)(void*, void*, int*, ompi_datatype_t**)’ [-Werror=cast-function-type]
123 | ompi_op_set_cxx_callback(mpi_op, (MPI_User_function*) func);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [gmi_sim/CMakeFiles/gmi_sim.dir/build.make:82: gmi_sim/CMakeFiles/gmi_sim.dir/gmi_sim.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:876: gmi_sim/CMakeFiles/gmi_sim.dir/all] Error 2
make: *** [Makefile:160: all] Error 2
Thanks in advance,
Thomas Ulrich.