Skip to content

solver: match glibc constraints by hash#51559

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

solver: match glibc constraints by hash#51559
alalazo merged 4 commits intospack:developfrom
alalazo:bugfix/solver-same-compiler-different-libc

Conversation

@alalazo
Copy link
Copy Markdown
Member

@alalazo alalazo commented Nov 12, 2025

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
Copy link
Copy Markdown
Member Author

alalazo commented Nov 14, 2025

Benchmarked against:

radiuss.develop.csv
radiuss.pr.csv

comparison

@alalazo alalazo marked this pull request as ready for review November 14, 2025 17:44
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 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
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

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