Skip to content

solver: match glibc constraints by hash - #51559

Merged
alalazo merged 4 commits into
spack:developfrom
alalazo:bugfix/solver-same-compiler-different-libc
Nov 18, 2025
Merged

alalazo merged 4 commits into
spack:developfrom
alalazo:bugfix/solver-same-compiler-different-libc

Conversation

@alalazo

@alalazo alalazo commented Nov 12, 2025 •

Copy link
Copy Markdown
Member

fixes #51556

When we added compiler runtimes, we matched compilers by <compiler.name>@<compiler.versions> due to how externals were modeled at the time. Now that externals are concrete specs, we can match by hash and enforce constraints in a more precise way.

This should solve issues where e.g. two gcc at the same version inject different libcs.

@alalazo alalazo changed the title solver: match glibc constrains by hash solver: match glibc constraints by hash Nov 12, 2025
Signed-off-by: Massimiliano Culpo <[email protected]>
Signed-off-by: Massimiliano Culpo <[email protected]>
@alalazo
alalazo force-pushed the bugfix/solver-same-compiler-different-libc branch from c1a0791 to 9ec3ed4 Compare November 14, 2025 12:41
@alalazo

alalazo commented Nov 14, 2025

Copy link
Copy Markdown
Member Author

Benchmarked against:

radiuss.develop.csv
radiuss.pr.csv

comparison

@alalazo
alalazo marked this pull request as ready for review November 14, 2025 17:44
Comment thread lib/spack/spack/solver/asp.py
Signed-off-by: Massimiliano Culpo <[email protected]>
@alalazo
alalazo merged commit c7354be into spack:develop Nov 18, 2025
31 of 32 checks passed
@alalazo
alalazo deleted the bugfix/solver-same-compiler-different-libc branch November 18, 2025 09:41
@alalazo alalazo added v1.0.3 PRs to backport for v1.0.3 v1.1.1 PRs to backport for v1.1.1 labels Nov 18, 2025
psakievich pushed a commit to psakievich/spack that referenced this pull request Dec 1, 2025
When we added compiler runtimes, we matched compilers by `<compiler.name>@<compiler.versions>` due to how externals were modeled at the time. Now that externals are concrete specs, we can match by hash and enforce constraints in a more precise way.

This should solve issues where e.g. two gcc at the same version inject different libcs.

Signed-off-by: Massimiliano Culpo <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 10, 2026
When we added compiler runtimes, we matched compilers by `<compiler.name>@<compiler.versions>` due to how externals were modeled at the time. Now that externals are concrete specs, we can match by hash and enforce constraints in a more precise way.

This should solve issues where e.g. two gcc at the same version inject different libcs.

Signed-off-by: Massimiliano Culpo <[email protected]>
@becker33 becker33 mentioned this pull request Jan 10, 2026
2 tasks done
becker33 pushed a commit that referenced this pull request Jan 11, 2026
When we added compiler runtimes, we matched compilers by `<compiler.name>@<compiler.versions>` due to how externals were modeled at the time. Now that externals are concrete specs, we can match by hash and enforce constraints in a more precise way.

This should solve issues where e.g. two gcc at the same version inject different libcs.

Signed-off-by: Massimiliano Culpo <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 15, 2026
When we added compiler runtimes, we matched compilers by `<compiler.name>@<compiler.versions>` due to how externals were modeled at the time. Now that externals are concrete specs, we can match by hash and enforce constraints in a more precise way.

This should solve issues where e.g. two gcc at the same version inject different libcs.

Signed-off-by: Massimiliano Culpo <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
vjranagit pushed a commit to vjranagit/spack that referenced this pull request Jan 18, 2026
When we added compiler runtimes, we matched compilers by `<compiler.name>@<compiler.versions>` due to how externals were modeled at the time. Now that externals are concrete specs, we can match by hash and enforce constraints in a more precise way.

This should solve issues where e.g. two gcc at the same version inject different libcs.

Signed-off-by: Massimiliano Culpo <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 22, 2026
When we added compiler runtimes, we matched compilers by `<compiler.name>@<compiler.versions>` due to how externals were modeled at the time. Now that externals are concrete specs, we can match by hash and enforce constraints in a more precise way.

This should solve issues where e.g. two gcc at the same version inject different libcs.

Signed-off-by: Massimiliano Culpo <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 26, 2026
When we added compiler runtimes, we matched compilers by `<compiler.name>@<compiler.versions>` due to how externals were modeled at the time. Now that externals are concrete specs, we can match by hash and enforce constraints in a more precise way.

This should solve issues where e.g. two gcc at the same version inject different libcs.

Signed-off-by: Massimiliano Culpo <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
@becker33

Copy link
Copy Markdown
Member

This PR does not apply cleanly to releases/v1.0 and will be dropped from v1.0.3

@becker33 becker33 removed the v1.0.3 PRs to backport for v1.0.3 label Jan 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v1.1.1 PRs to backport for v1.1.1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

"Cannot satisfy glibc@..." when multiple compilers at the same version with different glibc

3 participants