Open FreddieWitherden opened 4 months ago
@FreddieWitherden
Thanks for the report, I checked and the newest camp release is using std::malloc
and #include<cstdlib>
and should avoid this problem.
Our PR https://github.com/Alpine-DAV/ascent/pull/1245 (and associated branch task/2024_01_blt_update) have updates to use newer camp, umpire,etc.
Any chance you can try it out?
Trying the new branch it gets a bit further. Now breaks in mfem:
In file included from /home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/kdtree.hpp:15,
from /home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/kdtree.cpp:12:
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:317:12: error: ‘uint8_t’ in namespace ‘std’ does not name a type; did you mean ‘wint_t’?
317 | std::uint8_t dim;
| ^~~~~~~
| wint_t
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:320:25: error: expected ‘)’ before ‘dd’
320 | CompN(std::uint8_t dd):dim(dd) {}
| ~ ^~~
| )
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:356:27: error: ‘std::uint8_t’ has not been declared
356 | std::uint8_t cdim)
| ^~~~~~~
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp: In member function ‘bool mfem::KDTree<Tindex, Tfloat, ndim, Tnorm>::CompN::operator()(const mfem::KDTree<Tindex, Tfloat, ndim, Tnorm>::PointND&, const mfem::KDTree<Tindex, Tfloat, ndim, Tnorm>::PointND&)’:
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:325:23: error: ‘dim’ was not declared in this scope; did you mean ‘ndim’?
325 | return p1.xx[dim]<p2.xx[dim];
| ^~~
| ndim
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp: In member function ‘bool mfem::KDTree<Tindex, Tfloat, ndim, Tnorm>::CompN::operator()(const mfem::KDTree<Tindex, Tfloat, ndim, Tnorm>::NodeND&, const mfem::KDTree<Tindex, Tfloat, ndim, Tnorm>::NodeND&)’:
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:331:27: error: ‘dim’ was not declared in this scope; did you mean ‘ndim’?
331 | return n1.pt.xx[dim]<n2.pt.xx[dim];
| ^~~
| ndim
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp: In member function ‘void mfem::KDTree<Tindex, Tfloat, ndim, Tnorm>::SortInPlace(typename std::vector<NodeND>::iterator, typename std::vector<NodeND>::iterator, size_t)’:
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:368:12: error: ‘uint8_t’ is not a member of ‘std’; did you mean ‘wint_t’?
368 | std::uint8_t cdim=(std::uint8_t)(level%ndim);
| ^~~~~~~
| wint_t
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:372:54: error: ‘cdim’ was not declared in this scope; did you mean ‘ndim’?
372 | std::nth_element(itb, itb+siz/2, ite, CompN(cdim));
| ^~~~
| ndim
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp: In member function ‘void mfem::KDTree<Tindex, Tfloat, ndim, Tnorm>::PSearch(typename std::vector<NodeND>::iterator, typename std::vector<NodeND>::iterator, size_t, PointS&)’:
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:394:12: error: ‘uint8_t’ is not a member of ‘std’; did you mean ‘wint_t’?
394 | std::uint8_t dim=(std::uint8_t) (level%ndim);
| ^~~~~~~
| wint_t
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:401:24: error: ‘dim’ was not declared in this scope; did you mean ‘ndim’?
401 | if ((bc.sp.xx[dim]-bc.dist)>mtb->pt.xx[dim]) // look on the right only
| ^~~
| ndim
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp: In member function ‘void mfem::KDTree<Tindex, Tfloat, ndim, Tnorm>::NNS(PointND&, const int&, typename std::vector<NodeND>::iterator, typename std::vector<NodeND>::iterator, size_t, std::vector<std::tuple<Tfloat, Tindex> >&)’:
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:473:12: error: ‘uint8_t’ is not a member of ‘std’; did you mean ‘wint_t’?
473 | std::uint8_t dim=(std::uint8_t) (level%ndim);
| ^~~~~~~
| wint_t
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:489:21: error: ‘dim’ was not declared in this scope; did you mean ‘ndim’?
489 | if ((pt.xx[dim]-R)>mtb->pt.xx[dim]) // look to the right only
| ^~~
| ndim
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp: In member function ‘void mfem::KDTree<Tindex, Tfloat, ndim, Tnorm>::FindNeighborPoints(PointND&, Tfloat, typename std::vector<NodeND>::iterator, typename std::vector<NodeND>::iterator, size_t, std::vector<Tindex>&)’:
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:525:12: error: ‘uint8_t’ is not a member of ‘std’; did you mean ‘wint_t’?
525 | std::uint8_t dim=(std::uint8_t) (level%ndim);
| ^~~~~~~
| wint_t
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:532:21: error: ‘dim’ was not declared in this scope; did you mean ‘ndim’?
532 | if ((pt.xx[dim]-R)>mtb->pt.xx[dim]) // look to the right only
| ^~~
| ndim
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp: In member function ‘void mfem::KDTree<Tindex, Tfloat, ndim, Tnorm>::FindNeighborPoints(PointND&, Tfloat, typename std::vector<NodeND>::iterator, typename std::vector<NodeND>::iterator, size_t, std::vector<Tindex>&, std::vector<Tfloat>&)’:
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:574:12: error: ‘uint8_t’ is not a member of ‘std’; did you mean ‘wint_t’?
574 | std::uint8_t dim=(std::uint8_t) (level%ndim);
| ^~~~~~~
| wint_t
/home/freddie/Programming/ascent/scripts/build_ascent/mfem-4.6/fem/../general/kdtree.hpp:581:21: error: ‘dim’ was not declared in this scope; did you mean ‘ndim’?
581 | if ((pt.xx[dim]-R)>mtb->pt.xx[dim]) // look to the right only
| ^~~
| ndim
A one line fix to include cstdint in the header resolves it. It then breaks at:
**** Configuring Ascent
loading initial cache file /home/freddie/Programming/ascent/scripts/build_ascent/ascent-config.cmake
CMake Warning (dev) at CMakeLists.txt:14 (project):
cmake_minimum_required() should be called prior to this top-level project()
call. Please see the cmake-commands(7) manual for usage documentation of
both commands.
This warning is for project developers. Use -Wno-dev to suppress it.
-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at CMakeLists.txt:86 (cmake_policy):
The OLD behavior for policy CMP0104 will be removed from a future version
of CMake.
The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.
-- BLT Version: 0.5.2
-- CMake Version: 3.28.3
-- CMake Build Type: Release
-- CMake Executable: /usr/bin/cmake
CMake Deprecation Warning at blt/SetupBLT.cmake:87 (cmake_policy):
The OLD behavior for policy CMP0076 will be removed from a future version
of CMake.
The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
cmake/SetupBLT.cmake:40 (include)
CMakeLists.txt:119 (include)
-- Setting CMAKE_CXX_EXTENSIONS to OFF
-- Standard C++14 selected
-- Found Git: /usr/bin/git (found version "2.44.0")
-- Git Support is ON
-- Git Executable: /usr/bin/git
-- Git Version: 2.44.0
-- MPI Support is ON
-- FindMPI Enabled (ENABLE_FIND_MPI == ON)
-- Found MPI_C: /usr/lib64/libmpi.so (found version "3.1")
-- Found MPI_CXX: /usr/lib64/libmpi_cxx.so (found version "3.1")
-- Found MPI: TRUE (found version "3.1")
-- BLT MPI Compile Flags:
-- BLT MPI Include Paths: /usr/include
-- BLT MPI Libraries: /usr/lib64/libmpi.so;/usr/lib64/libmpi_cxx.so
-- BLT MPI Link Flags: SHELL:-Wl,-rpath -Wl,/usr/lib64 -Wl,-rpath -Wl,/usr/lib64 -Wl,--enable-new-dtags
-- MPI Executable: /usr/bin/mpiexec
-- MPI Num Proc Flag: -n
-- MPI Command Append:
-- OpenMP Support is OFF
-- CUDA Support is OFF
-- HIP Support is OFF
-- Found Doxygen: /usr/bin/doxygen (found version "1.9.8") found components: doxygen dot
-- Sphinx support is ON
-- Found Sphinx: /usr/bin/sphinx-build
-- Valgrind support is ON
-- Found Valgrind: /usr/bin/valgrind
-- AStyle support is ON
-- Found AStyle: /usr/bin/astyle
-- ClangFormat support is ON
-- Found ClangFormat: /usr/lib/llvm/18/bin/clang-format
-- Uncrustify support is ON
-- Failed to locate Uncrustify executable (missing: UNCRUSTIFY_EXECUTABLE)
-- Yapf support is ON
-- Failed to locate Yapf executable (missing: YAPF_EXECUTABLE)
-- CMakeFormat support is ON
-- Failed to locate CMakeFormat executable (missing: CMAKEFORMAT_EXECUTABLE)
-- Cppcheck support is ON
-- Found Cppcheck: /usr/bin/cppcheck
-- ClangQuery support is ON
-- Found ClangQuery: /usr/lib/llvm/18/bin/clang-query
-- ClangTidy support is ON
-- Found ClangTidy: /usr/lib/llvm/18/bin/clang-tidy
-- C Compiler family is GNU
-- Adding optional BLT definitions and compiler flags
-- Fortran support disabled.
-- CMAKE_C_FLAGS flags are:
-- CMAKE_CXX_FLAGS flags are:
-- CMAKE_EXE_LINKER_FLAGS flags are:
-- Google Test Support is ON
-- Google Mock Support is OFF
CMake Deprecation Warning at blt/thirdparty_builtin/googletest-master-2020-01-07/googletest/CMakeLists.txt:56 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
CMake Warning (dev) at blt/thirdparty_builtin/googletest-master-2020-01-07/googletest/cmake/internal_utils.cmake:243 (find_package):
Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
are removed. Run "cmake --help-policy CMP0148" for policy details. Use
the cmake_policy command to set the policy and suppress this warning.
Call Stack (most recent call first):
blt/thirdparty_builtin/googletest-master-2020-01-07/googletest/CMakeLists.txt:91 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Found PythonInterp: /usr/bin/python (found version "3.11.8")
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Using MPI CMake imported target: MPI::MPI_CXX
-- CMake build tool name: /usr/bin/gmake
-- Building shared libraries (BUILD_SHARED_LIBS == ON)
-- Building without coverage flags (ENABLE_COVERAGE == OFF)
-- git executable: /usr/bin/git
-- git SHA1: 08b8c0cc2825a0f9be70df41cfcd4a1a70eb2497
-- git SHA1-abbrev: 08b8c
-- git tag: unknown
-- Looking for Conduit using CONDUIT_DIR = /home/freddie/Programming/ascent/scripts/build_ascent/install/conduit-v0.9.1
-- Conduit was built with Zlib Support
-- Looking for Zlib at: /home/freddie/Programming/ascent/scripts/build_ascent/install/zlib-1.3/
-- Found ZLIB: /home/freddie/Programming/ascent/scripts/build_ascent/install/zlib-1.3/lib/libz.so (found version "1.3")
-- Conduit was built with HDF5 Support
-- Looking for HDF5 at: /home/freddie/Programming/ascent/scripts/build_ascent/install/hdf5-1.14.1-2
-- Found HDF5: hdf5-shared (found version "1.14.1")
-- HDF5_DIR_REAL=/home/freddie/Programming/ascent/scripts/build_ascent/install/hdf5-1.14.1-2
-- Checking that found HDF5_INCLUDE_DIRS are in HDF5_DIR
-- HDF5_INCLUDE_DIRS=/home/freddie/Programming/ascent/scripts/build_ascent/install/hdf5-1.14.1-2/include
-- /home/freddie/Programming/ascent/scripts/build_ascent/install/hdf5-1.14.1-2/include includes HDF5_DIR (/home/freddie/Programming/ascent/scripts/build_ascent/install/hdf5-1.14.1-2)
-- /home/freddie/Programming/ascent/scripts/build_ascent/install/hdf5-1.14.1-2/include includes HDF5_REAL_DIR ()
-- HDF5 is parallel: OFF
-- Found Conduit: /home/freddie/Programming/ascent/scripts/build_ascent/install/conduit-v0.9.1 (found version 0.9.0)
-- CONDUIT_VERSION = 0.9.0
-- CONDUIT_INSTALL_PREFIX = /home/freddie/Programming/ascent/scripts/build_ascent/install/conduit-v0.9.1
-- CONDUIT_IMPORT_ROOT = /home/freddie/Programming/ascent/scripts/build_ascent/install/conduit-v0.9.1
-- CONDUIT_USE_CXX14 = TRUE
-- CONDUIT_USE_FMT = TRUE
-- CONDUIT_INCLUDE_DIRS = /home/freddie/Programming/ascent/scripts/build_ascent/install/conduit-v0.9.1/include/conduit
-- CONDUIT_FORTRAN_ENABLED = FALSE
-- CONDUIT_PYTHON_ENABLED =
-- CONDUIT_PYTHON_EXECUTABLE =
-- CONDUIT_PYTHON_MODULE_DIR = /home/freddie/Programming/ascent/scripts/build_ascent/install/conduit-v0.9.1/python-modules/
-- Conduit Relay features:
-- CONDUIT_RELAY_WEBSERVER_ENABLED = TRUE
-- CONDUIT_RELAY_HDF5_ENABLED = TRUE
-- CONDUIT_HDF5_DIR = /home/freddie/Programming/ascent/scripts/build_ascent/install/hdf5-1.14.1-2
-- CONDUIT_RELAY_ADIOS_ENABLED = FALSE
-- CONDUIT_ADIOS_DIR =
-- CONDUIT_RELAY_SILO_ENABLED = FALSE
-- CONDUIT_SILO_DIR =
-- CONDUIT_RELAY_MPI_ENABLED = TRUE
-- Conduit imported targets: conduit::conduit conduit::conduit_mpi
-- FOUND conduit HDF5 support
-- CONDUIT_RELAY_WEBSERVER_ENABLED = TRUE
-- FOUND Conduit at /home/freddie/Programming/ascent/scripts/build_ascent/install/conduit-v0.9.1
-- CONDUIT_INCLUDE_DIRS = /home/freddie/Programming/ascent/scripts/build_ascent/install/conduit-v0.9.1/include/conduit
-- Looking for Camp in: /home/freddie/Programming/ascent/scripts/build_ascent/install/camp-v2024.02.0
-- OpenMP Support is
-- CUDA Support is
-- HIP Support is
-- Found Camp in: /home/freddie/Programming/ascent/scripts/build_ascent/install/camp-v2024.02.0
-- Looking for Umpire in: /home/freddie/Programming/ascent/scripts/build_ascent/install/umpire-2024.02.0
CMake Error at cmake/thirdparty/SetupUmpire.cmake:21 (find_package):
Could not find a package configuration file provided by "umpire" with any
of the following names:
umpireConfig.cmake
umpire-config.cmake
Add the installation prefix of "umpire" to CMAKE_PREFIX_PATH or set
"umpire_DIR" to a directory containing one of the above files. If "umpire"
provides a separate development package or SDK, be sure it has been
installed.
Call Stack (most recent call first):
cmake/Setup3rdParty.cmake:61 (include)
CMakeLists.txt:139 (include)
Going through:
https://github.com/Alpine-DAV/ascent/blob/develop/src/cmake/thirdparty/SetupUmpire.cmake#L17
it should add ${UMPIRE_DIR}/lib64/cmake/umpire
to the search path. Now if we ls ~/Programming/ascent/scripts/build_ascent/install/umpire-2024.02.0/lib64/cmake/umpire
we see:
BLTInstallableMacros.cmake thirdparty umpire-targets.cmake
BLTSetupTargets.cmake umpire-config.cmake umpire-targets-release.cmake
BLTThirdPartyConfigFlags.cmake umpire-config-version.cmake
but I do not know why I can not find the file.
This issue is lib64 vs lib. Umpire made a change. I think this is also fixed in the update blt branch / PR
From: Freddie Witherden @.> Sent: Wednesday, March 20, 2024 4:29:13 PM To: Alpine-DAV/ascent @.> Cc: Harrison, Cyrus D. @.>; Comment @.> Subject: Re: [Alpine-DAV/ascent] build_ascent.sh fails with GCC 13 while building camp (Issue #1259)
Going through:
https://github.com/Alpine-DAV/ascent/blob/develop/src/cmake/thirdparty/SetupUmpire.cmake#L17https://urldefense.us/v3/__https://github.com/Alpine-DAV/ascent/blob/develop/src/cmake/thirdparty/SetupUmpire.cmake*L17__;Iw!!G2kpM7uM-TzIFchu!yFyOBallCZQmZeFvBtXEV8fNkTqsBH-LGoBMwyno_I5XhN469dYzFLtF45h_qAwpZUQ2NB6Cm_8dQ-XJbXu4QJJ3$
it clearly adds ${UMPIRE_DIR}/lib/cmake/umpire to the search path. Now if we ls ~/Programming/ascent/scripts/build_ascent/install/umpire-2024.02.0/lib64/cmake/umpire we see:
BLTInstallableMacros.cmake thirdparty umpire-targets.cmake BLTSetupTargets.cmake umpire-config.cmake umpire-targets-release.cmake BLTThirdPartyConfigFlags.cmake umpire-config-version.cmake
and so I have no idea why cmake is complaining that it can not find umpire-config.cmake as it is in the directory.
— Reply to this email directly, view it on GitHubhttps://urldefense.us/v3/__https://github.com/Alpine-DAV/ascent/issues/1259*issuecomment-2010899234__;Iw!!G2kpM7uM-TzIFchu!yFyOBallCZQmZeFvBtXEV8fNkTqsBH-LGoBMwyno_I5XhN469dYzFLtF45h_qAwpZUQ2NB6Cm_8dQ-XJbQsr7jOV$, or unsubscribehttps://urldefense.us/v3/__https://github.com/notifications/unsubscribe-auth/AAJDUHUE4457YVM6ETY4Z73YZILUTAVCNFSM6AAAAABFAK7E6SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJQHA4TSMRTGQ__;!!G2kpM7uM-TzIFchu!yFyOBallCZQmZeFvBtXEV8fNkTqsBH-LGoBMwyno_I5XhN469dYzFLtF45h_qAwpZUQ2NB6Cm_8dQ-XJbcXCJEU2$. You are receiving this because you commented.Message ID: @.***>
Yes, that is strange the lib vs lib64 logic is there.
Thanks for trying the new branch -- a patch for old umpire should be simple (we need it to include
@FreddieWitherden for the umpire issue.
build_ascent.sh (if you ask it to fully build ascent) will try to build ascent-develop (not the branched you have checked out), which doens't have the lib
vs lib64
change merged.
However, you can use the generated ascent-config.cmake
to configure your checkout and build.
cmake -C scripts/build_ascent/ascent-config.cmake -B build -S src/ -DCMAKE_INSTALL_PREFIX=install
That did it! I was wondering why the CMake error appeared to be at odds with the code itself. Do you think it is worth changing the default to use the checked-out version of Ascent if it is available rather than compiling a fresh checkout from scratch?
@FreddieWitherden thanks for confirming.
I do think it we should improve build_ascent build with an option for the the checked out version. (I'll admit this has confused me more than once :-) )
@FreddieWitherden https://github.com/Alpine-DAV/ascent/pull/1339 updates build_ascent.sh
to use the current checkout if it exists instead of cloning ascent developer
With the current develop branch of Ascent the
build_ascent.sh
script fails with GCC 13. The offending package is:which indicates aproblem with
camp
. If possible the version ofcamp
should be bumped; otherwise perhaps we can simply disable building of tests for camp?