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

Schell Scivally efsubenovex at gmail.com
Thu Jan 2 19:41:22 UTC 2014


I'm back at it after the holidays. I hope you all had a great New Years eve
and day! I got my program up and running with only one warning, which
doesn't seem like a big deal:

    (Apple Mach-O Linker Warning): PIE disabled. Absolute addressing
(perhaps -mdynamic-no-pic) not allowed in code signed PIE, but used in
_s3rt_info from /Users/schell/Code/blocks-ios/Blocks/src/Main.a(Main.o). To
fix this warning, don't compile with -mdynamic-no-pic or link with
-Wl,-no_pie

I just wanted to say thanks for your help!


On Mon, Dec 23, 2013 at 4:14 PM, Luke Iannini <lukexipd at gmail.com> wrote:

> 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
>>
>
>


-- 
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/20140102/81999c32/attachment.html>


More information about the iPhone mailing list