Skip to content

compiler_mixing: config option applies per-language#51796

Merged
alalazo merged 1 commit intospack:developfrom
scheibelp:bugfix/disable-mixing-per-lang
Jan 16, 2026
Merged

compiler_mixing: config option applies per-language#51796
alalazo merged 1 commit intospack:developfrom
scheibelp:bugfix/disable-mixing-per-lang

Conversation

@scheibelp
Copy link
Copy Markdown
Member

@scheibelp scheibelp commented Dec 23, 2025

If you set

concretizer:
  compiler_mixing: false

then it should allow using different compilers for C and Fortran. As it was, #51135 was forcing all dependencies to use the same compiler for all languages.

This also updates the error generation to provide more info about which languages generated a mixing violation (when mixing is disallowed), and the compilers that were selected.

@scheibelp scheibelp requested a review from alalazo December 23, 2025 23:50
Comment thread lib/spack/spack/solver/concretize.lp Outdated
Comment thread lib/spack/spack/solver/concretize.lp Outdated
When `compiler_mixing: false` is configured, Spack was forcing the
C, C++, and Fortran compilers to be the same across all dependencies.
The intent was rather to restrict this on a per-language basis, and
this commit does that (and adds a test for it).

Signed-off-by: Peter Scheibel <scheibel1@llnl.gov>
@alalazo alalazo added bugfix Something wasn't working, here's a fix v1.1.2 PRs to backport for v1.1.2 labels Jan 16, 2026
@alalazo alalazo merged commit f38e413 into spack:develop Jan 16, 2026
31 of 32 checks passed
alecbcs pushed a commit to spack/spack-packages that referenced this pull request Feb 6, 2026
* Revert "ci: disable tutorial pipeline (#3249)"

* Revert "tutorial stack: use when_possible and bootstrap gcc12 (new container) (#2277)"

This commit re-enables the tutorial stack without using `when_possible` which was leading to extremely long multi round concretization times post spack/spack#51796. Although this implementation of the tutorial stack is not technically correct when using compilers as nodes, it'll allow us to continue to ensure that all of the components of the stack build and are not accidentally broken due to a package PR.

The long term solution here is to merge spack/spack#51891 which allows for multiple concretization groups in an environment and thus allows us to bootstrap a gcc compiler and then use it to build additional specs in the tutorial.

---------

Signed-off-by: Gregory Becker <becker33@llnl.gov>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix Something wasn't working, here's a fix solver unit-tests v1.1.2 PRs to backport for v1.1.2

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants