You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am using ghc-android to cross compile for android, and cabal used to detect it was being used with a cross compiling ghc, for Build-Type: simple packages, always run the simple setup code that's built into cabal. However, I rebuilt my environment today (also changing it to be based on Debian jessie instead of Debian wheezy, but not otherwise changing anything except the version of cabal), and this no longer works properly. Cabal instead compiles a setup program, and tries to run it, which of course fails because the program was built targeting a different OS than the host OS.
Stracing cabal showed it was copying the compiled setup program into a setup-exe-cache inside .cabal.
I see a comment in the cabal source that parallel installs always use external setup. I was not explictly using -j, but that seems a broken thing to do for cross compile setups anyhow.
I plan to check why determineSetupMethod is picking external, and follow up to this bug.
cabal-install version 1.20.0.3
using version 1.20.0.2 of the Cabal library
The text was updated successfully, but these errors were encountered:
#1493 is not the same as this bug, that is about Build-Type: Custom, and this is about Build-Type: simple.
Looking at the ghc-ios docs, they include a note that the user needs to comment out jobs: $ncpus in .cabal/config, so default parallel installs is probably the cause of the problem.
So I think that cabal should disable paralelism when cross compiling.
I am using ghc-android to cross compile for android, and cabal used to detect it was being used with a cross compiling ghc, for Build-Type: simple packages, always run the simple setup code that's built into cabal. However, I rebuilt my environment today (also changing it to be based on Debian jessie instead of Debian wheezy, but not otherwise changing anything except the version of cabal), and this no longer works properly. Cabal instead compiles a setup program, and tries to run it, which of course fails because the program was built targeting a different OS than the host OS.
Stracing cabal showed it was copying the compiled setup program into a setup-exe-cache inside .cabal.
I see a comment in the cabal source that parallel installs always use external setup. I was not explictly using -j, but that seems a broken thing to do for cross compile setups anyhow.
I plan to check why determineSetupMethod is picking external, and follow up to this bug.
cabal-install version 1.20.0.3
using version 1.20.0.2 of the Cabal library
The text was updated successfully, but these errors were encountered: