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
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
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@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
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@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@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@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
> 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@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@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@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@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@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@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@haskell.org http://www.haskell.org/mailman/listinfo/iphone
-- Schell Scivally http://blog.efnx.com http://github.com/schell http://twitter.com/schellsan