Skip to content

Bug: Build Fail while install with OneAPI 2025.0.0 and some add-on plugins in using toolchain #5518

@QuantumMisaka

Description

@QuantumMisaka

Describe the bug

I've test Intel toolchain installation performance with OneAPI 2025.0.0, found that:

  1. The dependencies installation by toolchain_intel.sh seems to have no problem
  2. When build without rapidjson and LibRI (and with LibTorch), everything good.
  3. When build with rapidjson, build fail
[ 85%] Built target hamilt_pwdft
[ 85%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/io_dmk.cpp.o
[ 86%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_dmr.cpp.o
[ 86%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/dos_nao.cpp.o
[ 86%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/sparse_matrix.cpp.o
In file included from /opt/abacus/source/module_io/para_json.cpp:11:
In file included from /opt/abacus/source/module_io/json_output/abacusjson.h:12:
/opt/abacus/toolchain/install/rapidjson-1.1.0/include/rapidjson/document.h:319:82: error: cannot assign to non-static data member 'length' with const-qualified type 'const SizeType' (aka 'const unsigned int')
  319 |     GenericStringRef& operator=(const GenericStringRef& rhs) { s = rhs.s; length = rhs.length; }
      |                                                                           ~~~~~~ ^
/opt/abacus/toolchain/install/rapidjson-1.1.0/include/rapidjson/document.h:325:20: note: non-static data member 'length' declared const here
  325 |     const SizeType length; //!< length of the string (excluding the trailing NULL terminator)
      |     ~~~~~~~~~~~~~~~^~~~~~
  1. When build with LibRI and LibComm, build fail:
[  9%] Building CXX object source/module_hamilt_pw/hamilt_stodft/CMakeFiles/hamilt_stodft.dir/sto_wf.cpp.o
[  9%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/ops/einsum_op.cpp.o
[  9%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_functional_vxc.cpp.o
[  9%] Building CXX object source/module_psi/CMakeFiles/psi_initializer.dir/psi_initializer_random.cpp.o
In file included from /opt/abacus/source/module_hamilt_lcao/hamilt_lcaodft/hamilt_lcao.cpp:1:
In file included from /opt/abacus/source/module_hamilt_lcao/hamilt_lcaodft/hamilt_lcao.h:15:
In file included from /opt/abacus/source/module_ri/Exx_LRI.h:13:
In file included from /opt/abacus/toolchain/install/LibRI-0.2.1.0/include/RI/physics/Exx.h:8:
In file included from /opt/abacus/toolchain/install/LibRI-0.2.1.0/include/RI/physics/Exx_Post_2D.h:58:
In file included from /opt/abacus/toolchain/install/LibRI-0.2.1.0/include/RI/physics/Exx_Post_2D.hpp:9:
In file included from /opt/abacus/toolchain/install/LibRI-0.2.1.0/include/RI/physics/../comm/mix/Communicate_Tensors_Map_Judge.h:8:
In file included from /opt/abacus/toolchain/install/LibRI-0.2.1.0/include/RI/physics/../comm/mix/Communicate_Tensors_Map.h:8:
In file included from /opt/abacus/toolchain/install/LibRI-0.2.1.0/include/RI/physics/../comm/mix/../../global/Cereal_Types.h:16:
/opt/abacus/toolchain/install/cereal-1.3.2/include/cereal/types/tuple.hpp:98:41: error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw]
   98 |         serialize<Height - 1>::template apply( ar, tuple );
      |                                         ^
/opt/abacus/toolchain/install/cereal-1.3.2/include/cereal/types/tuple.hpp:119:85: error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw]
  119 |     tuple_detail::serialize<std::tuple_size<std::tuple<Types...>>::value>::template apply( ar, tuple );
  1. Change -DCMAKE_MPI_COMPILER from mpiicpx to mpiicpc will have save results.

Expected behavior

ABACUS can be built with OneAPI 2025.0.0 by intel toolchain or other method with all plugin

To Reproduce

using c32_m64 machine in Bohrium by image ubuntu:20.04-py3.10

  1. Install Intel OneAPI HPCtoolkit by offline package
wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/0884ef13-20f3-41d3-baa2-362fc31de8eb/intel-oneapi-hpc-toolkit-2025.0.0.825_offline.sh
sudo sh ./intel-oneapi-hpc-toolkit-2025.0.0.825_offline.sh -a --silent --cli --eula accept
  1. load it by source setvars.sh
  2. git clone abacus-develop
  3. run toolchain_intel.sh in toolchain of newest abacus repo with all install option on
  4. run build_abacus_intel.sh in toolchain of newest abacus repo with target option on

Environment

Mentioned above

Additional Context

No response

Task list for Issue attackers (only for developers)

  • Verify the issue is not a duplicate.
  • Describe the bug.
  • Steps to reproduce.
  • Expected behavior.
  • Error message.
  • Environment details.
  • Additional context.
  • Assign a priority level (low, medium, high, urgent).
  • Assign the issue to a team member.
  • Label the issue with relevant tags.
  • Identify possible related issues.
  • Create a unit test or automated test to reproduce the bug (if applicable).
  • Fix the bug.
  • Test the fix.
  • Update documentation (if necessary).
  • Close the issue and inform the reporter (if applicable).

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugsBugs that only solvable with sufficient knowledge of DFTCompile & CICD & Docs & DependenciesIssues related to compiling ABACUSEXX and lr-TDDFTRelated to EXX or lr-TDDFT

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions