X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=docs%2Fusers_guide%2Fphases.xml;h=4afd68027475f6d639f496445f6e2fc64e875bb0;hp=a141352eb7c0907b24a8dff7139eb6b2cafc9e1c;hb=3454afa0f32053cf4b06e25f93c36c0612a9d944;hpb=93a74b86d201bf0ee3233e993e88eb80c2d97f68 diff --git a/docs/users_guide/phases.xml b/docs/users_guide/phases.xml index a141352..4afd680 100644 --- a/docs/users_guide/phases.xml +++ b/docs/users_guide/phases.xml @@ -133,7 +133,7 @@ Forcing options to a particular phase forcing GHC-phase options - Options can be forced through to a particlar compilation + Options can be forced through to a particular compilation phase, using the following flags: @@ -412,7 +412,7 @@ $ cat foo.hspp This symbol is defined when pre-processing Haskell (input) and pre-processing C (GHC output). Since GHC from - verion 4.00 now supports concurrent haskell by default, + version 4.00 now supports concurrent haskell by default, this symbol is always defined. @@ -668,10 +668,7 @@ $ cat foo.hspp 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. + binary. Note that this option also causes GHC to use shared libraries when linking. @@ -838,10 +835,10 @@ $ cat foo.hspp - Tell the linker to use shared Haskell libraries, if - 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). + This flag switches to shared Haskell libraries for + linking. See on how to + create them. + Note that this option also has an effect on code generation (see above). @@ -849,6 +846,36 @@ $ cat foo.hspp + + + + + Instead of creating an executable, GHC produces a + shared object with this linker flag. Depending on the + operating system target, this might be an ELF DSO, a Windows + DLL, or a Mac OS dylib. GHC hides the operating system + details beneath this uniform flag. + + The flags / control whether the + resulting shared object links statically or dynamically to + Haskell package libraries given as option. Non-Haskell + libraries are linked as gcc would regularly link it on your + system, e.g. on most ELF system the linker uses the dynamic + libraries when found. + + Object files linked into shared objects must be + compiled with , see + + When creating shared objects for Haskell packages, the + shared object must be named properly, so that GHC recognizes + the shared object when linked against this package. See + shared object name mangling. + + + + + + specifying your own main function @@ -965,7 +992,7 @@ $ cat foo.hspp More details on the use of "bound threads" in the threaded runtime can be found in the Control.Concurrent module. + url="../libraries/base/Control-Concurrent.html">Control.Concurrent module.