Skip to content

Commit

Permalink
Darwin M1 Support (#13401)
Browse files Browse the repository at this point in the history
* Update rules_nixpkgs and rules_sh

rules_sh was an implicit dependency before. We are now depending on it
explicitly to be able to control the version.

* Patch rules_nixpkgs to detect ARM M1

This should be upstreamed.

* Patch rules_haskell for ARM M1 compatibility

* Detect MacOS M1 OS and architecture.
* Consistently use the CC toolchains' linker.
  This is important when we switch to GHC with LLVM.

* Detect Darwin M1 in os_info.bzl

* Use the new rules_nixpkgs host platform

The old flags hard-coded the CPU architecture. The new platform
automatically inherits from Bazel's builtin host platform.

* Import the Go toolchain from rules_nixpkgs

* Update nodejs to version 16

* Disable Haddock on lsp-types

We're also disabling it on the other haskell_cabal_library instances,
and it is causing build errors on M1.

```
Running Haddock on library for lsp-types-1.4.0.0..
creating
/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/doc/html/lsp-types
creating
/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/doc/html
creating
/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/doc
creating
/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/doc/html
creating
/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/doc/html/lsp-types
/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/doc/html/lsp-types/haddock-response42424-1.txt
contents: <<<
--prologue=/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/doc/html/lsp-types/haddock-prologue42424-0.txt
--dump-interface=/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/doc/html/lsp-types/lsp-types.haddock
--package-name=lsp-types
--package-version=1.4.0.0
--since-qual=external
--hide=Language.LSP.Types.CallHierarchy
--hide=Language.LSP.Types.Cancellation
--hide=Language.LSP.Types.ClientCapabilities
--hide=Language.LSP.Types.CodeAction
--hide=Language.LSP.Types.CodeLens
--hide=Language.LSP.Types.Command
--hide=Language.LSP.Types.Common
--hide=Language.LSP.Types.Completion
--hide=Language.LSP.Types.Configuration
--hide=Language.LSP.Types.Declaration
--hide=Language.LSP.Types.Definition
--hide=Language.LSP.Types.Diagnostic
--hide=Language.LSP.Types.DocumentColor
--hide=Language.LSP.Types.DocumentFilter
--hide=Language.LSP.Types.DocumentHighlight
--hide=Language.LSP.Types.DocumentLink
--hide=Language.LSP.Types.DocumentSymbol
--hide=Language.LSP.Types.FoldingRange
--hide=Language.LSP.Types.Formatting
--hide=Language.LSP.Types.Hover
--hide=Language.LSP.Types.Implementation
--hide=Language.LSP.Types.Initialize
--hide=Language.LSP.Types.Location
--hide=Language.LSP.Types.LspId
--hide=Language.LSP.Types.MarkupContent
--hide=Language.LSP.Types.Method
--hide=Language.LSP.Types.Message
--hide=Language.LSP.Types.Parsing
--hide=Language.LSP.Types.Progress
--hide=Language.LSP.Types.Registration
--hide=Language.LSP.Types.References
--hide=Language.LSP.Types.Rename
--hide=Language.LSP.Types.SelectionRange
--hide=Language.LSP.Types.ServerCapabilities
--hide=Language.LSP.Types.SemanticTokens
--hide=Language.LSP.Types.SignatureHelp
--hide=Language.LSP.Types.StaticRegistrationOptions
--hide=Language.LSP.Types.TextDocument
--hide=Language.LSP.Types.TypeDefinition
--hide=Language.LSP.Types.Uri
--hide=Language.LSP.Types.Utils
--hide=Language.LSP.Types.Window
--hide=Language.LSP.Types.WatchedFiles
--hide=Language.LSP.Types.WorkspaceEdit
--hide=Language.LSP.Types.WorkspaceFolders
--hide=Language.LSP.Types.WorkspaceSymbol
--html
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/array-0.5.4.0,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/array-0.5.4.0/array.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/base-4.15.1.0,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/base-4.15.1.0/base.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/binary-0.8.8.0,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/binary-0.8.8.0/binary.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/bytestring-0.10.12.1,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/bytestring-0.10.12.1/bytestring.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/containers-0.6.4.1,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/containers-0.6.4.1/containers.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/deepseq-1.4.5.0,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/deepseq-1.4.5.0/deepseq.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/directory-1.3.6.2,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/directory-1.3.6.2/directory.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/exceptions-0.10.4,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/exceptions-0.10.4/exceptions.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/filepath-1.4.2.1,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/filepath-1.4.2.1/filepath.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/ghc-bignum-1.1,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/ghc-bignum-1.1/ghc-bignum.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/ghc-boot-th-9.0.2,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/ghc-boot-th-9.0.2/ghc-boot-th.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/ghc-prim-0.7.0,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/ghc-prim-0.7.0/ghc-prim.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/integer-gmp-1.1,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/integer-gmp-1.1/integer-gmp.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/mtl-2.2.2,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/mtl-2.2.2/mtl.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/parsec-3.1.14.0,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/parsec-3.1.14.0/parsec.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/pretty-1.1.3.6,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/pretty-1.1.3.6/pretty.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/stm-2.5.0.0,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/stm-2.5.0.0/stm.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/template-haskell-2.17.0.0,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/template-haskell-2.17.0.0/template-haskell.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/text-1.2.5.0,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/text-1.2.5.0/text.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/time-1.9.3,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/time-1.9.3/time.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/transformers-0.5.6.2,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/transformers-0.5.6.2/transformers.haddock
--read-interface=file:///nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/unix-2.7.2.2,/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/unix-2.7.2.2/unix.haddock
--odir=/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/doc/html/lsp-types/
--title=lsp-types-1.4.0.0:\ Haskell\ library\ for\ the\ Microsoft\ Language\
Server\ Protocol,\ data\ types
--optghc=-fbuilding-cabal-package
--optghc=-O
--optghc=-outputdir
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/build
--optghc=-odir
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/build/tmp-42424
--optghc=-hidir
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/build/tmp-42424
--optghc=-stubdir
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/build/tmp-42424
--optghc=-i
--optghc=-i../../bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/build
--optghc=-isrc
--optghc=-i../../bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/build/autogen
--optghc=-i../../bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/build/global-autogen
--optghc=-I../../bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/build/autogen
--optghc=-I../../bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/build/global-autogen
--optghc=-I../../bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/build
--optghc=-optP-D__HADDOCK_VERSION__=2251
--optghc=-optP-include
--optghc=-optP../../bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/build/autogen/cabal_macros.h
--optghc=-this-unit-id
--optghc=lsp-types-1.4.0.0
--optghc=-hide-all-packages
--optghc=-Wmissing-home-modules
--optghc=-no-user-package-db
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/Diff-0.4.1/_install/Diff-0.4.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/base-orphans-0.8.6/_install/base-orphans-0.8.6.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/OneTuple-0.3.1/_install/OneTuple-0.3.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/splitmix-0.1.0.4/_install/splitmix-0.1.0.4.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/random-1.2.1/_install/random-1.2.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/QuickCheck-2.14.2/_install/QuickCheck-2.14.2.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/hashable-1.3.5.0/_install/hashable-1.3.5.0.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/integer-logarithms-1.0.3.1/_install/integer-logarithms-1.0.3.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/primitive-0.7.3.0/_install/primitive-0.7.3.0.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/scientific-0.3.7.0/_install/scientific-0.3.7.0.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/attoparsec-0.14.4/_install/attoparsec-0.14.4-attoparsec-internal.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/attoparsec-0.14.4/_install/attoparsec-0.14.4.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/base-compat-0.11.2/_install/base-compat-0.11.2.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/base-compat-batteries-0.11.2/_install/base-compat-batteries-0.11.2.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/data-fix-0.3.2/_install/data-fix-0.3.2.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/dlist-1.0/_install/dlist-1.0.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/indexed-traversable-0.1.2/_install/indexed-traversable-0.1.2.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/tagged-0.8.6.1/_install/tagged-0.8.6.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/unordered-containers-0.2.16.0/_install/unordered-containers-0.2.16.0.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/vector-0.12.3.1/_install/vector-0.12.3.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/indexed-traversable-instances-0.1.1/_install/indexed-traversable-instances-0.1.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/distributive-0.6.2.1/_install/distributive-0.6.2.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/transformers-compat-0.6.6/_install/transformers-compat-0.6.6.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/comonad-5.0.8/_install/comonad-5.0.8.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/th-abstraction-0.4.3.0/_install/th-abstraction-0.4.3.0.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/bifunctors-5.5.11/_install/bifunctors-5.5.11.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/StateVar-1.2.2/_install/StateVar-1.2.2.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/contravariant-1.5.5/_install/contravariant-1.5.5.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/semigroupoids-5.3.7/_install/semigroupoids-5.3.7.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/assoc-1.0.2/_install/assoc-1.0.2.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/these-1.1.1.1/_install/these-1.1.1.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/semialign-1.2.0.1/_install/semialign-1.2.0.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/strict-0.4.0.1/_install/strict-0.4.0.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/text-short-0.1.5/_install/text-short-0.1.5.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/time-compat-1.9.6.1/_install/time-compat-1.9.6.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/uuid-types-1.0.5/_install/uuid-types-1.0.5.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/witherable-0.4.2/_install/witherable-0.4.2.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/aeson-2.0.3.0/_install/aeson-2.0.3.0.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/data-default-class-0.1.2.0/_install/data-default-class-0.1.2.0.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/data-default-instances-containers-0.0.1/_install/data-default-instances-containers-0.0.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/data-default-instances-dlist-0.0.1/_install/data-default-instances-dlist-0.0.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/old-locale-1.0.0.7/_install/old-locale-1.0.0.7.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/data-default-instances-old-locale-0.0.1/_install/data-default-instances-old-locale-0.0.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/data-default-0.7.1.1/_install/data-default-0.7.1.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/network-3.1.2.7/_install/network-3.1.2.7.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/network-bsd-2.8.1.0/_install/network-bsd-2.8.1.0.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/hslogger-1.3.1.0/_install/hslogger-1.3.1.0.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/call-stack-0.4.0/_install/call-stack-0.4.0.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/profunctors-5.6.2/_install/profunctors-5.6.2.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/transformers-base-0.4.6/_install/transformers-base-0.4.6.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/free-5.1.7/_install/free-5.1.7.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/semigroups-0.19.2/_install/semigroups-0.19.2.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/void-0.7.3/_install/void-0.7.3.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/adjunctions-4.4/_install/adjunctions-4.4.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/invariant-0.5.5/_install/invariant-0.5.5.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/kan-extensions-5.2.3/_install/kan-extensions-5.2.3.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/parallel-3.2.2.0/_install/parallel-3.2.2.0.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/reflection-2.1.6/_install/reflection-2.1.6.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/lens-5.0.1/_install/lens-5.0.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/semirings-0.6/_install/semirings-0.6.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/mod-0.1.2.2/_install/mod-0.1.2.2.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/th-compat-0.1.3/_install/th-compat-0.1.3.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/network-uri-2.6.4.1/_install/network-uri-2.6.4.1.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/rope-utf16-splay-0.3.2.0/_install/rope-utf16-splay-0.3.2.0.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/some-1.0.3/_install/some-1.0.3.conf.d
--optghc=-package-db
--optghc=../../bazel-out/darwin_arm64-opt/bin/external/stackage/temporary-1.3/_install/temporary-1.3.conf.d
--optghc=-package-db
--optghc=/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/_install/lsp-types-1.4.0.0.conf.d
--optghc=-package-db
--optghc=/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/package.conf.inplace
--optghc=-package-id
--optghc=Diff-0.4.1
--optghc=-package-id
--optghc=aeson-2.0.3.0
--optghc=-package-id
--optghc=base-4.15.1.0
--optghc=-package-id
--optghc=binary-0.8.8.0
--optghc=-package-id
--optghc=bytestring-0.10.12.1
--optghc=-package-id
--optghc=containers-0.6.4.1
--optghc=-package-id
--optghc=data-default-0.7.1.1
--optghc=-package-id
--optghc=deepseq-1.4.5.0
--optghc=-package-id
--optghc=directory-1.3.6.2
--optghc=-package-id
--optghc=dlist-1.0
--optghc=-package-id
--optghc=filepath-1.4.2.1
--optghc=-package-id
--optghc=hashable-1.3.5.0
--optghc=-package-id
--optghc=hslogger-1.3.1.0
--optghc=-package-id
--optghc=lens-5.0.1
--optghc=-package-id
--optghc=mod-0.1.2.2
--optghc=-package-id
--optghc=mtl-2.2.2
--optghc=-package-id
--optghc=network-uri-2.6.4.1
--optghc=-package-id
--optghc=rope-utf16-splay-0.3.2.0
--optghc=-package-id
--optghc=scientific-0.3.7.0
--optghc=-package-id
--optghc=some-1.0.3
--optghc=-package-id
--optghc=template-haskell-2.17.0.0
--optghc=-package-id
--optghc=temporary-1.3
--optghc=-package-id
--optghc=text-1.2.5.0
--optghc=-package-id
--optghc=unordered-containers-0.2.16.0
--optghc=-XHaskell2010
--optghc=-XStrictData
--optghc=-Wall
-B/nix/store/z8577sg7xny6fxhndrrrkpvzhn53w9vc-ghc-native-bignum-9.0.2/lib/ghc-9.0.2
src/Language/LSP/Types.hs
src/Language/LSP/Types/Capabilities.hs
src/Language/LSP/Types/Lens.hs
src/Language/LSP/Types/SMethodMap.hs
src/Language/LSP/VFS.hs
src/Data/IxMap.hs
src/Language/LSP/Types/CallHierarchy.hs
src/Language/LSP/Types/Cancellation.hs
src/Language/LSP/Types/ClientCapabilities.hs
src/Language/LSP/Types/CodeAction.hs
src/Language/LSP/Types/CodeLens.hs
src/Language/LSP/Types/Command.hs
src/Language/LSP/Types/Common.hs
src/Language/LSP/Types/Completion.hs
src/Language/LSP/Types/Configuration.hs
src/Language/LSP/Types/Declaration.hs
src/Language/LSP/Types/Definition.hs
src/Language/LSP/Types/Diagnostic.hs
src/Language/LSP/Types/DocumentColor.hs
src/Language/LSP/Types/DocumentFilter.hs
src/Language/LSP/Types/DocumentHighlight.hs
src/Language/LSP/Types/DocumentLink.hs
src/Language/LSP/Types/DocumentSymbol.hs
src/Language/LSP/Types/FoldingRange.hs
src/Language/LSP/Types/Formatting.hs
src/Language/LSP/Types/Hover.hs
src/Language/LSP/Types/Implementation.hs
src/Language/LSP/Types/Initialize.hs
src/Language/LSP/Types/Location.hs
src/Language/LSP/Types/LspId.hs
src/Language/LSP/Types/MarkupContent.hs
src/Language/LSP/Types/Method.hs
src/Language/LSP/Types/Message.hs
src/Language/LSP/Types/Parsing.hs
src/Language/LSP/Types/Progress.hs
src/Language/LSP/Types/Registration.hs
src/Language/LSP/Types/References.hs
src/Language/LSP/Types/Rename.hs
src/Language/LSP/Types/SelectionRange.hs
src/Language/LSP/Types/ServerCapabilities.hs
src/Language/LSP/Types/SemanticTokens.hs
src/Language/LSP/Types/SignatureHelp.hs
src/Language/LSP/Types/StaticRegistrationOptions.hs
src/Language/LSP/Types/TextDocument.hs
src/Language/LSP/Types/TypeDefinition.hs
src/Language/LSP/Types/Uri.hs
src/Language/LSP/Types/Utils.hs
src/Language/LSP/Types/Window.hs
src/Language/LSP/Types/WatchedFiles.hs
src/Language/LSP/Types/WorkspaceEdit.hs
src/Language/LSP/Types/WorkspaceFolders.hs
src/Language/LSP/Types/WorkspaceSymbol.hs
>>>
/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/doc/html/lsp-types/haddock-response42424-1.txt
Environment: [("CABAL_VERBOSE","True"),("CC_WRAPPER_CC_PATH","external/local_config_cc/cc_wrapper.sh"),("CC_WRAPPER_CPU","darwin_arm64"),("CC_WRAPPER_PLATFORM","darwin"),("CODESIGN_ALLOCATE","/nix/store/3ibr5yy13sxl2vb5rig8fivj85sqcvf2-cctools-port-949.0.1/bin/codesign_allocate"),("HOME","/var/empty"),("LANG","C.UTF-8"),("LC_CTYPE","UTF-8"),("LD_LIBRARY_PATH",""),("LIBRARY_PATH",""),("PATH","/nix/store/xqbgx1y5xh2k13c6nizlprkp0j8mcw6w-clang-wrapper-12.0.1/bin:/nix/store/p90xw78bb3xsxg5v7k31qj5hpwm2pngp-llvm-12.0.1/bin:/nix/store/5havjxkv59cprx4czgi1lwnvv7y22dzi-posix-toolchain/bin"),("PWD","/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/external/lsp-types"),("PYTHONPATH","/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/runghc.runfiles:/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/runghc.runfiles/:/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/runghc.runfiles/bazel_tools:/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/runghc.runfiles/com_github_digital_asset_daml:/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/runghc.runfiles/local_config_cc:/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/runghc.runfiles/rules_haskell:/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/runghc.runfiles/rules_haskell_ghc_nixpkgs:/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/runghc.runfiles/rules_python:/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/cabal_wrapper.runfiles:/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/cabal_wrapper.runfiles/:/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/cabal_wrapper.runfiles/bazel_tools:/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/cabal_wrapper.runfiles/com_github_digital_asset_daml:/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/cabal_wrapper.runfiles/rules_haskell"),("RULES_HASKELL_DOCDIR_PATH","/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/base-4.15.1.0"),("RULES_HASKELL_EXEC_ROOT","/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml"),("RULES_HASKELL_GHC_PATH","/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/external/rules_haskell_ghc_nixpkgs/bin/ghc"),("RULES_HASKELL_GHC_PKG_PATH","/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/external/rules_haskell_ghc_nixpkgs/bin/ghc-pkg"),("RULES_HASKELL_LIBDIR_PATH","/nix/store/z8577sg7xny6fxhndrrrkpvzhn53w9vc-ghc-native-bignum-9.0.2/lib/ghc-9.0.2"),("RUNFILES_DIR","/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/runghc.runfiles"),("SDKROOT","macosx"),("SHLVL","0"),("TEMP","/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/tmp"),("TMP","/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/tmp"),("TMPDIR","/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/tmp"),("__CF_USER_TEXT_ENCODING","0x1F5:0x0:0x0")]
/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/external/rules_haskell_ghc_nixpkgs/bin/haddock '@/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types-1.4.0.0/doc/html/lsp-types/haddock-response42424-1.txt'
   0% (  0 /  7) in 'Data.IxMap'
  Missing documentation for:
    Module header
    IxOrd (src/Data/IxMap.hs:17)
    IxMap (src/Data/IxMap.hs:21)
    emptyIxMap (src/Data/IxMap.hs:23)
    insertIxMap (src/Data/IxMap.hs:26)
    lookupIxMap (src/Data/IxMap.hs:31)
    pickFromIxMap (src/Data/IxMap.hs:37)
`cc' failed in phase `Linker'. (Exit code: 134)
/private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml/external/rules_haskell_ghc_nixpkgs/bin/haddock
returned ExitFailure 1
Target //compiler/damlc:damlc failed to build
ERROR: /Users/builder/daml-andreas/compiler/damlc/BUILD.bazel:38:9 Middleman _middlemen/compiler_Sdamlc_Sdamlc-runfiles failed: (Exit 1): cabal_wrapper failed: error executing command
  (cd /private/var/tmp/_bazel_builder/7ce5f28514593fc1883e9fee6040cfef/sandbox/processwrapper-sandbox/1/execroot/com_github_digital_asset_daml && \
  exec env - \
    CABAL_VERBOSE=True \
    CC_WRAPPER_CC_PATH=external/local_config_cc/cc_wrapper.sh \
    CC_WRAPPER_CPU=darwin_arm64 \
    CC_WRAPPER_PLATFORM=darwin \
    LANG=C.UTF-8 \
    PATH=/nix/store/5havjxkv59cprx4czgi1lwnvv7y22dzi-posix-toolchain/bin \
    RULES_HASKELL_DOCDIR_PATH=/nix/store/kd7bjbp0wgz0qjhx6m2fcasp66n0wga2-ghc-native-bignum-9.0.2-doc/share/doc/ghc-native-bignum/html/libraries/base-4.15.1.0 \
    RULES_HASKELL_GHC_PATH=external/rules_haskell_ghc_nixpkgs/bin/ghc \
    RULES_HASKELL_GHC_PKG_PATH=external/rules_haskell_ghc_nixpkgs/bin/ghc-pkg \
    RULES_HASKELL_LIBDIR_PATH=/nix/store/z8577sg7xny6fxhndrrrkpvzhn53w9vc-ghc-native-bignum-9.0.2/lib/ghc-9.0.2 \
    SDKROOT=macosx \
  bazel-out/darwin_arm64-opt/bin/external/rules_haskell/haskell/cabal_wrapper bazel-out/darwin_arm64-opt/bin/external/lsp-types/lsp-types_cabal_wrapper_args.json)
Execution platform: @io_tweag_rules_nixpkgs//nixpkgs/platforms:host

Use --sandbox_debug to see verbose messages from the sandbox
INFO: Elapsed time: 344.702s, Critical Path: 329.09s
INFO: 49 processes: 14 internal, 35 processwrapper-sandbox.
FAILED: Build did NOT complete successfully
FAILED: Build did NOT complete successfully
```

* Disable create-daml-app tests on MacOS M1

These fail to build because puppeteer fails to install Chromium on M1.
See https://github.com/digital-asset/daml/pull/13250.

* Resign binaries after patching in package-app

Otherwise they fail to execute on MacOS Monterey on M1.
They symptom is that executing or otherwise loading the binary (e.g.
into lldb) fails with exit code -9 without further indications.

* Use GHC with LLVM on MacOS M1

The native backend only supports M1 starting from GHC 9.2. However, we
are still on GHC 9.0.

We wrap GHC to ensure that the LLVM toolchain and the codesign tool are
present in the environment and point to the correct versions provided by
nixpkgs.

* Update the CC toolchain for MacOS M1 compatibility

Use nixpkgs `nix-support/cc-cflags` file to provide default flags
instead of using `makeWrapper`. On M1 there was an issue where passing
`-l` flags or `-isystem` to `cc -v` would cause the following errors:

```
lang version 11.1.0
Target: aarch64-apple-darwin
Thread model: posix
InstalledDir: /nix/store/v6iidz79b425hli98g45xq9iblapn1zy-clang-11.1.0/bin
"/nix/store/b82mvqzvdx5mh1n9n77v8h5vk9fgqrxj-clang-wrapper-11.1.0/bin/ld" -demangle -lto_library /nix/store/v6iidz79b425hli98g45xq9iblapn1zy-clang-11.1.0/lib/libLTO.dylib -dynamic -arch arm64 -platform_version macos 11.0.0 0.0.0 -o a.out -L/nix/store/hc8a94w57ppwmn2gscm56pvlwi3zhyh1-libSystem-11.0.0/lib -L/nix/store/6f5ygwif1r523jj2qfwfiwix0fga4rgp-clang-11.1.0-lib/lib -L/nix/store/7pkxnbhpi0c10w18rirj8zxz3wv571nj-libcxx-11.1.0/lib -no_uuid -arch arm64 -lSystem /nix/store/b82mvqzvdx5mh1n9n77v8h5vk9fgqrxj-clang-wrapper-11.1.0/resource-root/lib/darwin/libclang_rt.osx.a
Undefined symbols for architecture arm64:
"_main", referenced from:
 implicit entry/start for main executable
ld: symbol(s) not found for architecture arm64
```

This also includes additional standard library search paths:
`-isystem ${llvmPackages_12.libcxx.dev}/include/c++/v1` alone is not
enough because some headers in it are [wrapper
headers](https://gcc.gnu.org/onlinedocs/cpp/Wrapper-Headers.html) that
use `include_next` directives. For these to resolve we need to add the
compiler's builtin headers to the search path as well.

This also sets `-Wno-elaborated-enum-base` to avoid build failures of
absl on MacOS Monterey M1.
```
In file included from external/com_google_absl/absl/time/internal/cctz/src/time_zone_lookup.cc:26:                                                                                                                                                                              In file included from /nix/store/jjkm7x4zfifqgsxlbhkamzg0vc9wzip4-apple-framework-CoreFoundation-11.0.0/Library/Frameworks/CoreFoundation.framework/Headers/CFTimeZone.h:13:
/nix/store/jjkm7x4zfifqgsxlbhkamzg0vc9wzip4-apple-framework-CoreFoundation-11.0.0/Library/Frameworks/CoreFoundation.framework/Headers/CFBase.h:474:9: error: non-defining declaration of enumeration with a fixed underlying type is only permitted as a standalone declaration;
 missing list of enumerators? [-Welaborated-enum-base]
typedef CF_ENUM(CFIndex, CFComparisonResult) {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/nix/store/jjkm7x4zfifqgsxlbhkamzg0vc9wzip4-apple-framework-CoreFoundation-11.0.0/Library/Frameworks/CoreFoundation.framework/Headers/CFAvailability.h:169:55: note: expanded from macro 'CF_ENUM'
\#define CF_ENUM(...) __CF_ENUM_GET_MACRO(__VA_ARGS__, __CF_NAMED_ENUM, __CF_ANON_ENUM, )(__VA_ARGS__)
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/nix/store/jjkm7x4zfifqgsxlbhkamzg0vc9wzip4-apple-framework-CoreFoundation-11.0.0/Library/Frameworks/CoreFoundation.framework/Headers/CFAvailability.h:134:48: note: expanded from macro '__CF_ENUM_GET_MACRO'
\#define __CF_ENUM_GET_MACRO(_1, _2, NAME, ...) NAME
                                               ^
/nix/store/jjkm7x4zfifqgsxlbhkamzg0vc9wzip4-apple-framework-CoreFoundation-11.0.0/Library/Frameworks/CoreFoundation.framework/Headers/CFAvailability.h:142:75: note: expanded from macro '__CF_NAMED_ENUM'
\#define __CF_NAMED_ENUM(_type, _name)     enum __CF_ENUM_ATTRIBUTES _name : _type _name; enum _name : _type
                                                                          ^~~~~~~
                                                                          In file included from external/com_google_absl/absl/time/internal/cctz/src/time_zone_lookup.cc:26:                                                                                                                                                                              In file included from /nix/store/jjkm7x4zfifqgsxlbhkamzg0vc9wzip4-apple-framework-CoreFoundation-11.0.0/Library/Frameworks/CoreFoundation.framework/Headers/CFTimeZone.h:18:
In file included from /nix/store/jjkm7x4zfifqgsxlbhkamzg0vc9wzip4-apple-framework-CoreFoundation-11.0.0/Library/Frameworks/CoreFoundation.framework/Headers/CFString.h:17:
/nix/store/jjkm7x4zfifqgsxlbhkamzg0vc9wzip4-apple-framework-CoreFoundation-11.0.0/Library/Frameworks/CoreFoundation.framework/Headers/CFCharacterSet.h:62:9: error: non-defining declaration of enumeration with a fixed underlying type is only permitted as a standalone decla
ration; missing list of enumerators? [-Welaborated-enum-base]
typedef CF_ENUM(CFIndex, CFCharacterSetPredefinedSet) {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/nix/store/jjkm7x4zfifqgsxlbhkamzg0vc9wzip4-apple-framework-CoreFoundation-11.0.0/Library/Frameworks/CoreFoundation.framework/Headers/CFAvailability.h:169:55: note: expanded from macro 'CF_ENUM'
\#define CF_ENUM(...) __CF_ENUM_GET_MACRO(__VA_ARGS__, __CF_NAMED_ENUM, __CF_ANON_ENUM, )(__VA_ARGS__)
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/nix/store/jjkm7x4zfifqgsxlbhkamzg0vc9wzip4-apple-framework-CoreFoundation-11.0.0/Library/Frameworks/CoreFoundation.framework/Headers/CFAvailability.h:134:48: note: expanded from macro '__CF_ENUM_GET_MACRO'
\#define __CF_ENUM_GET_MACRO(_1, _2, NAME, ...) NAME
                                               ^
/nix/store/jjkm7x4zfifqgsxlbhkamzg0vc9wzip4-apple-framework-CoreFoundation-11.0.0/Library/Frameworks/CoreFoundation.framework/Headers/CFAvailability.h:142:75: note: expanded from macro '__CF_NAMED_ENUM'
\#define __CF_NAMED_ENUM(_type, _name)     enum __CF_ENUM_ATTRIBUTES _name : _type _name; enum _name : _type                                                                                                                                                                                                                                               ^~~~~~~
...
```

* Link libc++ in fat_cc_library on MacOS

* Build on native ARM M1 instead of Rosetta

changelog_begin
changelog_end

* Drop unused ghcLLVMWrapper

* Select ghcWithLLVM within Nix

If we generally expose ghcWithLLVM from Nix and then select on the
Bazel, then we'd need to filter that derivation out from the Nix and
dev-tool build step on CI.

* fmt

* Update Node version in compatibility

* Expose node in PATH in create-daml-app test

It seems that the node update made the `--scripts-prepend-node-path`
flag less effective than it was before.

Without explicitly adding `node` to `PATH` the install step fails with
the following error:

```
Failure: Command "CreateProcess {cmdspec = RawCommand "/home/aj/.cache/bazel/_bazel_aj/c437a451a7a277d35b539da616255ac8/sandbox/linux-sandbox/1435/execroot/compatibility/bazel-out/k8-opt/bin/create-daml-app-0.0.0-platform-2.0.0.runfiles/compatibility/external/node_nix/node_nix/lib/node_modules/npm/bin/npm-cli.js" ["install","--scripts-prepend-node-path"], cwd = Nothing, env = Nothing, std_in = Inherit, std_out = Inherit, std_err = Inherit, close_fds = False, create_group = False, delegate_ctlc = False, detach_console = False, create_new_console = False, new_session = False, child_group = Nothing, child_user = Nothing, use_process_jobs = False}" exited with ExitFailure 127

npm ERR! code 127
npm ERR! path /tmp/extra-dir-7515936101075/create-daml-app/ui/node_modules/puppeteer
npm ERR! command failed
npm ERR! command sh -c node install.js
npm ERR! sh: line 1: node: command not found

npm ERR! A complete log of this run can be found in:
npm ERR!     /tmp/extra-dir-7515936101074/_logs/2022-03-24T10_18_15_227Z-debug.log
```

* Skip create-daml-app compat tests pre 2.0.0

changelog_begin
changelog_end

In these tests the install step fails with the following error due to
mismatch babel-jest dependency versions:

```
==================== Test output for //:create-daml-app-1.8.1-platform-0.0.0:
Create Daml App tests
  Getting Started Guide: WARNING: Specifying the template via

    daml new create-daml-app create-daml-app

is deprecated. The recommended way of specifying the template is

    daml new create-daml-app --template create-daml-app

Created a new project in "create-daml-app" based on the template "create-daml-app".

> create-daml-app@0.1.0 test
> react-scripts test --testURL='http://localhost:7575'

There might be a problem with the project dependency tree.
It is likely not a bug in Create React App, but something you need to fix locally.

The react-scripts package provided by Create React App requires a dependency:

  "babel-jest": "^24.9.0"

Don't try to install it manually: your package manager does it automatically.
However, a different version of babel-jest was detected higher up in the tree:

  /tmp/extra-dir-3298351016846/create-daml-app/ui/node_modules/babel-jest (version: 25.5.1)

Manually installing incompatible versions is known to cause hard-to-debug issues.

If you would prefer to ignore this check, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
That will permanently disable this message but you might encounter other issues.

To fix the dependency tree, try following the steps below in the exact order:

  1. Delete package-lock.json (not package.json!) and/or yarn.lock in your project folder.
  2. Delete node_modules in your project folder.
  3. Remove "babel-jest" from dependencies and/or devDependencies in the package.json file in your project folder.
  4. Run npm install or yarn, depending on the package manager you use.

In most cases, this should be enough to fix the problem.
If this has not helped, there are a few other things you can try:

  5. If you used npm, install yarn (http://yarnpkg.com/) and repeat the above steps with it instead.
     This may help because npm has known issues with package hoisting which may get resolved in future versions.

  6. Check if /tmp/extra-dir-3298351016846/create-daml-app/ui/node_modules/babel-jest is outside your project directory.
     For example, you might have accidentally installed something in your home folder.

  7. Try running npm ls babel-jest in your project folder.
     This will tell you which other package (apart from the expected react-scripts) installed babel-jest.

If nothing else helps, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
That would permanently disable this preflight check in case you want to proceed anyway.

P.S. We know this message is long but please read the steps above :-) We hope you find them helpful!

FAIL (125.62s)
    Create app from template                          (0.05s)
    Patch the application code with messaging feature
    Extract codegen output                            (0.06s)
    Set up libraries and workspaces                   (0.01s)
    Install Jest, Puppeteer and other dependencies    (123.95s)
    Run Puppeteer end-to-end tests                    (1.54s)
      callProcess: /home/aj/.cache/bazel/_bazel_aj/c437a451a7a277d35b539da616255ac8/sandbox/linux-sandbox/2351/execroot/compatibility/bazel-out/k8-opt/bin/create-daml-app-1.8.1-platform-0.0.0.runfiles/compatibility/external/node_nix/node_nix/lib/node_modules/npm/bin/npm-cli.js "run" "test" "--ci" "--all" "--scripts-prepend-node-path" (exit 1): failed

1 out of 1 tests failed (125.62s)
================================================================================
```

Applying the suggested `SKIP_PREFLIGHT_CHECK=true` fix leads to the
following failure instead:

```
==================== Test output for //:create-daml-app-1.9.0-platform-0.0.0:
Create Daml App tests
  Getting Started Guide: WARNING: Specifying the template via

    daml new create-daml-app create-daml-app

is deprecated. The recommended way of specifying the template is

    daml new create-daml-app --template create-daml-app

Created a new project in "create-daml-app" based on the template "create-daml-app".

> create-daml-app@0.1.0 test
> react-scripts test --testURL='http://localhost:7575'

PASS src/components/App.test.tsx
  ● Console

    console.debug daml-types/index.js:98
      Registered template bbfcd72618817ef8c99eb663e1f80375835bd51efebdc69b55884ad7afb3a0ef:User:Message.
    console.debug daml-types/index.js:98
      Registered template bbfcd72618817ef8c99eb663e1f80375835bd51efebdc69b55884ad7afb3a0ef:User:User.

12:42:55.745 [program-resource-pool-4] INFO  c.d.l.sandbox.AkkaSubmissionsBridge - Instantiated Akka submissions bridge., context: {participantId: "sandbox"}
12:42:57.897 [program-resource-pool-3] INFO  c.d.ledger.sandbox.SandboxOnXRunner - Initialized sandbox-on-x with conflict checking ledger bridge, version 0.0.0, run-mode = combined participant, index DB backend = h2database, participant-id = sandbox, ledger-id = create-daml-app-sandbox, port = 0, time mode = wall-clock time, allowed language versions = [min = LanguageVersion(V1,LanguageMinorVersion(6)), max = LanguageVersion(V1,LanguageMinorVersion(14))], authentication = all unauthenticated allowed, contract ids seeding = strong
24-03-2022 12:43:02.413 [main] INFO  com.daml.http.Main - Config(ledgerHost=localhost, ledgerPort=34937, address=127.0.0.1, httpPort=7575, portFile=Some(json-api.port), packageReloadInterval=5 seconds, packageMaxInboundMessageSize=None, maxInboundMessageSize=4194304, tlsConfig=TlsConfiguration(false,None,None,None,None,REQUIRE,false,None), jdbcConfig=None, staticContentConfig=None, allowNonHttps=true, wsConfig=None, nonRepudiationCertificateFile=None, nonRepudiationPrivateKeyFile=None, nonRepudiationPrivateKeyAlgorithm=None, surrogateTpIdCacheMaxEntries=None), context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0"}
24-03-2022 12:43:02.745 [http-json-ledger-api-akka.actor.default-dispatcher-5] INFO  akka.event.slf4j.Slf4jLogger - Slf4jLogger started
24-03-2022 12:43:03.041 [http-json-ledger-api-akka.actor.default-dispatcher-5] INFO  com.daml.http.HttpService - HTTP Server pre-startup, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0"}
24-03-2022 12:43:03.251 [http-json-ledger-api-akka.actor.default-dispatcher-5] INFO  com.daml.http.LedgerClient - Attempting to connect to the ledger localhost:34937 (600 attempts), context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0"}
24-03-2022 12:43:03.594 [http-json-ledger-api-akka.actor.default-dispatcher-5] INFO  com.daml.http.LedgerClient - Attempt 1/600 succeeded!, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0"}
24-03-2022 12:43:03.596 [http-json-ledger-api-akka.actor.default-dispatcher-5] INFO  com.daml.http.LedgerClient - Attempting to connect to the ledger localhost:34937 (600 attempts), context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0"}
24-03-2022 12:43:03.600 [http-json-ledger-api-akka.actor.default-dispatcher-5] INFO  com.daml.http.LedgerClient - Attempt 1/600 succeeded!, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0"}
24-03-2022 12:43:03.601 [http-json-ledger-api-akka.actor.default-dispatcher-5] INFO  com.daml.http.HttpService - contractDao: None, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0"}
24-03-2022 12:43:04.132 [http-json-ledger-api-akka.actor.default-dispatcher-5] INFO  com.daml.http.Main - Started server: (ServerBinding(/127.0.0.1:7575),None), context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0"}
24-03-2022 12:43:05.280 [http-json-ledger-api-akka.actor.default-dispatcher-13] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "2ab72d48-cdef-4e00-ac17-0afda5084008"}
24-03-2022 12:43:05.791 [http-json-ledger-api-akka.actor.default-dispatcher-5] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "2ab72d48-cdef-4e00-ac17-0afda5084008"}

> create-daml-app@0.1.0 start
> react-scripts start

[HPM] Proxy created: function (pathname, req) {
  // Proxy requests to the http json api when in development
  const proxied = pathname.match("^/v1") && process.env.NODE_ENV === "development";

  if (proxied) {
    console.log(
      `Request with path ${pathname} proxied from host ${req.headers.host} to host ${httpJsonDevUrl}`
    );
  }

  return proxied;
}  -> http://localhost:undefined
ℹ 「wds」: Project is running at http://192.168.1.114/
ℹ 「wds」: webpack output is served from
ℹ 「wds」: Content not from webpack is served from /tmp/extra-dir-99443589994656/create-daml-app/ui/public
ℹ 「wds」: 404s will fallback to /
Starting the development server...

24-03-2022 12:43:07.495 [http-json-ledger-api-akka.actor.default-dispatcher-9] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "ce0131fd-6a4c-4eb1-8c1b-6d68418fde82"}
24-03-2022 12:43:07.606 [http-json-ledger-api-akka.actor.default-dispatcher-17] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "ce0131fd-6a4c-4eb1-8c1b-6d68418fde82"}
24-03-2022 12:43:07.623 [http-json-ledger-api-akka.actor.default-dispatcher-9] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "a4d1c7b0-406c-4297-a690-66ba2b692f19"}
24-03-2022 12:43:07.725 [http-json-ledger-api-akka.actor.default-dispatcher-16] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "a4d1c7b0-406c-4297-a690-66ba2b692f19"}
24-03-2022 12:43:07.741 [http-json-ledger-api-akka.actor.default-dispatcher-12] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "bf65790a-38bc-4686-aa15-607c3c24661a"}
24-03-2022 12:43:07.846 [http-json-ledger-api-akka.actor.default-dispatcher-9] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "bf65790a-38bc-4686-aa15-607c3c24661a"}
24-03-2022 12:43:07.865 [http-json-ledger-api-akka.actor.default-dispatcher-13] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "3ab06283-270c-4994-852c-92c8c3b34ecc"}
24-03-2022 12:43:07.964 [http-json-ledger-api-akka.actor.default-dispatcher-14] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "3ab06283-270c-4994-852c-92c8c3b34ecc"}
24-03-2022 12:43:07.980 [http-json-ledger-api-akka.actor.default-dispatcher-8] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "b332b66a-6231-4492-817d-a2c58c85d04c"}
24-03-2022 12:43:08.084 [http-json-ledger-api-akka.actor.default-dispatcher-18] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "b332b66a-6231-4492-817d-a2c58c85d04c"}
24-03-2022 12:43:08.098 [http-json-ledger-api-akka.actor.default-dispatcher-17] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "8c77ce53-52b5-4e0c-993a-3f810b54bfec"}
24-03-2022 12:43:08.204 [http-json-ledger-api-akka.actor.default-dispatcher-9] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "8c77ce53-52b5-4e0c-993a-3f810b54bfec"}
24-03-2022 12:43:08.220 [http-json-ledger-api-akka.actor.default-dispatcher-5] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "8813ad99-79c7-42c4-9719-5bdcfeb5077e"}
24-03-2022 12:43:08.326 [http-json-ledger-api-akka.actor.default-dispatcher-12] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "8813ad99-79c7-42c4-9719-5bdcfeb5077e"}
24-03-2022 12:43:08.340 [http-json-ledger-api-akka.actor.default-dispatcher-18] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "deeca40b-0f05-47c9-927d-f71b0fe08ccb"}
24-03-2022 12:43:08.444 [http-json-ledger-api-akka.actor.default-dispatcher-18] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "deeca40b-0f05-47c9-927d-f71b0fe08ccb"}
24-03-2022 12:43:08.462 [http-json-ledger-api-akka.actor.default-dispatcher-12] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "9be53420-eb4d-4ee3-9915-4a4381c51bea"}
24-03-2022 12:43:08.563 [http-json-ledger-api-akka.actor.default-dispatcher-18] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "9be53420-eb4d-4ee3-9915-4a4381c51bea"}
24-03-2022 12:43:08.576 [http-json-ledger-api-akka.actor.default-dispatcher-18] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "8d64b076-ff2b-4f5b-8653-95e5e949cb34"}
24-03-2022 12:43:08.685 [http-json-ledger-api-akka.actor.default-dispatcher-14] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "8d64b076-ff2b-4f5b-8653-95e5e949cb34"}
24-03-2022 12:43:08.697 [http-json-ledger-api-akka.actor.default-dispatcher-14] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "87246c50-00b7-453e-9771-83f176a3cbfc"}
24-03-2022 12:43:08.802 [http-json-ledger-api-akka.actor.default-dispatcher-12] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "87246c50-00b7-453e-9771-83f176a3cbfc"}
24-03-2022 12:43:08.818 [http-json-ledger-api-akka.actor.default-dispatcher-12] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "65bb8c95-a253-4ac5-a297-1abeff6ce44c"}
24-03-2022 12:43:08.920 [http-json-ledger-api-akka.actor.default-dispatcher-12] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "65bb8c95-a253-4ac5-a297-1abeff6ce44c"}
24-03-2022 12:43:08.930 [http-json-ledger-api-akka.actor.default-dispatcher-12] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/query from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "d45c0c95-1576-480c-b048-f59919a1d139"}
24-03-2022 12:43:10.016 [http-json-ledger-api-akka.actor.default-dispatcher-12] INFO  com.daml.http.PackageService - new package IDs loaded: bfcd37bd6b84768e86e432f5f6c33e25d9e7724a9d42e33875ff74f6348e733f, 518032f41fd0175461b35ae0c9691e08b4aea55e62915f8360af2cc7a1f2ba6c, cc348d369011362a5190fe96dd1f0dfbc697fdfd10e382b9e9666f0da05961b7, f78511c39cc293d5ed72acf5a4a81411af75a435df4106c5e37823af6589040b, 6839a6d3d430c569b2425e9391717b44ca324b88ba621d597778811b2d05031d, 99a2705ed38c1c26cbb8fe7acf36bbf626668e167a33335de932599219e0a235, 76bf0fd12bd945762a01f8fc5bbcdfa4d0ff20f8762af490f8f41d6237c6524f, e22bce619ae24ca3b8e6519281cb5a33b64b3190cc763248b4c3f9ad5087a92c, d58cf9939847921b2aab78eaa7b427dc4c649d25e6bee3c749ace4c3f52f5c97, 6c2c0667393c5f92f1885163068cd31800d2264eb088eb6fc740e11241b2bf06, c1f1f00558799eec139fb4f4c76f95fb52fa1837a5dd29600baa1c8ed1bdccfd, 733e38d36a2759688a4b2c4cec69d48e7b55ecc8dedc8067b815926c917a182a, 057eed1fd48c238491b8ea06b9b5bf85a5d4c9275dd3f6183e0e6b01730cc2ba, 52af8c65ac2c4b3d61637558935d2b0a92369ec4da39978a29f90a5f738f3e14, d14e08374fc7197d6a0de468c968ae8ba3aadbf9315476fd39071831f5923662, e491352788e56ca4603acc411ffe1a49fefd76ed8b163af86cf5ee5f4c38645b, 40f452260bef3f29dede136108fc08a88d5a5250310281067087da6f0baddff7, 8a7806365bbd98d88b4c13832ebfa305f6abaeaf32cfa2b7dd25c4fa489b79fb, bbfcd72618817ef8c99eb663e1f80375835bd51efebdc69b55884ad7afb3a0ef, context: {ledger_id: "create-daml-app-sandbox", cmd: "GetActiveContractsRequest(OneAnd(TemplateId(Some(bbfcd72618817ef8c99eb663e1f80375835bd51efebdc69b55884ad7afb3a0ef),User,User),Set()),Map(),None)", request_id: "d45c0c95-1576-480c-b048-f59919a1d139", instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", application_id: "create-daml-app", read_as: "List()", act_as: "List(party-c276900f)"}
24-03-2022 12:43:10.192 [http-json-ledger-api-akka.actor.default-dispatcher-12] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "d45c0c95-1576-480c-b048-f59919a1d139"}
24-03-2022 12:43:10.420 [http-json-ledger-api-akka.actor.default-dispatcher-12] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/create from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "90767a4d-bf5f-4a9c-a633-9c9bf4374ab1"}
24-03-2022 12:43:10.490 [http-json-ledger-api-akka.actor.default-dispatcher-11] INFO  com.daml.http.CommandService - Submitting create command, context: {command_id: "9371a5a2-1ab5-4deb-8cec-ad21c0e620dc", ledger_id: "create-daml-app-sandbox", request_id: "90767a4d-bf5f-4a9c-a633-9c9bf4374ab1", instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", application_id: "create-daml-app", template_id: "TemplateId(bbfcd72618817ef8c99eb663e1f80375835bd51efebdc69b55884ad7afb3a0ef,User,User)", read_as: "List()", act_as: "List(party-c276900f)"}
24-03-2022 12:43:12.870 [http-json-ledger-api-akka.actor.default-dispatcher-17] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "90767a4d-bf5f-4a9c-a633-9c9bf4374ab1"}
24-03-2022 12:43:12.885 [http-json-ledger-api-akka.actor.default-dispatcher-17] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/fetch from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "fd827c73-d3b8-4e42-877a-ce9af707da2a"}
24-03-2022 12:43:12.992 [http-json-ledger-api-akka.actor.default-dispatcher-11] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "fd827c73-d3b8-4e42-877a-ce9af707da2a"}
24-03-2022 12:43:13.004 [http-json-ledger-api-akka.actor.default-dispatcher-11] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/query from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "94adec23-cb1a-464b-9fad-8bf7da06b99f"}
24-03-2022 12:43:13.017 [http-json-ledger-api-akka.actor.default-dispatcher-13] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "94adec23-cb1a-464b-9fad-8bf7da06b99f"}
24-03-2022 12:43:13.074 [http-json-ledger-api-akka.actor.default-dispatcher-7] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "42f7aaf6-f3f7-4138-a4c6-1be224c100bc"}
24-03-2022 12:43:13.121 [http-json-ledger-api-akka.actor.default-dispatcher-17] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "42f7aaf6-f3f7-4138-a4c6-1be224c100bc"}
Compiled successfully!

You can now view create-daml-app in the browser.

  Local:            http://localhost:3000
  On Your Network:  http://192.168.1.114:3000

Note that the development build is not optimized.
To create a production build, use npm run build.

Request with path /v1/fetch proxied from host localhost:3000 to host http://localhost:undefined
24-03-2022 12:43:53.540 [http-json-ledger-api-akka.actor.default-dispatcher-11] INFO  com.daml.http.Endpoints - Incoming POST request on http://localhost:7575/v1/parties/allocate from unknown, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "f1da2b78-e020-40fc-b4cc-e635fc78f8fb"}
24-03-2022 12:43:53.681 [http-json-ledger-api-akka.actor.default-dispatcher-7] INFO  com.daml.http.Endpoints - Responding to client with HTTP 200 OK, context: {instance_uuid: "1ff5d996-9493-4dea-a9a8-5dc5725c33c0", request_id: "f1da2b78-e020-40fc-b4cc-e635fc78f8f…
  • Loading branch information
aherrmann-da and aherrmann committed Apr 7, 2022
1 parent 4ca8abf commit 8114bff
Show file tree
Hide file tree
Showing 18 changed files with 589 additions and 108 deletions.
4 changes: 2 additions & 2 deletions .bazelrc
Expand Up @@ -97,8 +97,8 @@ build:linux --action_env=LOCALE_ARCHIVE
build:windows --action_env=JAVA_HOME

# Tell bazel to use the nixpkgs Haskell toolchain on Linux and Darwin
build:linux --host_platform=@rules_haskell//haskell/platforms:linux_x86_64_nixpkgs
build:darwin --host_platform=@rules_haskell//haskell/platforms:darwin_x86_64_nixpkgs
build:linux --host_platform=@io_tweag_rules_nixpkgs//nixpkgs/platforms:host
build:darwin --host_platform=@io_tweag_rules_nixpkgs//nixpkgs/platforms:host
# and GHC's gcc on Windows
build:windows --crosstool_top=@rules_haskell_ghc_windows_amd64//:cc_toolchain

Expand Down
40 changes: 10 additions & 30 deletions WORKSPACE
Expand Up @@ -589,38 +589,17 @@ nixpkgs_java_configure(
) if not is_windows else None

# rules_go used here to compile a wrapper around the protoc-gen-scala plugin
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
load("@io_tweag_rules_nixpkgs//nixpkgs:toolchains/go.bzl", "nixpkgs_go_configure")

nixpkgs_package(
name = "go_nix",
attribute_path = "go",
build_file_content = """
filegroup(
name = "sdk",
srcs = glob(["share/go/**"]),
visibility = ["//visibility:public"],
)
""",
nix_file = "//nix:bazel.nix",
nixpkgs_go_configure(
nix_file = "//nix:bazel-go-toolchain.nix",
nix_file_deps = common_nix_file_deps,
repositories = dev_env_nix_repos,
)

# A repository that generates the Go SDK imports, see
# ./bazel_tools/go_sdk/README.md
local_repository(
name = "go_sdk_repo",
path = "bazel_tools/go_sdk",
)
) if not is_windows else None

load("@io_bazel_rules_go//go:deps.bzl", "go_wrap_sdk")
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains")

# On Nix platforms we use the Nix provided Go SDK, on Windows we let Bazel pull
# an upstream one.
go_wrap_sdk(
name = "go_sdk",
root_file = "@go_nix//:share/go/ROOT",
) if not is_windows else None
go_register_toolchains(version = "1.16.9") if is_windows else None

# gazelle:repo bazel_gazelle
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
Expand All @@ -629,9 +608,9 @@ load("//:go_deps.bzl", "go_deps")
# gazelle:repository_macro go_deps.bzl%go_deps
go_deps()

go_rules_dependencies()
load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies")

go_register_toolchains() if not is_windows else go_register_toolchains(version = "1.16.9")
go_rules_dependencies()

gazelle_dependencies()

Expand Down Expand Up @@ -721,12 +700,13 @@ dev_env_tool(
load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install")

node_repositories(
package_json = ["//:package.json"],
# Using `dev_env_tool` introduces an additional layer of symlink
# indirection. Bazel doesn't track dependencies through symbolic links.
# Occasionally, this can cause build failures on CI if a build is not
# invalidated despite a change of an original source. To avoid such issues
# we use the `nixpkgs_package` directly.
node_version = "16.13.0",
package_json = ["//:package.json"],
vendored_node = "@nodejs_dev_env" if is_windows else "@node_nix",
)

Expand Down
1 change: 1 addition & 0 deletions bazel-haskell-deps.bzl
Expand Up @@ -57,6 +57,7 @@ haskell_cabal_library(
version = packages["lsp-types"].version,
srcs = glob(["**"]),
deps = packages["lsp-types"].deps,
haddock = False,
visibility = ["//visibility:public"],
)""",
patch_args = ["-p1"],
Expand Down
2 changes: 1 addition & 1 deletion bazel_tools/fat_cc_library.bzl
Expand Up @@ -53,7 +53,7 @@ def _fat_cc_library_impl(ctx):
[f.path for f in static_libs] +
ctx.attr.no_whole_archive_flag +
# Some libs seems to depend on libstdc++ implicitely
["-lstdc++"] +
(["-lc++", "-lc++abi"] if is_darwin else ["-lstdc++"]) +
(["-framework", "CoreFoundation"] if is_darwin else []) +
# On Windows we have some extra deps.
(["-lws2_32"] if is_windows else []),
Expand Down
197 changes: 197 additions & 0 deletions bazel_tools/haskell-arm-m1.patch
@@ -0,0 +1,197 @@
diff --git a/haskell/cabal.bzl b/haskell/cabal.bzl
index 6be79b0d..1e324ec5 100644
--- a/haskell/cabal.bzl
+++ b/haskell/cabal.bzl
@@ -171,10 +171,11 @@ def _cabal_toolchain_info(hs, cc, workspace_name, runghc):
runghc = runghc.path,
ar = ar,
cc = cc.tools.cc,
+ ld = cc.tools.ld,
strip = cc.tools.strip,
is_windows = hs.toolchain.is_windows,
workspace = workspace_name,
- ghc_cc_args = ghc_cc_program_args(hs, "$CC"),
+ ghc_cc_args = ghc_cc_program_args(hs, "$CC", "$LD"),
)

def _prepare_cabal_inputs(
diff --git a/haskell/cc.bzl b/haskell/cc.bzl
index 3726133c..d59f84f7 100644
--- a/haskell/cc.bzl
+++ b/haskell/cc.bzl
@@ -186,11 +186,12 @@ def cc_interop_info(ctx, override_cc_toolchain = None):
]).linking_context.linker_inputs.to_list() for lib in li.libraries],
)

-def ghc_cc_program_args(hs, cc):
+def ghc_cc_program_args(hs, cc, ld):
"""Returns the -pgm* flags required to override cc.

Args:
cc: string, path to the C compiler (cc_wrapper).
+ ld: string, path to the linker (ld).

Returns:
list of string, GHC arguments.
@@ -220,4 +221,11 @@ def ghc_cc_program_args(hs, cc):
]
if hs.toolchain.numeric_version >= [8, 10, 3]:
args.append("-pgmc-supports-no-pie")
+ if hs.toolchain.numeric_version >= [9, 0, 1]:
+ args.extend([
+ "-pgmlm",
+ ld,
+ "-optlm",
+ "-r",
+ ])
return args
diff --git a/haskell/doctest.bzl b/haskell/doctest.bzl
index 1cd3f675..f7a2200a 100644
--- a/haskell/doctest.bzl
+++ b/haskell/doctest.bzl
@@ -98,7 +98,7 @@ def _haskell_doctest_single(target, ctx):
ctx,
override_cc_toolchain = hs.tools_config.maybe_exec_cc_toolchain,
)
- args.add_all(ghc_cc_program_args(hs, cc.tools.cc))
+ args.add_all(ghc_cc_program_args(hs, cc.tools.cc, cc.tools.ld))

doctest_log = ctx.actions.declare_file(
"doctest-log-" + ctx.label.name + "-" + target.label.name,
diff --git a/haskell/nixpkgs.bzl b/haskell/nixpkgs.bzl
index 7ccead78..6692fe6b 100644
--- a/haskell/nixpkgs.bzl
+++ b/haskell/nixpkgs.bzl
@@ -1,5 +1,6 @@
"""Workspace rules (Nixpkgs)"""

+load("@bazel_tools//tools/cpp:lib_cc_configure.bzl", "get_cpu_value")
load(
"@io_tweag_rules_nixpkgs//nixpkgs:nixpkgs.bzl",
"nixpkgs_package",
@@ -145,15 +146,21 @@ def _ghc_nixpkgs_toolchain_impl(repository_ctx):
# platform. But they are important to state because Bazel
# toolchain resolution prefers other toolchains with more specific
# constraints otherwise.
- if repository_ctx.attr.target_constraints == [] and repository_ctx.attr.exec_constraints == []:
- target_constraints = ["@platforms//cpu:x86_64"]
- if repository_ctx.os.name == "linux":
- target_constraints.append("@platforms//os:linux")
- elif repository_ctx.os.name == "mac os x":
- target_constraints.append("@platforms//os:osx")
- exec_constraints = list(target_constraints)
+ cpu_value = get_cpu_value(repository_ctx)
+ cpu = {
+ "darwin": "@platforms//cpu:x86_64",
+ "darwin_arm64": "@platforms//cpu:arm64",
+ }.get(cpu_value, "@platforms//cpu:x86_64")
+ os = {
+ "darwin": "@platforms//os:osx",
+ "darwin_arm64": "@platforms//os:osx",
+ }.get(cpu_value, "@platforms//os:linux")
+
+ if not repository_ctx.attr.target_constraints and not repository_ctx.attr.exec_constraints:
+ target_constraints = [cpu, os]
+ exec_constraints = target_constraints
else:
- target_constraints = repository_ctx.attr.target_constraints
+ target_constraints = list(repository_ctx.attr.target_constraints)
exec_constraints = list(repository_ctx.attr.exec_constraints)

exec_constraints.append("@io_tweag_rules_nixpkgs//nixpkgs/constraints:support_nix")
diff --git a/haskell/private/cabal_wrapper.py b/haskell/private/cabal_wrapper.py
index 1ba677b3..b14135f9 100755
--- a/haskell/private/cabal_wrapper.py
+++ b/haskell/private/cabal_wrapper.py
@@ -129,6 +129,7 @@ path_args = json_args["path_args"]

ar = find_exe(toolchain_info["ar"])
cc = find_exe(toolchain_info["cc"])
+ld = find_exe(toolchain_info["ld"])
strip = find_exe(toolchain_info["strip"])

def recache_db():
@@ -261,10 +262,14 @@ with mkdtemp(distdir_prefix()) as distdir:
"--with-hsc2hs=" + hsc2hs,
"--with-ar=" + ar,
"--with-gcc=" + cc,
+ "--with-ld=" + ld,
"--with-strip=" + strip,
"--enable-deterministic", \
] +
- [ "--ghc-option=" + flag.replace("$CC", cc) for flag in toolchain_info["ghc_cc_args"] ] +
+ [ "--ghc-option=" + flag.replace("$CC", cc).replace("$LD", ld) for flag in toolchain_info["ghc_cc_args"] ] +
+ [ "--hsc2hs-option=-c" + cc,
+ "--hsc2hs-option=-l" + cc,
+ ] +
enable_relocatable_flags + \
[ \
# Make `--builddir` a relative path. Using an absolute path would
diff --git a/haskell/private/cc_wrapper.py.tpl b/haskell/private/cc_wrapper.py.tpl
index 311c0f96..9249f30b 100644
--- a/haskell/private/cc_wrapper.py.tpl
+++ b/haskell/private/cc_wrapper.py.tpl
@@ -84,6 +84,7 @@ CC = os.environ.get("CC_WRAPPER_CC_PATH", "{:cc:}")
PLATFORM = os.environ.get("CC_WRAPPER_PLATFORM", "{:platform:}")
CPU = os.environ.get("CC_WRAPPER_CPU", "{:cpu:}")
INSTALL_NAME_TOOL = "/usr/bin/install_name_tool"
+CODESIGN = "/usr/bin/codesign"
OTOOL = "/usr/bin/otool"


@@ -938,6 +939,14 @@ def darwin_rewrite_load_commands(rewrites, output):
args.extend(["-change", old, os.path.join("@rpath", new)])
if args:
subprocess.check_call([INSTALL_NAME_TOOL] + args + [output])
+ # Resign the binary after patching it.
+ # This is necessary on MacOS Monterey on M1.
+ # The moving back and forth is necessary because the OS caches the signature.
+ # See this note from nixpkgs for reference:
+ # https://github.com/NixOS/nixpkgs/blob/5855ff74f511423e3e2646248598b3ffff229223/pkgs/os-specific/darwin/signing-utils/utils.sh#L1-L6
+ os.rename(output, f"{output}.resign")
+ subprocess.check_call([CODESIGN] + ["-f", "-s", "-"] + [f"{output}.resign"])
+ os.rename(f"{output}.resign", output)


# --------------------------------------------------------------------
diff --git a/haskell/repl.bzl b/haskell/repl.bzl
index 6cc44499..0833ec92 100644
--- a/haskell/repl.bzl
+++ b/haskell/repl.bzl
@@ -396,7 +396,12 @@ def _create_repl(hs, cc, posix, ctx, repl_info, output):
"$RULES_HASKELL_EXEC_ROOT",
hs.toolchain.cc_wrapper.executable.path,
)
- args.extend(['"{}"'.format(arg) for arg in ghc_cc_program_args(hs, cc_path)])
+ ld_path = paths.join(
+ "$RULES_HASKELL_EXEC_ROOT",
+ cc.ld_executable,
+ )
+ args.extend(['"{}"'.format(arg) for arg in ghc_cc_program_args(hs, cc_path, ld_path)])
+

# Load source files
# Force loading by source with `:add *...`.
@@ -518,7 +523,8 @@ def _create_hie_bios(hs, cc, posix, ctx, repl_info, path_prefix):
path_prefix = paths.join("", *path_prefix)
args, inputs = _compiler_flags_and_inputs(hs, cc, repl_info, path_prefix = path_prefix, static = True)
cc_path = paths.join(path_prefix, hs.toolchain.cc_wrapper.executable.path)
- args.extend(ghc_cc_program_args(hs, cc_path))
+ ld_path = paths.join(path_prefix, cc.ld_executable)
+ args.extend(ghc_cc_program_args(hs, cc_path, ld_path))
args.extend(hs.toolchain.ghcopts)
args.extend(repl_info.load_info.compiler_flags)

diff --git a/haskell/toolchain.bzl b/haskell/toolchain.bzl
index 2cecc0b8..74f72163 100644
--- a/haskell/toolchain.bzl
+++ b/haskell/toolchain.bzl
@@ -46,7 +46,7 @@ def _run_ghc(hs, cc, inputs, outputs, mnemonic, arguments, env, params_file = No

# XXX: We should also tether Bazel's CC toolchain to GHC's, so that we can properly mix Bazel-compiled
# C libraries with Haskell targets.
- args.add_all(ghc_cc_program_args(hs, cc.tools.cc))
+ args.add_all(ghc_cc_program_args(hs, cc.tools.cc, cc.tools.ld))

compile_flags_file = hs.actions.declare_file("compile_flags_%s_%s_%s" % (hs.name, extra_name, mnemonic))
extra_args_file = hs.actions.declare_file("extra_args_%s_%s_%s" % (hs.name, extra_name, mnemonic))
4 changes: 2 additions & 2 deletions bazel_tools/nixpkgs-disable-http2.patch
@@ -1,8 +1,8 @@
diff --git a/nixpkgs/nixpkgs.bzl b/nixpkgs/nixpkgs.bzl
index 666948e..8d99441 100644
index 16fe59c..d590d44 100644
--- a/nixpkgs/nixpkgs.bzl
+++ b/nixpkgs/nixpkgs.bzl
@@ -116,7 +116,7 @@ def _nixpkgs_package_impl(repository_ctx):
@@ -136,7 +136,7 @@ def _nixpkgs_package_impl(repository_ctx):
"The NIX_PATH environment variable is not inherited."
)

Expand Down
11 changes: 10 additions & 1 deletion bazel_tools/os_info.bzl
Expand Up @@ -5,14 +5,23 @@ load("@bazel_tools//tools/cpp:lib_cc_configure.bzl", "get_cpu_value")

_os_info_bzl_template = """
cpu_value = "{CPU_VALUE}"
is_darwin = cpu_value == "darwin"
is_darwin = cpu_value == "darwin" or cpu_value == "darwin_arm64"
is_darwin_arm64 = cpu_value == "darwin_arm64"
is_linux = cpu_value == "k8"
is_windows = cpu_value == "x64_windows"
os_name = "macos" if is_darwin else "linux" if is_linux else "windows"
"""

def _os_info_impl(repository_ctx):
cpu = get_cpu_value(repository_ctx)
known_cpu_values = [
"darwin",
"darwin_arm64",
"k8",
"x64_windows",
]
if cpu not in known_cpu_values:
fail("Unknown OS type {}, expected one of {}".format(cpu, ", ".join(known_cpu_values)))
os_info_substitutions = {
"CPU_VALUE": cpu,
}
Expand Down
8 changes: 8 additions & 0 deletions bazel_tools/packaging/package-app.sh
Expand Up @@ -211,6 +211,14 @@ elif [[ "$(uname -s)" == "Darwin" ]]; then
fi
fi
done

# Resign the binary on MacOS. Requires moving the file back and forth
# because the OS caches the signatore. Refer to the following note in
# nixpkgs for details:
# https://github.com/NixOS/nixpkgs/blob/5855ff74f511423e3e2646248598b3ffff229223/pkgs/os-specific/darwin/signing-utils/utils.sh#L1-L6
mv "$from_copied" "$from_copied.resign"
/usr/bin/codesign -f -s - "$from_copied.resign"
mv "$from_copied.resign" "$from_copied"
}
# Set the dynamic library load path to the relative lib/ directory.
/usr/bin/install_name_tool -add_rpath "@loader_path/lib" $WORKDIR/$NAME/$NAME
Expand Down

0 comments on commit 8114bff

Please sign in to comment.