-
Notifications
You must be signed in to change notification settings - Fork 81
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
Compilation of cabal libraries fails using awry cc tools / options #2070
Labels
Comments
avdv
added a commit
that referenced
this issue
Dec 6, 2023
For nixpkgs GHC 9.6.2, this caused a bus error with ghc-iserv: ``` ERROR: /Users/runner/work/rules_haskell/rules_haskell/rules_haskell_tests/tests/haskell_module/dep-narrowing-th/BUILD.bazel:88:16: HaskellBuildObject @//tests/haskell_module/dep-narrowing-th:lib @//tests/haskell_module/dep-narrowing-th:TestModule2 failed: (Exit 1): ghc_wrapper failed: error executing command (from target //tests/haskell_module/dep-narrowing-th:lib) (cd /private/var/tmp/_bazel_runner/6f93c0710d32c05eb86fd5414239ece6/sandbox/processwrapper-sandbox/2954/execroot/rules_haskell_tests && \ exec env - \ LANG=C.UTF-8 \ MUST_EXTRACT_ABI=true \ PATH=/nix/store/f0hpls21prmic0kg5b4yz5wgg1jdradr-posix-toolchain/bin:/nix/store/f0hpls21prmic0kg5b4yz5wgg1jdradr-posix-toolchain/bin \ RULES_HASKELL_DOCDIR_PATH=/nix/store/slndd05yb65viiv9g7b05fb9y38rj0kq-ghc-9.6.2/lib/ghc-9.6.2/lib/../../../../qpzm6rba12ifz005ksjx302vyrzri7rq-ghc-9.6.2-doc/share/doc/ghc/html/libraries/base-4.18.0.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/slndd05yb65viiv9g7b05fb9y38rj0kq-ghc-9.6.2/lib/ghc-9.6.2/lib \ bazel-out/darwin-opt-exec-C7777A24/bin/external/rules_haskell/haskell/ghc_wrapper bazel-out/darwin-dbg/bin/tests/haskell_module/dep-narrowing-th/compile_flags_lib_tests_haskell_module_dep-narrowing-th_TestModule2_HaskellBuildObjectProf bazel-out/darwin-dbg/bin/tests/haskell_module/dep-narrowing-th/extra_args_lib_tests_haskell_module_dep-narrowing-th_TestModule2_HaskellBuildObjectProf bazel-out/darwin-dbg/bin/tests/haskell_module/dep-narrowing-th/show_iface_lib_tests_haskell_module_dep-narrowing-th_TestModule2 bazel-out/darwin-dbg/bin/tests/haskell_module/dep-narrowing-th/testsZShaskellZUmoduleZSdep-narrowing-thZSlib/_iface/TestModule2.p_abi bazel-out/darwin-dbg/bin/tests/haskell_module/dep-narrowing-th/interfaces_lib_tests_haskell_module_dep-narrowing-th_TestModule2 bazel-out/darwin-dbg/bin/tests/haskell_module/dep-narrowing-th/unused_lib_tests_haskell_module_dep-narrowing-th_TestModule2) # Configuration: b90e686f7362f222f0a77fdd18c7cd52adae6ac6c043bbfd99dd47bb206c3ee8 # Execution platform: @rules_nixpkgs_core//platforms:host Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging tests/haskell_module/dep-narrowing-th/TestModule2.hs:1:1: error: [GHC-87897] Exception when trying to run compile-time code: ghc-iserv terminated (-10) Code: runIO foo >> return [] | 1 | {-# LANGUAGE TemplateHaskell #-} | ^ INFO: Elapsed time: 99.464s, Critical Path: 41.26s ``` See also #2070
avdv
added a commit
that referenced
this issue
Dec 6, 2023
For nixpkgs GHC 9.6.2, this caused a bus error with ghc-iserv: ``` ERROR: /Users/runner/work/rules_haskell/rules_haskell/rules_haskell_tests/tests/haskell_module/dep-narrowing-th/BUILD.bazel:88:16: HaskellBuildObject @//tests/haskell_module/dep-narrowing-th:lib @//tests/haskell_module/dep-narrowing-th:TestModule2 failed: (Exit 1): ghc_wrapper failed: error executing command (from target //tests/haskell_module/dep-narrowing-th:lib) (cd /private/var/tmp/_bazel_runner/6f93c0710d32c05eb86fd5414239ece6/sandbox/processwrapper-sandbox/2954/execroot/rules_haskell_tests && \ exec env - \ LANG=C.UTF-8 \ MUST_EXTRACT_ABI=true \ PATH=/nix/store/f0hpls21prmic0kg5b4yz5wgg1jdradr-posix-toolchain/bin:/nix/store/f0hpls21prmic0kg5b4yz5wgg1jdradr-posix-toolchain/bin \ RULES_HASKELL_DOCDIR_PATH=/nix/store/slndd05yb65viiv9g7b05fb9y38rj0kq-ghc-9.6.2/lib/ghc-9.6.2/lib/../../../../qpzm6rba12ifz005ksjx302vyrzri7rq-ghc-9.6.2-doc/share/doc/ghc/html/libraries/base-4.18.0.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/slndd05yb65viiv9g7b05fb9y38rj0kq-ghc-9.6.2/lib/ghc-9.6.2/lib \ bazel-out/darwin-opt-exec-C7777A24/bin/external/rules_haskell/haskell/ghc_wrapper bazel-out/darwin-dbg/bin/tests/haskell_module/dep-narrowing-th/compile_flags_lib_tests_haskell_module_dep-narrowing-th_TestModule2_HaskellBuildObjectProf bazel-out/darwin-dbg/bin/tests/haskell_module/dep-narrowing-th/extra_args_lib_tests_haskell_module_dep-narrowing-th_TestModule2_HaskellBuildObjectProf bazel-out/darwin-dbg/bin/tests/haskell_module/dep-narrowing-th/show_iface_lib_tests_haskell_module_dep-narrowing-th_TestModule2 bazel-out/darwin-dbg/bin/tests/haskell_module/dep-narrowing-th/testsZShaskellZUmoduleZSdep-narrowing-thZSlib/_iface/TestModule2.p_abi bazel-out/darwin-dbg/bin/tests/haskell_module/dep-narrowing-th/interfaces_lib_tests_haskell_module_dep-narrowing-th_TestModule2 bazel-out/darwin-dbg/bin/tests/haskell_module/dep-narrowing-th/unused_lib_tests_haskell_module_dep-narrowing-th_TestModule2) # Configuration: b90e686f7362f222f0a77fdd18c7cd52adae6ac6c043bbfd99dd47bb206c3ee8 # Execution platform: @rules_nixpkgs_core//platforms:host Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging tests/haskell_module/dep-narrowing-th/TestModule2.hs:1:1: error: [GHC-87897] Exception when trying to run compile-time code: ghc-iserv terminated (-10) Code: runIO foo >> return [] | 1 | {-# LANGUAGE TemplateHaskell #-} | ^ INFO: Elapsed time: 99.464s, Critical Path: 41.26s ``` See also #2070
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Describe the bug
Cabal is calling
ghc --info
to gather information about the cc toolchain, such as if thear
tool is supporting response files.Some of this information can be overridden using ghc / cabal flags (such as the path to the
otool
executable), but some information is only available fromghc --info
reflecting the information at the time when GHC was installed.Depending on the configured cc toolchain, the cc tools actually used and the information about these tools from
ghc --info
might mismatch and cause errors.To Reproduce
nixos-unstable
:nix-shell --pure --argstr ghcVersion 9.6.3 --arg docTools false
cd rules_haskell_tests
for i in *9.6.2*; do cp $i ${i/.2/.3}; done
ghc info:
Notice that ghc info says
("ar supports at file","YES")
, but the actualar
does not understand it:The cc toolchain has
tool_paths = {"ar": "/nix/store/pjpnglgh0bx9q0387g4x5sizilscm41z-Toolchains/XcodeDefault.xctoolchain/bin/libtool",
which we replace with/usr/bin/ar
here and here.Expected behavior
Cabal should use the cc tools from the cc toolchain and should not rely on the information that is given by
ghc --info
.We should not rely on
/usr/bin/ar
on Darwin.Environment
Additional context
The text was updated successfully, but these errors were encountered: