Rework how iOS does linking (#8127)
authorAustin Seipp <aseipp@pobox.com>
Wed, 28 Aug 2013 21:55:42 +0000 (16:55 -0500)
committerAustin Seipp <aseipp@pobox.com>
Wed, 28 Aug 2013 22:39:53 +0000 (17:39 -0500)
commit98b0d05de35bd531102d832f3108050549fd781f
tree307fa9d21df370194e4b5308bc5ec6c90513d53c
parent4652a5d2be0d6c49ab2bc311ccec766d08887122
Rework how iOS does linking (#8127)

iOS has some particular constraints about how applications can be built:

 * We must generate a static library (.a) since XCode does the final
   link.
 * We need to carefully give the right set of arguments to libtool in
   the case we're generating an archive.
 * Dynamic linking isn't supported.
 * It can only be done on OS X.

This patch cleans up all of the above. We add a new flag `-staticlib`
(only supported on Darwin) that allows us to produce archive files using
libtool, and a -pgmlibtool flag to control which 'libtool' executable to
use.

This fixes #8127. I believe this is the last piece missing from the iOS
cross compiler.

Authored-by: Luke Iannini <lukexi@me.com>
Authored-by: Maxwell Swadling <maxwellswadling@gmail.com>
Authored-by: Stephen Blackheath <...@blacksapphire.com>
Signed-off-by: Austin Seipp <aseipp@pobox.com>
aclocal.m4
compiler/main/DriverPipeline.hs
compiler/main/DynFlags.hs
compiler/main/GhcMake.hs
compiler/main/Packages.lhs
compiler/main/SysTools.lhs
docs/users_guide/flags.xml
docs/users_guide/phases.xml
settings.in