X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fdocs%2Fusers_guide%2Fphases.xml;h=fd034a305afc5dbdf30734b9b8a2775df0de8ea6;hb=51ab82d2c77dbb12fb6d92cfcf6ee30c5a543997;hp=3203db2b44a8b73f8542edd04f9dd9dfd13cb64f;hpb=c0233dc7d12654001595e9c3d5354ced415987bc;p=ghc-hetmet.git diff --git a/ghc/docs/users_guide/phases.xml b/ghc/docs/users_guide/phases.xml index 3203db2..fd034a3 100644 --- a/ghc/docs/users_guide/phases.xml +++ b/ghc/docs/users_guide/phases.xml @@ -387,7 +387,7 @@ $ cat foo.hspp - os_OS=1 + os_HOST_OS=1 This define allows conditional compilation based on @@ -400,7 +400,7 @@ $ cat foo.hspp - arch_ARCH=1 + arch_HOST_ARCH=1 This define allows conditional compilation based on @@ -559,6 +559,38 @@ $ cat foo.hspp dumps of the intermediate compilation phases. + + + + + + + + Generate position-independent code (code that can be put into + shared libraries). This currently works on Mac OS X; it works on + PowerPC Linux when using the native code generator (-fasm). + It is not quite ready to be used yet for x86 Linux. + On Windows, position-independent code is never used, + and on PowerPC64 Linux, position-independent code is always used, + so the flag is a no-op on those platforms. + + + + + + + + + When generating code, assume that entities imported from a + different package will reside in a different shared library or + binary. This currently works on Mac OS X; it works on PowerPC Linux when + using the native code generator. As with , + x86 Linux support is not quite ready yet. Windows is not supported, + and it is a no-op on PowerPC64 Linux. + Note that this option also causes GHC to use shared libraries + when linking. + + @@ -717,9 +749,11 @@ $ cat foo.hspp Tell the linker to use shared Haskell libraries, if - available (this option is only supported on Windows at the + available (this option is only supported on Mac OS X at the moment, and also note that your distribution of GHC may not have been supplied with shared libraries). + Note that this option also has an effect on + code generation (see above). @@ -741,7 +775,15 @@ $ cat foo.hspp Strictly speaking, is not a link-phase flag at all; it has no effect on the link step. The flag must be specified when compiling the module containing the specified main function (e.g. module A - in the latter two items above. It has no effect for other modules (and hence can safely be given to ghc --make). + in the latter two items above). It has no effect for other modules, + and hence can safely be given to ghc --make. + However, if all the modules are otherwise up to date, you may need to force + recompilation both of the module where the new "main" is, and of the + module where the "main" function used to be; + ghc is not clever + enough to figure out that they both need recompiling. You can + force recompilation by removing the object file, or by using the + flag.