Skip to content

chore: update (gcc,clang) to (14,20); add flang#88

Open
wdconinc wants to merge 9 commits into
masterfrom
clang-20
Open

chore: update (gcc,clang) to (14,20); add flang#88
wdconinc wants to merge 9 commits into
masterfrom
clang-20

Conversation

@wdconinc
Copy link
Copy Markdown
Contributor

@wdconinc wdconinc commented Dec 14, 2025

Briefly, what does this PR introduce?

This PR removes some legacy base image distributions which are now unsupported, and upgraded gcc and clang to consistent versions. Clang is upgraded to 20 for new flang and to avoid tool chain mixing which has been leading to confusing behavior.

Needs:

What kind of change does this PR introduce?

  • Bug fix (issue: remove unsupported base distributions)
  • New feature (issue: move towards flang)
  • Documentation update
  • Other: __

Please check if this PR fulfills the following:

  • Tests for the changes have been added
  • Documentation has been added / updated
  • Changes have been communicated to collaborators

Does this PR introduce breaking changes? What changes might users need to make to their code?

No.

Does this PR change default behavior?

Yes, newer clang on default images.

Copilot AI review requested due to automatic review settings December 14, 2025 16:16
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR modernizes the base image support by removing legacy Linux distributions (Debian bookworm, Ubuntu focal/jammy) and standardizing on GCC 14 and Clang 20 across all remaining supported distributions (Debian trixie and Ubuntu noble). The upgrade to Clang 20 supports the introduction of new flang and prevents toolchain mixing issues.

Key Changes:

  • Removed support for legacy distributions: Debian bookworm, Ubuntu focal, and Ubuntu jammy
  • Standardized GCC version to 14 and Clang version to 20 across remaining distributions
  • Retained only Debian trixie and Ubuntu noble as supported base images

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread containers/debian/Dockerfile Outdated
Copilot AI review requested due to automatic review settings December 14, 2025 16:30

This comment was marked as resolved.

@wdconinc wdconinc changed the title chore: update (gcc,clang) to (14,20) chore: update (gcc,clang) to (14,20); add flang Dec 14, 2025
@wdconinc wdconinc enabled auto-merge (squash) December 14, 2025 17:07
@wdconinc wdconinc mentioned this pull request Dec 14, 2025
6 tasks
@wdconinc wdconinc requested review from Copilot and veprbl December 14, 2025 18:01

This comment was marked as resolved.

Comment thread containers/debian/Dockerfile
Copilot AI review requested due to automatic review settings December 14, 2025 23:52

This comment was marked as resolved.

@wdconinc wdconinc mentioned this pull request Dec 15, 2025
9 tasks
Copilot AI review requested due to automatic review settings December 18, 2025 21:25

This comment was marked as resolved.

This comment was marked as duplicate.

Copy link
Copy Markdown
Member

@veprbl veprbl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copilot AI review requested due to automatic review settings April 26, 2026 14:36

This comment was marked as resolved.

Copilot AI review requested due to automatic review settings May 10, 2026 20:20

This comment was marked as duplicate.

Copilot AI review requested due to automatic review settings May 16, 2026 17:37
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

@wdconinc wdconinc mentioned this pull request May 16, 2026
11 tasks
Copilot AI review requested due to automatic review settings May 16, 2026 21:38
wdconinc and others added 7 commits May 16, 2026 16:38
Add support for unsupported compilers in CUDA.
Clang 20 is not in CUDA's list of supported compilers, which triggers:
  conflicts("%clang@20:", when="+cuda ^cuda@:12.9")

The +allow-unsupported-compilers variant on the cuda package disables
this check. However, cuda is always registered as an external (not-buildable)
via spack external find, and external specs carry no variants by default.
A packages.yaml require: cannot be satisfied by the external because it
doesn't match the required variant, causing concretization to fail with:
  Cannot build cuda, since it is configured buildable:false and no
  externals satisfy the request.

Fix: use yq to amend the detected external spec to append the variant
immediately after spack external find, mirroring the pattern already used
for gcc (extra_attributes.environment.set.GCC_AR).

Remove the now-redundant cuda: require: entry from packages.yaml.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
When building non-CUDA images, spack external find finds no cuda
externals, so .packages.cuda.externals is null. Iterating over null
with [].spec fails with:
  jq: error (at <stdin>:1): Cannot iterate over null (null)

Use a conditional yq expression to only amend the spec when externals
exist.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…lers to CUDAFLAGS

Added note about appending --allow-unsupported-compilers to CUDAFLAGS for CudaPackage.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

Comment thread containers/debian/Dockerfile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants