Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

glibc: 2.35-224 -> 2.37-8 #188492

Merged
merged 21 commits into from
Apr 3, 2023
Merged

glibc: 2.35-224 -> 2.37-8 #188492

merged 21 commits into from
Apr 3, 2023

Conversation

Ma27
Copy link
Member

@Ma27 Ma27 commented Aug 27, 2022

Description of changes

Note: very early draft, but opening it to track the work and to avoid potentially duplicated efforts.
cc @lovesegfault @vcunat

Also, can anybody create a Hydra jobset for me, please?

Announcements:
https://sourceware.org/pipermail/libc-alpha/2022-August/141193.html
https://sourceware.org/pipermail/libc-alpha/2023-February/145190.html

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • 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/)
  • 22.11 Release Notes (or backporting 22.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
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@vcunat
Copy link
Member

vcunat commented Aug 30, 2022

Jobset: https://hydra.nixos.org/jobset/nixpkgs/pr-188492-glibc-2.36
(but it looks pretty bad for now)

@Ma27
Copy link
Member Author

Ma27 commented Aug 30, 2022

(but it looks pretty bad for now)

I mean where's the fun if everything would've built fine already 🙃

But to be serious: I didn't expect it to fail that early, but the problem appears to be GCC: https://hydra.nixos.org/build/189053872/nixlog/1/tail
I'll take a look soonish. But I mean given that it breaks so much so early, creating a jobset for this change was appropriate %)

@zhaofengli
Copy link
Member

Also we might want to consider applying the patch to re-enable DT_DASH in the glibc .so like what Arch does. If we decide to do so, we should re-evaluate by the time 23.05 comes.

@Ma27
Copy link
Member Author

Ma27 commented Oct 9, 2022

@vcunat so I just fixed a few more failing builds, updated glibc to the latest rev from 2.36 and pulled in latest upstream/staging. Let's see what the next Hydra evaluation says, but it seems quite good IMHO.

Do you think it makes sense to add aarch64-linux as second system to see if we're missing something obvious there?

@Ma27 Ma27 changed the title WIP glibc: 2.35-163 -> 2.36-48 WIP glibc: 2.35-163 -> 2.36-57 Oct 9, 2022
@vcunat
Copy link
Member

vcunat commented Oct 9, 2022

Yes why not, added. (that also triggered evaluation)

@vcunat
Copy link
Member

vcunat commented Oct 17, 2022

So, glibc 2.36 missed NixOS 22.11, right? #194208 (comment)

@Ma27
Copy link
Member Author

Ma27 commented Oct 17, 2022

Yep, but I didn't have the energy last week to finish this anyways 🤷

@Ma27
Copy link
Member Author

Ma27 commented Jan 15, 2023

Rebased another time, rustc on arm should be fixed again, let's see how much is actually broken now.

Ma27 added 11 commits March 29, 2023 09:50
Failing Hydra build: https://hydra.nixos.org/build/193338640

We don't need the `meson.build` fixes because (1) lxc4 doesn't use meson
and (2) it contains some fixes to make sure it works both with newer and
older glibc versions. Since we only ship glibc 2.36 from now on, we can
skip that.
The functions pidfd_open & pidfd_send_signal are now part of `glibc`,
but defined in the header `sys/pidfd.h` which is not included in
`bindings.c`.

Failing Hydra build: https://hydra.nixos.org/build/193376808
Ma27 added 2 commits April 1, 2023 10:35
To correctly find the implementation of `pidfd_open` - which was
introduced in glibc 2.36 - an additional `#include` is needed. The newly
introduced patch adds that.

Failing Hydra build: https://hydra.nixos.org/build/214432977
@vcunat
Copy link
Member

vcunat commented Apr 3, 2023

Cutoff for merge to 23.05 would be in two weeks:
#223562

It's not day-precise in practice, but most likely better merge sooner than later (if for 23.05). Low-rebuild breakages can deferred after merging, unless it's some very important package.

@Ma27
Copy link
Member Author

Ma27 commented Apr 3, 2023

Can't say much for x86_64-linux-specific breakage (because all of these builds are still hanging in the queue), but aarch64-linux looks quite fine I'd say:

A lot of stuff is transitively broken because of apipkg (but restarting the build appears to solve this, I just didn't want to manually restart every single affected job manually, see https://hydra.nixos.org/build/214454805). Same for moto, i.e. the home-assistant thingies seem to be false-positives as well, see https://hydra.nixos.org/build/214456540 (the cause for dependency failed).

An obvious problem is swift: https://hydra.nixos.org/build/214392116 (error is reproducible on x86_64-linux). I've never used swift, so no idea about that, but I'd say that swift isn't a sufficiently large subsystem to block on that, IMHO the swift maintainers should figure out a solution during zhf (but I'll give them a heads-up now, cc @stephank @Trundle @dduan @trepetti @dtzWill ).

So unless I missed something obvious, there don't seem to be any significant regressions, the last one - which is already fixed - is the QEMU build error.

For me this is enough to undraft this, but I'll leave it up to you to merge (perhaps we should at least await the x86_64-linux part first).

@Ma27 Ma27 marked this pull request as ready for review April 3, 2023 15:32
@Ma27 Ma27 requested a review from matthewbauer as a code owner April 3, 2023 15:32
@vcunat
Copy link
Member

vcunat commented Apr 3, 2023

I restarted all failed, as aarch64-linux machines tend to have extra free time lately.

@vcunat vcunat merged commit 4eaca2b into staging Apr 3, 2023
@vcunat vcunat deleted the glibc-2.36 branch April 3, 2023 19:12
@vcunat
Copy link
Member

vcunat commented Apr 3, 2023

Sounds good enough for staging. I rechecked that stdenv still builds on the merge result, as stdenv bootstrapping changed noticeably in the meantime.

@vcunat
Copy link
Member

vcunat commented Apr 3, 2023

Thanks.

@stephank
Copy link
Contributor

stephank commented Apr 5, 2023

An obvious problem is swift: https://hydra.nixos.org/build/214392116 (error is reproducible on x86_64-linux). I've never used swift, so no idea about that, but I'd say that swift isn't a sufficiently large subsystem to block on that, IMHO the swift maintainers should figure out a solution during zhf (but I'll give them a heads-up now, cc @stephank @Trundle @dduan @trepetti @dtzWill ).

The error there is a simple JSON parse error, which is caused by the extra warning output. I'm not yet sure where that direct reference to protected function output is coming from, though. That's not coming from glibc either, is it?

@vcunat
Copy link
Member

vcunat commented Apr 12, 2023

TSCUtility/Triple.swift:209: Fatal error: Failed to parse target info (malformed).

FYI, this regression will most likely very soon get to master+unstable (and 23.05).

@stephank
Copy link
Contributor

FYI, this regression will most likely very soon get to master+unstable (and 23.05).

It's unfortunate, but I don't have the bandwidth to investigate this right now. What time I find is spent on the Swift 5.8 upgrade. Hopefully that magically fixes it, but probably not. Maybe we can do a 23.05 backport later when we have a fix, but until then we'll have a broken Swift on Linux unless someone else can take a look. I agree it's not a blocker.

@stephank
Copy link
Contributor

stephank commented Apr 30, 2023

#225197 fixes the Linux build of Swift. I did not find a direct cause, but found issues with CMake >=3.25 in general, so suspect that's what fixed it. (I created an upstream PR. They use an older version of CMake in CI, so didn't notice.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants