Skip to content

Comments

Update macOS to 10.12#56744

Merged
matthewbauer merged 70 commits intoNixOS:stagingfrom
matthewbauer:macos-10-12
Apr 27, 2019
Merged

Update macOS to 10.12#56744
matthewbauer merged 70 commits intoNixOS:stagingfrom
matthewbauer:macos-10-12

Conversation

@matthewbauer
Copy link
Member

@matthewbauer matthewbauer commented Mar 3, 2019

Motivation for this change

This is big enough that it probably needs its own jobset. This bumps the SDKs to 10.12, as well as adds symbols only available in 10.12. As a result, this means that Nixpkgs will only work on systems with macOS 10.12+.

Other things done:

  • In addition, I've brought back the cross patch shebangs work. It needed some tweaking to get things working but the final result doesn't leak bootstrap-tools.
  • Removed some old patches that should not be needed with newer SDKs.
  • Update LLVM to 7 everywhere (/cc @dtzWill). Based off of LLVM 8 (currently on -rc3) #56490.
  • Add libtapi support for cctools. This is just a flag to cctools-port that it can use.
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Assured whether relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@GrahamcOfBorg GrahamcOfBorg added 6.topic: darwin Running or building packages on Darwin 6.topic: haskell General-purpose, statically typed, purely functional programming language 6.topic: python Python is a high-level, general-purpose programming language. 6.topic: qt/kde Object-oriented framework for GUI creation 6.topic: stdenv Standard environment 2.status: merge conflict This PR has merge conflicts with the target branch labels Mar 3, 2019
@GrahamcOfBorg GrahamcOfBorg added 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-linux-stdenv This PR causes stdenv to rebuild on Linux and must target a staging branch. 8.has: clean-up This PR removes packages or removes other cruft 8.has: package (new) This PR adds a new package 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. 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. and removed 2.status: merge conflict This PR has merge conflicts with the target branch labels Mar 3, 2019
@matthewbauer
Copy link
Member Author

Oh, does cf-private add -framework CoreFoundation? If so we can probably get rid of it in a bunch of other places.

It adds /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation to get the objc runtime. It should only be needed if you get errors like:

_OBJC_CLASS_$_NSArray is undefined

@matthewbauer
Copy link
Member Author

If you are just missing _NS* symbols you just need -framework CoreFoundation

@matthewbauer matthewbauer merged commit 87944c3 into NixOS:staging Apr 27, 2019
@ThomasMader
Copy link
Contributor

I recognized that you disabled the entire checkPhase for ldc on Darwin.
The error coming from there seems to me to be very serious. I think ldc might have trouble working correctly making it unusable on Darwin.

For dmd the commented make line in the checkPhase should work now again with your changes about the filesystem stuff in the linker and should fix #57120 .

@matthewbauer
Copy link
Member Author

I recognized that you disabled the entire checkPhase for ldc on Darwin.
The error coming from there seems to me to be very serious. I think ldc might have trouble working correctly making it unusable on Darwin.

For dmd the commented make line in the checkPhase should work now again with your changes about the filesystem stuff in the linker and should fix #57120 .

I was able to compile and run some simple D code, but I can work on getting the tests passing as well

@nixos-discourse
Copy link

This pull request has been mentioned on Nix community. There might be relevant details there:

https://discourse.nixos.org/t/darwin-macos-10-12-stdenv-updates/2862/1

@LnL7
Copy link
Member

LnL7 commented May 7, 2019

@matthewbauer After reading your post I realised that we didn't update MACOSX_DEPLOYMENT_TARGET, not a big deal but perhaps we should?

@matthewbauer
Copy link
Member Author

@matthewbauer After reading your post I realised that we didn't update MACOSX_DEPLOYMENT_TARGET, not a big deal but perhaps we should?

Yeah that would be a good idea! Also removing the gl_cv_func_getcwd_abort_bug thing should be possible

@ThomasMader ThomasMader mentioned this pull request May 10, 2019
10 tasks
@ThomasMader ThomasMader mentioned this pull request May 12, 2019
10 tasks
@LnL7 LnL7 mentioned this pull request Jul 8, 2019
10 tasks
@ggreif ggreif mentioned this pull request Jan 25, 2020
12 tasks
@LnL7 LnL7 mentioned this pull request Nov 26, 2020
10 tasks
@kira-bruneau kira-bruneau mentioned this pull request Feb 14, 2021
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: darwin Running or building packages on Darwin 6.topic: emacs Text editor 6.topic: GNOME GNOME desktop environment and its underlying platform 6.topic: golang Go is a high-level general purpose programming language that is statically typed and compiled. 6.topic: haskell General-purpose, statically typed, purely functional programming language 6.topic: python Python is a high-level, general-purpose programming language. 6.topic: qt/kde Object-oriented framework for GUI creation 6.topic: rust General-purpose programming language emphasizing performance, type safety, and concurrency. 6.topic: stdenv Standard environment 8.has: clean-up This PR removes packages or removes other cruft 8.has: package (new) This PR adds a new package 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. 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants