[Haskell-iPhone] Using ghc-ios with cabal sandbox

Axis Sivitz axis at asivitz.com
Thu Nov 13 19:32:28 UTC 2014


I filed a bug: https://github.com/haskell/cabal/issues/2213
Someone commented that it should basically work.

I’m trying to track down exactly where it goes wrong for me. There’s a
problem in the way "cabal exec” interacts with the ghc-ios script.

If I run…

ghc-ios -v3 test.hs
Glasgow Haskell Compiler, Version 7.8.3, stage 1 booted by GHC version 7.8.2
Using binary package database:
/usr/local/lib/arm-apple-darwin10-ghc-7.8.3/package.conf.d/package.cache
Using binary package database:
/Users/axis/.ghc/arm-ios-7.8.3/package.conf.d/package.cache

It correctly finds the package database.

But if I run…

cabal exec ghc-ios -- -v3 test.hs
Glasgow Haskell Compiler, Version 7.8.3, stage 1 booted by GHC version 7.8.2
Using binary package database:
/usr/local/lib/ghc-7.8.3/package.conf.d/package.cache
Using binary package database:
/Users/axis/sandbox/.cabal-sandbox/x86_64-osx-ghc-7.8.3-packages.conf.d/package.cache

It correctly uses the sandbox, but not the arm ghc.

I looked into /usr/local/bin/arm-apple-darwin10-ghc, which does the
following:

 #!/bin/sh
 exedir="/usr/local/lib/arm-apple-darwin10-ghc-7.8.3/bin"
 exeprog="ghc-stage1"
 executablename="$exedir/$exeprog"
 datadir="/usr/local/share"
 bindir="/usr/local/bin"
 topdir="/usr/local/lib/arm-apple-darwin10-ghc-7.8.3"
 executablename="$exedir/ghc"
 exec "$executablename" -B"$topdir" ${1+"$@“}

I’m not sure what’s going on at the end (what is the -B flag?), but somehow
that topdir variable doesn’t make it through the sandbox call.

Thanks for your help.

On Wed, Oct 15, 2014 at 9:30 PM, Axis Sivitz <axis at asivitz.com> wrote:

> Oh, I think you’re right, it wasn’t actually installing correctly. I will
> file a bug with cabal.
>
> Thanks
>
> On Wed, Oct 15, 2014 at 6:58 PM, Luke Iannini <lukexipd at gmail.com> wrote:
>
>> Hi Axis,
>>
>> I'm looking at my notes from my (brief) attempt to try sandboxes with
>> ghc-ios, and it looks like one major issue is that the --builddir flag
>> isn't paid attention to when installing into a sandbox, thus the object
>> files from different architectures get mixed up. That will likely need a
>> patch to cabal (I don't think many of the cabal devs are using multiple
>> architectures/cross compilation) — filing a bug would be great.
>>
>> Best
>> Luke
>>
>>
>> On Wed, Oct 15, 2014 at 1:57 PM, Axis Sivitz <axis at asivitz.com> wrote:
>>
>>> Is anyone using ghc-ios with cabal sandbox? I am having trouble with it.
>>>
>>> I can 'cabal-ios install’ fine. That installs the packages properly in
>>> the sandbox for arm and x86.
>>>
>>> But the ghc-ios script doesn’t use the sandbox environment. And running
>>> a simple 'cabal exec ghc-ios …’ clobbers the package-db path:
>>>
>>> I get...
>>> "Using binary package database:
>>> /…/sandbox/x86_64-osx-ghc-7.8.3-packages.conf.d/package.cache”
>>> and then a bunch of errors like:
>>> Bad interface file: /usr/local/lib/ghc-7.8.3/base-4.7.0.1/Prelude.hi
>>>         magic number mismatch: old/corrupt interface file? (wanted
>>> 129742, got 33214052)
>>>
>>> I guess the best solution is for cabal’s exec command to respect the
>>> arguments that cabal-ios provides. But maybe in the meantime perhaps I can
>>> tweak the ghc-ios script to add an argument to look for the presence of
>>> sandboxing, unless anyone else has a better idea.
>>>
>>> Thanks,
>>> Axis
>>>
>>> _______________________________________________
>>> iPhone mailing list
>>> iPhone at haskell.org
>>> http://www.haskell.org/mailman/listinfo/iphone
>>>
>>>
>>
>
>
> --
> Axis Sivitz
> http://asivitz.com <http://buttonbrigade.com/>
> (513) 535-1668
>



-- 
Axis Sivitz
http://asivitz.com <http://buttonbrigade.com/>
(513) 535-1668
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/iphone/attachments/20141113/5ff7d6e8/attachment.html>


More information about the iPhone mailing list