Skip to content
New issue

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

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

Already on GitHub? # to your account

Reflex platform 20.09 backport big sur #15

Open
wants to merge 21 commits into
base: reflex-platform-20.09
Choose a base branch
from

Conversation

o1lo01ol1o
Copy link

Motivation for this change

Per obsidiansystems/obelisk#869, this PR backports the big sur fix as outlined in NixOS#121040

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • [ x ] 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 nixpkgs-review --run "nixpkgs-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)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.


installTargets = [ "install-libtapi" "install-tapi-headers"];
installTargets = [ "install-libtapi" "install-tapi-headers" ];

meta = with lib; {
license = licenses.apsl20;
maintainers = with maintainers; [ matthewbauer ];
broken = stdenv.hostPlatform == stdenv.targetPlatform;
Copy link
Author

Choose a reason for hiding this comment

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

@Ericson2314 This looks related to reflex-platform cross-compilation, but it causes CI to fail. Is this an expected (and accepted) failure? Is there a way to coax this PR and those downstream through CI so that iterative improvements can be made asynchronously?

thefloweringash and others added 21 commits October 21, 2021 10:56
installTarget looks like a typo for installTargets. This causes a lot
of llvm and clang to be built and installed.

Clang is not intended to be an external dependency. The source bundle
includes llvm and clang. Adding include paths and building clangBasic
first is sufficient to use the internal clang components.
This new version has tapi support, which is needed to build the new
stubs based libSystem, etc. and Big Sur support.

You can verify the provenance of these yourself by checking Hydra here:
https://hydra.nixos.org/build/128192471
Adapted from main expression for clang 7.
Build the llvm support libraries (libcxx, libcxxabi) from scratch
without using the existing llvm libraries. This is the same spirit and
similar implementation as the "useLLVM" bootstrap in llvm package
sets. Critically it avoids having libcxxabi provided by the cc-wrapper
when building libcxx, which otherwise results in two libcxxabi
instances.

$ otool -L /nix/store/vd4vvgs9xngqbjzpg3qc41wl6jh42s9i-libc++-7.1.0/lib/libc++.dylib
/nix/store/vd4vvgs9xngqbjzpg3qc41wl6jh42s9i-libc++-7.1.0/lib/libc++.dylib:
        /nix/store/vd4vvgs9xngqbjzpg3qc41wl6jh42s9i-libc++-7.1.0/lib/libc++.1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /nix/store/gmpwk5fyp3iasppqrrdpswxvid6kcp8r-libc++abi-7.1.0/lib/libc++abi.dylib (compatibility version 1.0.0, current version 1.0.0)
        /nix/store/3hn7azynqgp2pm5gpdg45gpq0ia72skg-libc++abi-7.1.0/lib/libc++abi.dylib (compatibility version 1.0.0, current version 1.0.0)
        /nix/store/1nq94scbxs6bk7pimqhvz76q6cfmbv97-Libsystem-osx-10.12.6/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)

Additionally move some utilities (clang, binutils, coreutils, gnugrep)
to the stage layers so they can be replaced before the final
stdenv. This should cause most of stage4 to be built from the
toolchain assembled as of stage3 instead of the bootstrap toolchain.
Exposed by the tbd stubs which contains fat libraries. The previously
used proxy libraries were x86_64 only.
Used during bootstrap to check that re-exported libraries are not
dangling.
Fixes bootstrapping on macOS Big Sur.
@o1lo01ol1o o1lo01ol1o force-pushed the reflex-platform-20.09-backport-big-sur branch from a281b19 to 923f606 Compare October 21, 2021 09:59
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants