-
-
Notifications
You must be signed in to change notification settings - Fork 14.3k
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
cctools: 973.0.1 -> 1010.6 #307880
cctools: 973.0.1 -> 1010.6 #307880
Conversation
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
d9770a1
to
60c33ac
Compare
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/darwin-ld-symbol-s-not-found-for-architecture-arm64/46177/1 |
Latest push is up until right before the Darwin cross work. |
I’m paring down this PR to reduce the chance of conflicts and to make it easier to review in aggregate. Cherry-picking commits is going to take too much time, and sometimes they depend on other commits. |
The following will be done in separate PRs:
|
The only thing I have left to do before marking this ready is fix the AvailabilityVersions package to patch out newer macros on SDKs 10.12, 10.13, 10.14, and 10.15. Some packages (like Git and SDL2) check for the presence of certain macros regardless of their value to check SDK version. That feels like a misuse of the macros, but I don’t want to break anything with the switch. |
I've kicked off a build on 10.13 hardware to see if the changes to keep <10.14 working are alright, not sure if we want to wait for that to complete though. |
It should work, so I’d be surprised if it didn’t. Anyway, I’m currently waiting on approvals from you and @sternenseemann (or at least confirmation/feedback re: the revised comments). |
Looks good. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, like I said no need to block on the build.
Had a couple failures related to the LLVM manpages but I haven't been able to check whether it's not just running out of disk space or such. So let's just go ahead with the merge already.
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
cctools was updated and migrated to the `by-name` hierarchy in nixpkgs, which moves it to the top-level. It is also being added to `darwin-aliases.nix`, which will make the old name unavailable for use in nixpkgs. This change preferentially uses the new name while falling back to the old one for out-of-tree users. Relevant nixpkgs PRs: - NixOS/nixpkgs#307880 - NixOS/nixpkgs#328077
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/57 |
We introduced LTO in NixOS#294504. At that time, we still needed to use LLVM / lld to make this work on darwin. For this to work for extensions, they would need to set CFLAGS=-fuse-ld=lld, too. However, since NixOS#307880 landed, we don't need to do this anymore in the first place, LTO just works out of the box on darwin. Resolves NixOS#342362
cctools was updated and migrated to the `by-name` hierarchy in nixpkgs, which moves it to the top-level. It is also being added to `darwin-aliases.nix`, which will make the old name unavailable for use in nixpkgs. This change preferentially uses the new name while falling back to the old one for out-of-tree users. Relevant nixpkgs PRs: - NixOS/nixpkgs#307880 - NixOS/nixpkgs#328077
Description of changes
This PR updates cctools and ld64. It also fixes related breakage. It is currently set to draft until 24.05 is released. I will be rebasing weekly against staging, resolving any merge conflicts then. Before updating the ld64 branch, I build my configs and the Darwin channel blockers to confirm no regressions.
The following notes are copied from https://discourse.nixos.org/t/darwin-updates-news/42249/10.
Packaging Changes
Note: ld-prime is will not be packaged because it is not currently included in the source releases. While I think it’s unlikely, ld-prime will be added separately as a new package should the source be released.
New Features
Breaking Changes
-rpath
when merging Mach-O object files fails.-q
and-Q
flags are supported to control whether it calls GNU as or the clang assembler (matching the upstream behavior ofas
).strip
andinstall_name_tool
are no longer wrapped withsigtool
. If you are modifying linker-signed binaries, which should be the typical case, they will update the signatures automatically. If you are manually invokingcodesign
, you will need to update the signatures manually after runningstrip
orinstall_name_tool
.stdenv updates
darwin.bintools changes
darwin.bintools changes
llvm_cmds
andcctools_cmds
respectively). All binaries are symlinked to their traditional names (e.g., llvm-strip is symlinked to strip).isCCTools
and notisLLVM
because it does not use lld by default. Maybe that could change with lld 18, but I’m doubtful.Resolved Issues
Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)Add a 👍 reaction to pull requests you find important.