summaryrefslogtreecommitdiff
path: root/.github/ISSUE_TEMPLATE
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2024-03-25 06:59:21 +0100
committerGitHub <noreply@github.com>2024-03-24 22:59:21 -0700
commit0c9a53ba3a9c94ee60fa3825160e72ff025fb8b7 (patch)
tree62162f8c017b87af8b55d0829cd663824b15df87 /.github/ISSUE_TEMPLATE
parent1fd4353289ec58913a4faf70e4851f66767bb623 (diff)
downloadspack-0c9a53ba3a9c94ee60fa3825160e72ff025fb8b7.tar.gz
spack-0c9a53ba3a9c94ee60fa3825160e72ff025fb8b7.tar.bz2
spack-0c9a53ba3a9c94ee60fa3825160e72ff025fb8b7.tar.xz
spack-0c9a53ba3a9c94ee60fa3825160e72ff025fb8b7.zip
Add `intel-oneapi-runtime`, allow injecting virtual dependencies (#42062)
This PR adds: - A new runtime for `%oneapi` compilers, called `intel-oneapi-runtime` - Information to both `gcc-runtime` and `intel-oneapi-runtime`, to ensure that we don't mix compilers using different soname for either `libgfortran` or `libifcore` To do so, the following internal mechanisms have been implemented: - Possibility to inject virtual dependencies from the `runtime_constraints` callback on packages Information has been added to `gcc-runtime` to provide the correct soname under different conditions on its `%gcc`. Rules injected into the solver looks like: ```prolog % Add a dependency on 'gfortran@5' for nodes compiled with gcc@=13.2.0 and using the 'fortran' language attr("dependency_holds", node(ID, Package), "gfortran", "link") :- attr("node", node(ID, Package)), attr("node_compiler", node(ID, Package), "gcc"), attr("node_compiler_version", node(ID, Package), "gcc", "13.2.0"), not external(node(ID, Package)), not runtime(Package), attr("language", node(ID, Package), "fortran"). attr("virtual_node", node(RuntimeID, "gfortran")) :- attr("depends_on", node(ID, Package), ProviderNode, "link"), provider(ProviderNode, node(RuntimeID, "gfortran")), attr("node", node(ID, Package)), attr("node_compiler", node(ID, Package), "gcc"), attr("node_compiler_version", node(ID, Package), "gcc", "13.2.0"), not external(node(ID, Package)), not runtime(Package), attr("language", node(ID, Package), "fortran"). attr("node_version_satisfies", node(RuntimeID, "gfortran"), "5") :- attr("depends_on", node(ID, Package), ProviderNode, "link"), provider(ProviderNode, node(RuntimeID, "gfortran")), attr("node", node(ID, Package)), attr("node_compiler", node(ID, Package), "gcc"), attr("node_compiler_version", node(ID, Package), "gcc", "13.2.0"), not external(node(ID, Package)), not runtime(Package), attr("language", node(ID, Package), "fortran"). ```
Diffstat (limited to '.github/ISSUE_TEMPLATE')
0 files changed, 0 insertions, 0 deletions