[Haskell-iPhone] More arm-apple-darwin10-ghc trouble

Luke Iannini lukexipd at gmail.com
Tue Dec 24 00:14:57 UTC 2013


Hi Schell,

If you're building onto a 4S/iPad4 or later, you're probably partially
running into the thing I mentioned wherein the arm-apple-darwin10-clang
script isn't quite correctly generating fat binaries for armv7 and armv7s
yet. I reverted it back to just doing armv7s (you'd have to switch it to
armv7 if you wanted an earlier device):
https://github.com/ghc-ios/ghc-ios-scripts/blob/master/arm-apple-darwin10-clang

You'll have to rebuild GHC with this :P.

Also, in "Build Settings", change "Architectures" to "Standard
Architectures (armv7, armv7s)" (as opposed to "(including 64-bit)") which
should fix the Arm64 messages (just added this to the wiki — we're awaiting
llvm code from Apple before we can support Arm64), and possibly set "Valid
Architectures" to just armv7s or armv7 depending on which device you're
building for until we get the fat stuff figured out.

Cheers
Luke



On Mon, Dec 23, 2013 at 10:29 AM, Schell Scivally <efsubenovex at gmail.com>wrote:

> It looks like nuking jobs: $ncpus did the trick. I now have primitive and
> vector installed and confirmed with arm-apple-darwin10-ghc. After building
> my static lib the next issue is that I'm having a lot of linking errors in
> Xcode. Here is the build log:
> https://gist.github.com/schell/f10af8c0d29e24da5c25
>
>
> On Sun, Dec 22, 2013 at 4:47 PM, Luke Iannini <lukexipd at gmail.com> wrote:
>
>> Hey Schell,
>>
>> I think I see the issue — did you see the note in section 6 of
>> https://ghc.haskell.org/trac/ghc/wiki/Building/CrossCompiling/iOSregarding the
>> jobs: $ncpus
>> option in ~/.cabal/config ?
>> If you've got that, nuke it and see if that fixes it.
>>
>> I need to file a bug about that with the Cabal team.
>>
>> I've also been meaning to warn — I am pretty sure the fat armv7s/armv7
>> binary approach taken by arm-apple-darwin10-ghc doesn't fully work yet (I
>> was convinced it did when I implemented it, but recent testing with armv7
>> and armv7s devices show missing symbols for one arch or the other). I
>> haven't had nearly the time to work on it and if anyone's looking for a way
>> to help with GHC iOS that's a great self-contained problem to work on : ).
>>
>> If we can't get that approach to work (intercepting build commands and
>> lipoing things together on the fly), there's always the approach of
>> building one GHC for each armv7 and armv7s, but that's got its own pain
>> points since GHC calls both of those just "arm" internally and you have to
>> do some yucky stuff with directory management :/ (that's what I've done
>> here, and it works at least : )).
>>
>> Hopefully I'll be out of the woods in my primary work soon and able to
>> devote more cycles help in cleaning these things up.
>>
>> Cheers
>> Luke
>>
>>
>> On Sun, Dec 22, 2013 at 4:22 PM, Schell Scivally <efsubenovex at gmail.com>wrote:
>>
>>> The primitive log is empty, nothing is printed to it. The version of
>>> vector I'm trying to build is 0.10.9.1, which is currently on hackage. I've
>>> also tried building primitive 0.5.2.0 by hand - cloning it from github and
>>> then running arm-apple-darwin10-cabal install and it stops at the same
>>> error. Nothing is printed to the log file. If I try each step separately
>>> (configure, build, install) I can configure fine and building gives this
>>> output:
>>>
>>> Building primitive-0.5.2.0...
>>>
>>> Preprocessing library primitive-0.5.2.0...
>>>
>>> [ 1 of 10] Compiling Data.Primitive.Internal.Compat (
>>> Data/Primitive/Internal/Compat.hs,
>>> dist-arm/build/Data/Primitive/Internal/Compat.o )
>>>
>>> [ 2 of 10] Compiling Data.Primitive.MachDeps (
>>> Data/Primitive/MachDeps.hs, dist-arm/build/Data/Primitive/MachDeps.o )
>>>
>>> [ 3 of 10] Compiling Data.Primitive.Internal.Operations (
>>> Data/Primitive/Internal/Operations.hs,
>>> dist-arm/build/Data/Primitive/Internal/Operations.o )
>>>
>>> [ 4 of 10] Compiling Control.Monad.Primitive (
>>> Control/Monad/Primitive.hs, dist-arm/build/Control/Monad/Primitive.o )
>>>
>>> [ 5 of 10] Compiling Data.Primitive.Types ( Data/Primitive/Types.hs,
>>> dist-arm/build/Data/Primitive/Types.o )
>>>
>>> [ 6 of 10] Compiling Data.Primitive.Array ( Data/Primitive/Array.hs,
>>> dist-arm/build/Data/Primitive/Array.o )
>>>
>>> [ 7 of 10] Compiling Data.Primitive.ByteArray (
>>> Data/Primitive/ByteArray.hs, dist-arm/build/Data/Primitive/ByteArray.o )
>>>
>>> [ 8 of 10] Compiling Data.Primitive.Addr ( Data/Primitive/Addr.hs,
>>> dist-arm/build/Data/Primitive/Addr.o )
>>>
>>> [ 9 of 10] Compiling Data.Primitive   ( Data/Primitive.hs,
>>> dist-arm/build/Data/Primitive.o )
>>>
>>> [10 of 10] Compiling Data.Primitive.MutVar ( Data/Primitive/MutVar.hs,
>>> dist-arm/build/Data/Primitive/MutVar.o )
>>>
>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib:
>>> archive library: dist-arm/build/libHSprimitive-0.5.2.0.a will be fat and
>>> ar(1) will not be able to operate on it
>>> In-place registering primitive-0.5.2.0...
>>>
>>> And then installing gives:
>>>
>>> Resolving dependencies...
>>>
>>> Configuring primitive-0.5.2.0...
>>>
>>> Failed to install primitive-0.5.2.0
>>>
>>> Last 10 lines of the build log (
>>> /Users/schell/.cabal/logs/primitive-0.5.2.0.log ):
>>>
>>> cabal: Error: some packages failed to install:
>>>
>>> primitive-0.5.2.0 failed during the configure step. The exception was:
>>>
>>> ExitFailure 127
>>>
>>> To me it seems like the line
>>> "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib:
>>> archive library: dist-arm/build/libHSprimitive-0.5.2.0.a will be fat and
>>> ar(1) will not be able to operate on it" could be important? Does that
>>> sound like it may have something to do with the install failure?
>>>
>>>
>>>
>>> On Sun, Dec 22, 2013 at 2:49 PM, Carter Schonwald <
>>> carter.schonwald at gmail.com> wrote:
>>>
>>>> Oooooo.   What version of vector are you using?  It needs to be the one
>>>> for ghc HEAD.
>>>>
>>>>
>>>> On Sunday, December 22, 2013, Carter Schonwald wrote:
>>>>
>>>>> Could you also share the primitive log?  Seems like something is
>>>>> happening there.
>>>>> Can't you just build primitive by hand then vector?
>>>>>
>>>>> On Sunday, December 22, 2013, Schell Scivally wrote:
>>>>>
>>>>>> Ah, cool - I didn't know that the verbosity arg took a parameter.
>>>>>> Here is the full output:
>>>>>> https://gist.github.com/schell/7c08631f52e1e6f54a39
>>>>>>
>>>>>>
>>>>>> On Sun, Dec 22, 2013 at 1:13 PM, Carter Schonwald <
>>>>>> carter.schonwald at gmail.com> wrote:
>>>>>>
>>>>>>> The -v flag is for cabal.  Be sure to post a link to the full
>>>>>>> output.
>>>>>>>
>>>>>>>
>>>>>>> On Sunday, December 22, 2013, Schell Scivally wrote:
>>>>>>>
>>>>>>>> Hey guys, I thought I had fixed my issues by rebuilding HEAD but it
>>>>>>>> looks like I just went in a circle and now I'm back at the same problem
>>>>>>>> from my first message:
>>>>>>>> http://www.haskell.org/pipermail/iphone/2013-December/000345.html
>>>>>>>>
>>>>>>>> I'm trying to cabal install vector but it's failing while
>>>>>>>> installing primitive. The log file shows no error, so it looks like it's
>>>>>>>> silently erring. My setup is here:
>>>>>>>> https://gist.github.com/schell/f3a737171ce2f6b1119c
>>>>>>>> Just for posterity I'll post the output from
>>>>>>>> `arm-apple-darwin10-cabal install vector`:
>>>>>>>>
>>>>>>>> Resolving dependencies...
>>>>>>>>
>>>>>>>> Configuring primitive-0.5.1.0...
>>>>>>>>
>>>>>>>> Failed to install primitive-0.5.1.0
>>>>>>>>
>>>>>>>> Last 10 lines of the build log (
>>>>>>>> /Users/schell/.cabal/logs/primitive-0.5.1.0.log ):
>>>>>>>>
>>>>>>>> cabal: Error: some packages failed to install:
>>>>>>>>
>>>>>>>> primitive-0.5.1.0 failed during the configure step. The exception
>>>>>>>> was:
>>>>>>>>
>>>>>>>> ExitFailure 127
>>>>>>>>
>>>>>>>> vector-0.10.9.1 depends on primitive-0.5.1.0 which failed to
>>>>>>>> install.
>>>>>>>>
>>>>>>>> The build log is empty.
>>>>>>>> Furthermore, for a while I was trying to use cabal like
>>>>>>>> `arm-apple-darwin10-cabal --config-file=arm.config install vector`,
>>>>>>>> pointing it to a custom cabal file (one that was just autogenerated the
>>>>>>>> first time I issued the command). This looked like it was working, but it
>>>>>>>> says that the package is already installed. If I don't include the
>>>>>>>> --config-file option it errs like above.
>>>>>>>>
>>>>>>>> Using arm-apple-darwin10-ghc to build my project is failing because
>>>>>>>> it can't find Data.Vector.Storable but I can't seem to get cabal to install
>>>>>>>> it in the correct location.
>>>>>>>>
>>>>>>>> --
>>>>>>>> Schell Scivally
>>>>>>>> http://blog.efnx.com
>>>>>>>> http://github.com/schell
>>>>>>>> http://twitter.com/schellsan
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Schell Scivally
>>>>>> http://blog.efnx.com
>>>>>> http://github.com/schell
>>>>>> http://twitter.com/schellsan
>>>>>>
>>>>>
>>>
>>>
>>> --
>>> Schell Scivally
>>> http://blog.efnx.com
>>> http://github.com/schell
>>> http://twitter.com/schellsan
>>>
>>> _______________________________________________
>>> iPhone mailing list
>>> iPhone at haskell.org
>>> http://www.haskell.org/mailman/listinfo/iphone
>>>
>>>
>>
>
>
> --
> Schell Scivally
> http://blog.efnx.com
> http://github.com/schell
> http://twitter.com/schellsan
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/iphone/attachments/20131223/00b77751/attachment-0001.html>


More information about the iPhone mailing list