Skip to content

glibc: 2.40-66 -> 2.42-47#379542

Merged
vcunat merged 27 commits intoNixOS:stagingfrom
Ma27:bump-glibc
Jan 6, 2026
Merged

glibc: 2.40-66 -> 2.42-47#379542
vcunat merged 27 commits intoNixOS:stagingfrom
Ma27:bump-glibc

Conversation

@Ma27
Copy link
Member

@Ma27 Ma27 commented Feb 5, 2025

Announcement: https://lists.gnu.org/archive/html/info-gnu/2025-01/msg00014.html

Build-wise it's looking relatively good and I got quite far.
However, I'm a little worried about

  • dlopen and dlmopen no longer make the stack executable if a shared
    library requires it, either implicitly because of a missing GNU_STACK
    ELF header (and default ABI permission having the executable bit set)
    or explicitly because of the executable bit in GNU_STACK, and the
    stack is not already executable. Instead, loading such objects will
    fail.

Let's see how many regressions Hydra can find regarding that. But I'll need to look for more bugreports on that matter for potential fallout.


TODO:

  • Another Hydra-run with staging (there's surprisingly much stuff depending on e.g. openjdk that's fixed in upstream/staging or asyncio (that was flaky, but cannot restart only "dependency failed" builds depending on this AFAIK))
  • Test a full NixOS system
  • Add documentation for how to work around dlopen() problem in e.g. release notes
  • Await staging being free for 26.05

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@github-actions github-actions bot added 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. labels Feb 5, 2025
@vcunat
Copy link
Member

vcunat commented Feb 5, 2025

Jobset: https://hydra.nixos.org/jobset/nixpkgs/glibc-2.41

Linux stdenvs for now, afterwards I expect all of x86_64-linux. Given the previous experience, I assume that you chose a commit base that's known to be not too broken.

@vcunat
Copy link
Member

vcunat commented Feb 14, 2025

A thread of interest: https://sourceware.org/bugzilla/show_bug.cgi?id=32653

Copy link
Member

@fabianhjr fabianhjr left a comment

Choose a reason for hiding this comment

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

https://www.gamingonlinux.com/2025/02/the-glibc-2-41-update-has-been-causing-problems-for-linux-gaming/

Should probably skip this release, there is likely to be a more backwards compatible release in the near future.

@trofi
Copy link
Contributor

trofi commented Feb 23, 2025

dtc will need a fix for it's test suite: dgibson/dtc@ce1d858. Proposed it's inclusion against staging as:

@trofi
Copy link
Contributor

trofi commented Mar 16, 2025

webkitgtk also fails the build against glibc-2.41. That is fixed by a gobject-introspection backport:

@Ma27 Ma27 changed the title glibc: 2.40-66 -> 2.41-4 glibc: 2.40-66 -> 2.41-63 Jul 9, 2025
@nixpkgs-ci nixpkgs-ci bot added the 10.rebuild-linux-stdenv This PR causes stdenv to rebuild on Linux and must target a staging branch. label Jul 9, 2025
@trofi
Copy link
Contributor

trofi commented Jul 20, 2025

Will need a 2a9a83e revert:

$ nix build --no-link github:NixOS/nixpkgs/pull/379542/merge#glibc -L
...
glibc> substituteStream() in derivation glibc-2.41-63: ERROR: pattern ATTRIBUTE_REPRODUCIBLE doesn't match anything in file 'timezone/zic.c'

@Ma27
Copy link
Member Author

Ma27 commented Jul 20, 2025

It was precisely the intention to not forget about this here by having a build failure when rebasing again.

@nixpkgs-ci nixpkgs-ci bot added the 2.status: merge conflict This PR has merge conflicts with the target branch label Jul 26, 2025
@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. and removed 2.status: merge conflict This PR has merge conflicts with the target branch 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. labels Sep 25, 2025
@vcunat
Copy link
Member

vcunat commented Sep 26, 2025

Planning to catch 25.11? If so, there are two weeks left for merging this PR, according to the schedule: #443568

@vcunat
Copy link
Member

vcunat commented Sep 26, 2025

One week, only about one week left.

@Ma27
Copy link
Member Author

Ma27 commented Sep 26, 2025

So, after fixing GCC there's quite a lot of stuff building again. I'll need to take a look at how to deal with the exec-stack problem this weekend, then I can make a suggestion.

@vcunat vcunat changed the title glibc: 2.40-66 -> 2.41-63 glibc: 2.40-x -> 2.42-y Sep 26, 2025
@nixpkgs-ci nixpkgs-ci bot added 6.topic: java Including JDK, tooling, other languages, other VMs 6.topic: llvm/clang Issues related to llvmPackages, clangStdenv and related labels Sep 26, 2025
Ma27 added 14 commits January 3, 2026 20:39
Failing Hydra build: https://hydra.nixos.org/build/308374102

