I fixed my earlier problems with compiling primitive and vector by re-compiling ghc-iphone HEAD. It seems now that I can use arm/i386-apple-darwin10/11-cabal to build a static lib, but when I try to link it in my Xcode project I get ld warnings: 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 (i386): /Users/schell/Code/blocks-ios/Blocks/dist-arm/build/Blocks/Blocks.a I get one of those for each architecture being built (armv7, armv7s, arm64, i386). Here are some details on my setup: https://gist.github.com/schell/f3a737171ce2f6b1119c Any help would be much appreciated! :) -- Schell Scivally http://blog.efnx.com http://github.com/schell http://twitter.com/schellsan
A warning isn't an error. Was there an error or did things work ? On Friday, December 20, 2013, Schell Scivally wrote:
I fixed my earlier problems with compiling primitive and vector by re-compiling ghc-iphone HEAD. It seems now that I can use arm/i386-apple-darwin10/11-cabal to build a static lib, but when I try to link it in my Xcode project I get ld warnings:
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 (i386): /Users/schell/Code/blocks-ios/Blocks/dist-arm/build/Blocks/Blocks.a
I get one of those for each architecture being built (armv7, armv7s, arm64, i386). Here are some details on my setup: https://gist.github.com/schell/f3a737171ce2f6b1119c
Any help would be much appreciated! :) -- Schell Scivally http://blog.efnx.com http://github.com/schell http://twitter.com/schellsan
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/dist-i386/build/Blocks/Blocks.a, file was built for archive which is not the architecture being linked (armv7): /Users/schell/Code/blocks-ios/Blocks/dist-i386/build/Blocks/Blocks.a Undefined symbols for architecture armv7: "_main", referenced from: implicit entry/start for main executable (maybe you meant: _c_main) ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation) On Fri, Dec 20, 2013 at 3:05 PM, Carter Schonwald < carter.schonwald@gmail.com> wrote:
A warning isn't an error. Was there an error or did things work ?
On Friday, December 20, 2013, Schell Scivally wrote:
I fixed my earlier problems with compiling primitive and vector by re-compiling ghc-iphone HEAD. It seems now that I can use arm/i386-apple-darwin10/11-cabal to build a static lib, but when I try to link it in my Xcode project I get ld warnings:
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 (i386): /Users/schell/Code/blocks-ios/Blocks/dist-arm/build/Blocks/Blocks.a
I get one of those for each architecture being built (armv7, armv7s, arm64, i386). Here are some details on my setup: https://gist.github.com/schell/f3a737171ce2f6b1119c
Any help would be much appreciated! :) -- 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
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
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/dist-i386/build/Blocks/Blocks.a, file was built for archive which is not the architecture being linked (armv7): /Users/schell/Code/blocks-ios/Blocks/dist-i386/build/Blocks/Blocks.a
Undefined symbols for architecture armv7:
"_main", referenced from:
implicit entry/start for main executable
(maybe you meant: _c_main)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
On Fri, Dec 20, 2013 at 3:05 PM, Carter Schonwald
wrote: A warning isn't an error. Was there an error or did things work ? On Friday, December 20, 2013, Schell Scivally wrote: I fixed my earlier problems with compiling primitive and vector by re-compiling ghc-iphone HEAD. It seems now that I can use arm/i386-apple-darwin10/11-cabal to build a static lib, but when I try to link it in my Xcode project I get ld warnings: 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 (i386): /Users/schell/Code/blocks-ios/Blocks/dist-arm/build/Blocks/Blocks.a
I get one of those for each architecture being built (armv7, armv7s, arm64, i386). Here are some details on my setup: https://gist.github.com/schell/f3a737171ce2f6b1119c Any help would be much appreciated! :)
-- 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@haskell.org http://www.haskell.org/mailman/listinfo/iphone
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/iOS as 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 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 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/dist-i386/build/Blocks/Blocks.a, file
was built for archive which is not the architecture being linked (armv7):
/Users/schell/Code/blocks-ios/Blocks/dist-i386/build/Blocks/Blocks.a Undefined symbols for architecture armv7: "_main", referenced from: implicit entry/start for main executable (maybe you meant: _c_main) ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see
invocation) On Fri, Dec 20, 2013 at 3:05 PM, Carter Schonwald <
carter.schonwald@gmail.com> wrote: A warning isn't an error. Was there an error or did things work ? On Friday, December 20, 2013, Schell Scivally wrote: I fixed my earlier problems with compiling primitive and vector by
re-compiling ghc-iphone HEAD. It seems now that I can use
arm/i386-apple-darwin10/11-cabal to build a static lib, but when I try to
link it in my Xcode project I get ld warnings: 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 (i386):
/Users/schell/Code/blocks-ios/Blocks/dist-arm/build/Blocks/Blocks.a I get one of those for each architecture being built (armv7, armv7s,
arm64, i386). Here are some details on my setup:
https://gist.github.com/schell/f3a737171ce2f6b1119c Any help would be much appreciated! :)
--
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@haskell.org
http://www.haskell.org/mailman/listinfo/iphone --
Schell Scivally
http://blog.efnx.com
http://github.com/schell
http://twitter.com/schellsan
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/97304 and 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
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/iOS as 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
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/dist-i386/build/Blocks/Blocks.a, file was built for archive which is not the architecture being linked (armv7): /Users/schell/Code/blocks-ios/Blocks/dist-i386/build/Blocks/Blocks.a
Undefined symbols for architecture armv7:
"_main", referenced from:
implicit entry/start for main executable
(maybe you meant: _c_main)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
On Fri, Dec 20, 2013 at 3:05 PM, Carter Schonwald < carter.schonwald@gmail.com> wrote:
A warning isn't an error. Was there an error or did things work ?
On Friday, December 20, 2013, Schell Scivally wrote:
I fixed my earlier problems with compiling primitive and vector by re-compiling ghc-iphone HEAD. It seems now that I can use arm/i386-apple-darwin10/11-cabal to build a static lib, but when I try to link it in my Xcode project I get ld warnings:
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 (i386): /Users/schell/Code/blocks-ios/Blocks/dist-arm/build/Blocks/Blocks.a
I get one of those for each architecture being built (armv7, armv7s, arm64, i386). Here are some details on my setup: https://gist.github.com/schell/f3a737171ce2f6b1119c
Any help would be much appreciated! :) -- 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@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
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
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/97304 and 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
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/iOS as 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
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/dist-i386/build/Blocks/Blocks.a, file was built for archive which is not the architecture being linked (armv7): /Users/schell/Code/blocks-ios/Blocks/dist-i386/build/Blocks/Blocks.a
Undefined symbols for architecture armv7:
"_main", referenced from:
implicit entry/start for main executable
(maybe you meant: _c_main)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
On Fri, Dec 20, 2013 at 3:05 PM, Carter Schonwald < carter.schonwald@gmail.com> wrote:
A warning isn't an error. Was there an error or did things work ?
On Friday, December 20, 2013, Schell Scivally wrote:
I fixed my earlier problems with compiling primitive and vector by re-compiling ghc-iphone HEAD. It seems now that I can use arm/i386-apple-darwin10/11-cabal to build a static lib, but when I try to link it in my Xcode project I get ld warnings:
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 (i386): /Users/schell/Code/blocks-ios/Blocks/dist-arm/build/Blocks/Blocks.a
I get one of those for each architecture being built (armv7, armv7s, arm64, i386). Here are some details on my setup: https://gist.github.com/schell/f3a737171ce2f6b1119c
Any help would be much appreciated! :) -- 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@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
-- Schell Scivally http://blog.efnx.com http://github.com/schell http://twitter.com/schellsan
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
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/97304 and 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
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/iOS as 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
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
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
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
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/97304 and 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
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/iOS as 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
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
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
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 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 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 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/97304 and 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 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/iOS as
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 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
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
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
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
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
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/97304 and 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
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/iOS as 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
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
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
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 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 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 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 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/97304 and 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 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/iOS as
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 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
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
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
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/97304 and 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
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/iOS as 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
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
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 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 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 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/97304 and
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/iOS as
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 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
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
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
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/97304 and 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/iOS as 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
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
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 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 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 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 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 --
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
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
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
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
>> 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
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
participants (4)
-
Carter Schonwald -
Luke Iannini -
Maxwell Swadling -
Schell Scivally