Skip to content

Feature Request: Ubuntu/WSL2 Intel LLVM Site Config Example and Documentation #1860

@BenjaminTJohnson

Description

@BenjaminTJohnson

Summary

Update the spack-stack “New Site Configs” documentation to include a clear, Ubuntu-focused example for using Intel LLVM compilers (icx/ifx/icpx) with a local site configuration, including relevant guidance for Ubuntu under WSL2.

This request does not ask for first-class platform support or new spack logic. It asks for a documented example and explicit notes because the current docs focus on GCC and reference GitHub Actions for other compilers, but do not yet provide an accessible worked example for Ubuntu + Intel LLVM.

Motivation

The current “New Site Configs” page:

  • describes how to generate a site config from linux.default or macos.default, primarily with GCC examples, and
  • recommends looking at GitHub Action workflows for non-GCC compilers.

While that framework is correct, in practice users following those general instructions on Ubuntu (especially under WSL2) frequently run into predictable issues when using Intel LLVM compilers, including:

  • Intel runtime library discovery and RPATH handling
  • reliance on environment initialization (setvars.sh)
  • NetCDF family and other external component detection mismatches

Providing a documented, concrete example for this specific setup would close this practical gap.

Proposed Documentation Enhancements

  1. Add an Ubuntu + Intel LLVM site config example

    • Comprehensive site/packages.yaml and site/compilers.yaml snippets
    • Source paths and runtime considerations for Intel oneAPI
    • Intel LLVM versions known to work on Ubuntu
  2. Integrate this example into the “New Site Configs” page

    • Under the Linux section, with explicit reference to Ubuntu
    • Show how to start from linux.default and evolve to an Intel LLVM config
  3. Add WSL2 Ubuntu notes

    • Recommended filesystem placement (ext4 vs /mnt/c)
    • Environment consistency (interactive vs build shells)
    • Scoped limitations or caveats (e.g., MPI variants under WSL2)
  4. Link to CI examples and any Intel LLVM test workflows

    • Connect the example to the existing GitHub Actions use of Intel LLVM

Why This Matters

  • Ubuntu is the most common WSL2 distro used by contributors
  • Intel LLVM is the modern Intel compiler strategy used in JCSDA stacks
  • The current documentation assumes competence with compilers other than GCC, but practical examples significantly reduce trial-and-error ...
  • This update fits squarely within the site config model the docs describe: no new code paths, just better examples and clarity for a common use case.

Thanks for considering this enhancement: it would make the “new site configs” workflow more approachable for a broad group of contributors. It could also be extended (or genericized) to support LLVM Flang/Clang. Ideally, I'd like to be able to have a GCC stack, Intel LLVM stack, and LLVM Flang/Clang stack in the same Ubuntu instance, so I could test on multiple compilers + configurations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions