[Haskell-iPhone] ld: warning with HEAD

Schell Scivally efsubenovex at gmail.com
Mon Dec 23 18:03:21 UTC 2013


Awesome, thanks Luke. That was the problem with cabal. I am still running
into errors when linking the lib to my project in Xcode, but I have another
email thread corresponding to that, so I'll move the conversation over
there. Thanks again.


On Mon, Dec 23, 2013 at 2:01 AM, Luke Iannini <lukexipd at gmail.com> wrote:

> Just saw this, and can thus confirm you've indeed got the troublesome
> "jobs: $ncpus" line in there : ). I'll add some stronger wording to the
> wiki to make sure people get that removed until it's fixed on cabal's side.
>
> I also just discovered your https://github.com/schell/blocks-ios project,
> that's awesome -- that should be a fantastic demo project to get people
> started so thanks so much for working on it. Keep emailing if you have more
> trouble, I'll be sure to help as quickly as I can.
>
> Cheers
> Luke
>
>
> On Fri, Dec 20, 2013 at 10:22 PM, Schell Scivally <efsubenovex at gmail.com>wrote:
>
>> My cabal config is a vanilla config file generated by
>> arm-apple-darwin10-cabal: http://lpaste.net/97322
>>
>>
>> On Fri, Dec 20, 2013 at 8:23 PM, Maxwell Swadling <
>> maxwellswadling at gmail.com> wrote:
>>
>>> I think you need to set your "--package-db" option when using ghc-pkg
>>> the subsequently ghc.
>>>
>>> The value should be in the cabal config file.
>>>
>>> Can you post your cabal config?
>>>
>>>
>>>
>>> On Sat, Dec 21, 2013 at 3:15 PM, Schell Scivally <efsubenovex at gmail.com>wrote:
>>>
>>>> No, I'm not - I'm using arm-apple-darwin10-cabal
>>>> --config-file=path/to/arm.config install vector, which yields:
>>>>
>>>> Resolving dependencies...
>>>>
>>>> All the requested packages are already installed:
>>>>
>>>> vector-0.10.9.1
>>>>
>>>> Use --reinstall if you want to reinstall anyway.
>>>>
>>>> Though it doesn't look like it's actually installed:
>>>>
>>>> arm-apple-darwin10-ghc-pkg list
>>>>
>>>> /usr/local/lib/arm-apple-darwin10-ghc-7.7.20131217/package.conf.d
>>>>
>>>>    Cabal-1.18.1.2
>>>>
>>>>    array-0.5.0.0
>>>>
>>>>    base-4.7.0.0
>>>>
>>>>    bin-package-db-0.0.0.0
>>>>
>>>>    binary-0.7.1.0
>>>>
>>>>    bytestring-0.10.4.0
>>>>
>>>>    containers-0.5.3.1
>>>>
>>>>    deepseq-1.3.0.2
>>>>
>>>>    directory-1.2.0.2
>>>>
>>>>    filepath-1.3.0.2
>>>>
>>>>    ghc-prim-0.3.1.0
>>>>
>>>>    hoopl-3.10.0.0
>>>>
>>>>    hpc-0.6.0.1
>>>>
>>>>    integer-simple-0.1.1.0
>>>>
>>>>    old-locale-1.0.0.6
>>>>
>>>>    pretty-1.1.1.1
>>>>
>>>>    process-1.2.0.0
>>>>
>>>>    rts-1.0
>>>>
>>>>    template-haskell-2.9.0.0
>>>>
>>>>    time-1.4.1
>>>>
>>>>    transformers-0.3.0.0
>>>>
>>>>    unix-2.7.0.0
>>>>
>>>> If I don't include my arm.config file I get this:
>>>>
>>>> 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
>>>>
>>>>
>>>>
>>>>
>>>> On Fri, Dec 20, 2013 at 8:11 PM, Maxwell Swadling <
>>>> maxwellswadling at gmail.com> wrote:
>>>>
>>>>> were you using cabal sandbox? If so, delete the cabal sandbox and
>>>>> cabal install the dependencies (vector in this case is missing).
>>>>>
>>>>>
>>>>> On Sat, Dec 21, 2013 at 3:08 PM, Schell Scivally <
>>>>> efsubenovex at gmail.com> wrote:
>>>>>
>>>>>> Okay, the hsc2hs step worked and I have IOS/Touch.hs. Now the next
>>>>>> error is:
>>>>>>
>>>>>> arm-apple-darwin10-ghc -staticlib Main.hs -threaded
>>>>>>
>>>>>> IOS/Touch.hsc:6:8:
>>>>>>
>>>>>>     Could not find module 'Data.Vector.Storable'
>>>>>>
>>>>>>     Use -v to see a list of the files searched for.
>>>>>>
>>>>>>
>>>>>> Is there a way for me to manually include the Data.Vector.Storable
>>>>>> package?
>>>>>>
>>>>>>
>>>>>> On Fri, Dec 20, 2013 at 6:26 PM, Maxwell Swadling <
>>>>>> maxwellswadling at gmail.com> wrote:
>>>>>>
>>>>>>> So it doesn't know how to deal with IOS/Touch/Touch.hsc, which is
>>>>>>> one of the reasons I'm trying to use cabal, since it seems to be pretty
>>>>>>> good at running hsc2hs on that file automagically. Though ghc is supposed
>>>>>>> to work with .hsc, no?
>>>>>>>
>>>>>>> If I try to compile Touch.hsc by itself I get something interesting:
>>>>>>>
>>>>>>> arm-apple-darwin10-ghc IOS/Touch.hsc
>>>>>>>
>>>>>>> GHC doesn't!
>>>>>>>
>>>>>>> You should be able to run `hsc2hs IOS/Touch/Touch.hsc` and it will
>>>>>>> produce `IOS/Touch/Touch.hs`.
>>>>>>>
>>>>>>> You will have to add any header include paths you need (CocoaTouch
>>>>>>> ?).
>>>>>>>
>>>>>>> I would recommend a vanilla makefile to run `hsc2hs` then `ghc`.
>>>>>>>
>>>>>>> On 21/12/2013, at 1:01 PM, Schell Scivally <efsubenovex at gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Carter: Yes, I've followed the instructions on the wiki and updated
>>>>>>> Xcode's build settings.
>>>>>>> Maxwell: When I try it errors with:
>>>>>>>
>>>>>>> arm-apple-darwin10-ghc Main.hs -o Main.a
>>>>>>>
>>>>>>> Main.hs:5:8:
>>>>>>>
>>>>>>>     Could not find module 'IOS.Touch'
>>>>>>>
>>>>>>>     Use -v to see a list of the files searched for.
>>>>>>>
>>>>>>>
>>>>>>> And then following it down the rabbit hole:
>>>>>>>
>>>>>>> arm-apple-darwin10-ghc Main.hs -o Main.a -v
>>>>>>>
>>>>>>> Glasgow Haskell Compiler, Version 7.7.20131217, stage 1 booted by
>>>>>>> GHC version 7.6.3
>>>>>>>
>>>>>>> Using binary package database:
>>>>>>> /usr/local/lib/arm-apple-darwin10-ghc-7.7.20131217/package.conf.d/package.cache
>>>>>>>
>>>>>>> wired-in package ghc-prim mapped to
>>>>>>> ghc-prim-0.3.1.0-ba68fe37a0bba905324e76d7bb331c12
>>>>>>>
>>>>>>> wired-in package integer-simple mapped to
>>>>>>> integer-simple-0.1.1.0-abf1895bcd711c07e5c06ea0798b38ff
>>>>>>>
>>>>>>> wired-in package base mapped to
>>>>>>> base-4.7.0.0-725128dc24ae24a83ca24be4defe9728
>>>>>>>
>>>>>>> wired-in package rts mapped to builtin_rts
>>>>>>>
>>>>>>> wired-in package template-haskell mapped to
>>>>>>> template-haskell-2.9.0.0-dc5244f6b2a07b2bd654d776e81eb7ba
>>>>>>>
>>>>>>> wired-in package dph-seq not found.
>>>>>>>
>>>>>>> wired-in package dph-par not found.
>>>>>>>
>>>>>>> Hsc static flags:
>>>>>>>
>>>>>>> wired-in package ghc-prim mapped to
>>>>>>> ghc-prim-0.3.1.0-ba68fe37a0bba905324e76d7bb331c12
>>>>>>>
>>>>>>> wired-in package integer-simple mapped to
>>>>>>> integer-simple-0.1.1.0-abf1895bcd711c07e5c06ea0798b38ff
>>>>>>>
>>>>>>> wired-in package base mapped to
>>>>>>> base-4.7.0.0-725128dc24ae24a83ca24be4defe9728
>>>>>>>
>>>>>>> wired-in package rts mapped to builtin_rts
>>>>>>>
>>>>>>> wired-in package template-haskell mapped to
>>>>>>> template-haskell-2.9.0.0-dc5244f6b2a07b2bd654d776e81eb7ba
>>>>>>>
>>>>>>> wired-in package dph-seq not found.
>>>>>>>
>>>>>>> wired-in package dph-par not found.
>>>>>>>
>>>>>>> *** Chasing dependencies:
>>>>>>>
>>>>>>> Chasing modules from: *Main.hs
>>>>>>>
>>>>>>>
>>>>>>> Main.hs:5:8:
>>>>>>>
>>>>>>>     Could not find module 'IOS.Touch'
>>>>>>>
>>>>>>>     Locations searched:
>>>>>>>
>>>>>>>       IOS/Touch.hs
>>>>>>>
>>>>>>>       IOS/Touch.lhs
>>>>>>>
>>>>>>> *** Deleting temp files:
>>>>>>>
>>>>>>> Deleting:
>>>>>>>
>>>>>>> *** Deleting temp dirs:
>>>>>>>
>>>>>>> Deleting:
>>>>>>>
>>>>>>>
>>>>>>> So it doesn't know how to deal with IOS/Touch/Touch.hsc, which is
>>>>>>> one of the reasons I'm trying to use cabal, since it seems to be pretty
>>>>>>> good at running hsc2hs on that file automagically. Though ghc is supposed
>>>>>>> to work with .hsc, no?
>>>>>>>
>>>>>>> If I try to compile Touch.hsc by itself I get something interesting:
>>>>>>>
>>>>>>> arm-apple-darwin10-ghc IOS/Touch.hsc
>>>>>>>
>>>>>>> ld: warning: ignoring file IOS/Touch.hsc, file was built for
>>>>>>> unsupported file format ( 0x7B 0x2D 0x23 0x20 0x4C 0x41 0x4E 0x47 0x55 0x41
>>>>>>> 0x47 0x45 0x20 0x46 0x6F 0x72 ) which is not the architecture being linked
>>>>>>> (armv7): IOS/Touch.hsc
>>>>>>>
>>>>>>> Undefined symbols for architecture armv7:
>>>>>>>
>>>>>>>   "_ZCMain_main_closure", referenced from:
>>>>>>>
>>>>>>>       _main in ghc85846_2.o
>>>>>>>
>>>>>>> ld: symbol(s) not found for architecture armv7
>>>>>>>
>>>>>>> clang: error: linker command failed with exit code 1 (use -v to see
>>>>>>> invocation)
>>>>>>>
>>>>>>> ld: warning: ignoring file IOS/Touch.hsc, file was built for
>>>>>>> unsupported file format ( 0x7B 0x2D 0x23 0x20 0x4C 0x41 0x4E 0x47 0x55 0x41
>>>>>>> 0x47 0x45 0x20 0x46 0x6F 0x72 ) which is not the architecture being linked
>>>>>>> (armv7s): IOS/Touch.hsc
>>>>>>>
>>>>>>> Undefined symbols for architecture armv7s:
>>>>>>>
>>>>>>>   "_ZCMain_main_closure", referenced from:
>>>>>>>
>>>>>>>       _main in ghc85846_2.o
>>>>>>>
>>>>>>> ld: symbol(s) not found for architecture armv7s
>>>>>>>
>>>>>>> clang: error: linker command failed with exit code 1 (use -v to see
>>>>>>> invocation)
>>>>>>>
>>>>>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo:
>>>>>>> can't open input file: a-armv7.o (No such file or directory)
>>>>>>>
>>>>>>> rm: a-armv7.o: No such file or directory
>>>>>>>
>>>>>>> rm: a-armv7s.o: No such file or directory
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Dec 20, 2013 at 5:49 PM, Maxwell Swadling <
>>>>>>> maxwellswadling at gmail.com> wrote:
>>>>>>>
>>>>>>>> Can you run arm-apple-darwin10-ghc  Blocks.hs -o Blocks.a ?
>>>>>>>>
>>>>>>>> Also I'm not sure why you have a Main.a as well. You should link
>>>>>>>> the Blocks.a in Xcode. You shouldn't need two .a's.
>>>>>>>>
>>>>>>>> __END__ Maxwell Swadling
>>>>>>>>
>>>>>>>> On 21 Dec 2013, at 12:43 pm, Carter Schonwald <
>>>>>>>> carter.schonwald at gmail.com> wrote:
>>>>>>>>
>>>>>>>> Aren't there some settings that need to be manipulated in Xcode?
>>>>>>>> Like "don't run strip. Just don't"?  Are you doing that stuff?
>>>>>>>>
>>>>>>>> On Friday, December 20, 2013, Schell Scivally wrote:
>>>>>>>>
>>>>>>>>> Sorry in the last message I meant "(with the list of _warnings_
>>>>>>>>> mentioned on the wiki)".
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, Dec 20, 2013 at 5:10 PM, Schell Scivally <
>>>>>>>>> efsubenovex at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>> I'll sum up the process I'm going through. I `cd` into Blocks
>>>>>>>>> where Blocks.cabal lives, then I do a `arm-apple-darwin10-cabal
>>>>>>>>> --config-file=path/to/arm/config build`. The config file was created by
>>>>>>>>> arm-apple-darwin10-cabal the first time I ran it. The build ends in two
>>>>>>>>> different ways depending on the `ghc-options` field in the Blocks.cabal
>>>>>>>>> file. With ghc-options: -staticlib -threaded it errors (or warns, or
>>>>>>>>> outputs - as it isn't specified):
>>>>>>>>>
>>>>>>>>> Resolving dependencies...
>>>>>>>>>
>>>>>>>>> Configuring Blocks-0.1.0.0...
>>>>>>>>>
>>>>>>>>> Building Blocks-0.1.0.0...
>>>>>>>>>
>>>>>>>>> Preprocessing executable 'Blocks' for Blocks-0.1.0.0...
>>>>>>>>>
>>>>>>>>> Linking dist-arm/build/Blocks/Blocks.a ...
>>>>>>>>>
>>>>>>>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool:
>>>>>>>>> can't locate file for: -lpthread
>>>>>>>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool:
>>>>>>>>> file: -lpthread is not an object file (not allowed in a library)
>>>>>>>>>
>>>>>>>>> With ghc-options: -staticlib it looks like the build completes
>>>>>>>>> (with the list of errors mentioned on the wiki). I then have two libs,
>>>>>>>>> src/Main.a and dist-arm/build/Blocks/Blocks.a
>>>>>>>>>
>>>>>>>>> I then add either Blocks.a or Main.a to my project (or both, which
>>>>>>>>> I've also tried). Then I build for my device with command-b. Both static
>>>>>>>>> libs are ignored for each architecture and then clang ends in a linker
>>>>>>>>> error. Here is the build log from Xcode: http://lpaste.net/97304and my setup:
>>>>>>>>> https://gist.github.com/schell/f3a737171ce2f6b1119c and the
>>>>>>>>> source: https://github.com/schell/blocks-ios/
>>>>>>>>>
>>>>>>>>> Please let me know if you need more information.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, Dec 20, 2013 at 4:38 PM, Schell Scivally <
>>>>>>>>> efsubenovex at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>> Currently I'm using `arm-apple-darwin10-cabal
>>>>>>>>> --config-file=path/to/my/arm/config build
>>>>>>>>>
>>>>>>>>> The cabal file and the rest of the source can be found at
>>>>>>>>> https://github.com/schell/blocks-ios/
>>>>>>>>>
>>>>>>>>> I'm following the directions at
>>>>>>>>> https://ghc.haskell.org/trac/ghc/wiki/Building/CrossCompiling/iOSas much as possible but I don't really know how to use ghc to build all the
>>>>>>>>> files in a project (when I try it can't find the IOS.Touch module), which
>>>>>>>>> is why I'm trying to use cabal. That wiki page says nothing of using cabal
>>>>>>>>> so I'm assuming that I'm in dragon territory with most of this, so forgive
>>>>>>>>> me if I'm making some obvious mistake.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, Dec 20, 2013 at 4:27 PM, Maxwell Swadling <
>>>>>>>>> maxwellswadling at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>> How are you compiling the static library? What command are you
>>>>>>>>> using?
>>>>>>>>>
>>>>>>>>> __END__
>>>>>>>>> Maxwell Swadling
>>>>>>>>>
>>>>>>>>> On 21 Dec 2013, at 10:24 am, Schell Scivally <
>>>>>>>>> efsubenovex at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>> Carter pointed out I only mentioned the warning. ld spits out a
>>>>>>>>> warning and then the build fails in the linking phase because the static
>>>>>>>>> lib was ignored and not linked, making the main() provided by the lib
>>>>>>>>> undefined:
>>>>>>>>>
>>>>>>>>> ld: warning: ignoring file
>>>>>>>>> /Users/schell/Code/blocks-ios/Blocks/dist-arm/build/Blocks/Blocks.a, file
>>>>>>>>> was built for archive which is not the architecture being linked (armv7):
>>>>>>>>> /Users/schell/Code/blocks-ios/Blocks/dist-arm/build/Blocks/Blocks.a
>>>>>>>>>
>>>>>>>>> ld: warning: ignoring file /Users/schell/Code/blocks-ios/Blocks
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> 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
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Maxwell Swadling
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Schell Scivally
>>>> http://blog.efnx.com
>>>> http://github.com/schell
>>>> http://twitter.com/schellsan
>>>>
>>>
>>>
>>>
>>> --
>>> Maxwell Swadling
>>>
>>>
>>
>>
>> --
>> 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/db69701b/attachment-0001.html>


More information about the iPhone mailing list