Considering how old this package seems to be according to the
changelog[1], I'm not going to bother with patching it.

[1] https://metadata.ftp-master.debian.org/changelogs//main/x/xxgdb/xxgdb_1.12-17_changelog
Failing Hydra build: https://hydra.nixos.org/build/308527236

Compat is being worked on, but the patch for glibc 2.42 seems to crash
at runtime.
Failing Hydra build: https://hydra.nixos.org/build/308526977

I'm not sure what exactly caused the failure here, but this patch
from LLVM upstream seems to fix the problem and this regressed right
after the glibc upgrade.
Failing Hydra build: https://hydra.nixos.org/build/308650242

The libraries require an execstack even though it's not necessary. This
got fixed upstream already[1], but this doesn't apply cleanly on the
version we have.

[1] microsoft/onnxruntime#25200
Doesn't build with glibc-2.42 anymore, didn't see a release in 10 years.

Failing Hydra build: https://hydra.nixos.org/build/308670849
Failing Hydra build: https://hydra.nixos.org/build/317799900

This turns of a warning about a potential format overflow, but I
consider it sufficiently unlikely to have enough threads[1] such that
this actually causes an overflow.

[1] https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/tree/src/pmqtest/pmqtest.c#n546
@Ma27
Copy link
Member Author

Ma27 commented Jan 3, 2026

OK, so I managed to rebuild my laptop's configuration on this branch and can boot into a system built with glibc 2.42.

I'd say we're good to go now. The Hydra jobset is looking quite good (and most jobs are fallout of uvloop's flaky tests anyways). There's even documentation about the execstack topic now. I'm considering to add a dedicated glibc-shenanigans section to the nixpkgs manual which will also include the execstack part, but I think we're good with the release-notes section I added.

Reviews would be very welcome.
cc @trofi @vcunat @mweinelt @K900

@vcunat
Copy link
Member

vcunat commented Jan 3, 2026

It sounds good to me. Also, the executable stack thing is almost one year released upstream, so that's quite some time for other SW to adapt (at least from Nixpkgs perspective of short release cycles).

@vcunat
Copy link
Member

vcunat commented Jan 3, 2026

Also, more fixes could be done during staging-next, as usual. And people with issues could often consider switching to 25.11 for the time being, as -unstable hasn't diverged that much.

Copy link
Member

@fabianhjr fabianhjr left a comment

Choose a reason for hiding this comment

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

Only regarding glibc changes (didn't review package fixes/removals)

Would prefer removals not to be included in this PR but wouldn't oppose for this to be merged as is either and any issues being addressed during staging/staging-next cycles.

@nixpkgs-ci nixpkgs-ci bot added the 12.approvals: 1 This PR was reviewed and approved by one person. label Jan 3, 2026
@Ma27
Copy link
Member Author

Ma27 commented Jan 3, 2026

The packages removed in here are an intersection of

  • either dead or shouldn't be in nixpkgs for other reasons (see the commit messages for the hyper* stuff I removed, that should've never been merged in the first place!)
  • breaks with the new glibc

Everything else is either fixed or marked as broken (or missed while checking Hydra).

@Ma27 Ma27 changed the title glibc: 2.40-x -> 2.42-y glibc: 2.40-66 -> 2.42-47 Jan 6, 2026
@nixpkgs-ci nixpkgs-ci bot added 12.approvals: 2 This PR was reviewed and approved by two persons. and removed 12.approvals: 1 This PR was reviewed and approved by one person. labels Jan 6, 2026
@vcunat vcunat added this pull request to the merge queue Jan 6, 2026
Merged via the queue into NixOS:staging with commit 9ab74f3 Jan 6, 2026
33 checks passed
@Ma27 Ma27 deleted the bump-glibc branch January 6, 2026 18:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: java Including JDK, tooling, other languages, other VMs 6.topic: llvm/clang Issues related to llvmPackages, clangStdenv and related 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: python Python is a high-level, general-purpose programming language. 6.topic: rocm ROCm is an Advanced Micro Devices software stack for graphics processing unit programming. 8.has: changelog This PR adds or changes release notes 8.has: documentation This PR adds or changes documentation 10.rebuild-darwin: 101-500 This PR causes between 101 and 500 packages to rebuild on Darwin. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. 10.rebuild-linux-stdenv This PR causes stdenv to rebuild on Linux and must target a staging branch. 12.approvals: 2 This PR was reviewed and approved by two persons.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants