X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fusers_guide%2Fphases.xml;h=abe96b368162a228a9be7a577eb9e6d8c4a342a9;hb=5ee7f0e66649ef31c2fcb2528399b57eba5651db;hp=467f6adb00fe8fddb3e8fc0a7b215d64eb9f6e18;hpb=433558226790dfa88d215cf12a39df44a3ed01fd;p=ghc-hetmet.git
diff --git a/docs/users_guide/phases.xml b/docs/users_guide/phases.xml
index 467f6ad..abe96b3 100644
--- a/docs/users_guide/phases.xml
+++ b/docs/users_guide/phases.xml
@@ -543,31 +543,6 @@ $ cat foo.hspp
-
- Options affecting the C compiler (if applicable)
-
- include-file options
- C compiler options
- GCC options
-
- If you are compiling with lots of foreign calls, you may
- need to tell the C compiler about some
- #include files. The Right Way to do this is to
- add an INCLUDE pragma to the top of your source file
- ():
-
-{-# INCLUDE <X/Xlib.h> #-}
-
- Sometimes this isn't convenient. In those cases there's an
- equivalent command-line option:
-
-% ghc -c '-#include <X/Xlib.h>' Xstuff.lhs
-
-
-
-
-
-
Options affecting code generation
@@ -642,12 +617,10 @@ $ cat foo.hspp
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.
+ shared libraries). This currently works on Linux x86 and x86-64 when
+ using the native code generator (-fasm).
+ On Windows, position-independent code is never used
+ so the flag is a no-op on that platform.
@@ -659,8 +632,8 @@ $ cat foo.hspp
When generating code, assume that entities imported from a
different package will reside in a different shared library or
binary.
- Note that this option also causes GHC to use shared libraries
- when linking.
+ Note that using this option when linking causes GHC to link
+ against shared libraries.
@@ -825,8 +798,10 @@ $ cat foo.hspp
- This flag switches to shared Haskell libraries for
- linking. See on how to
+ This flag tells GHC to link against shared Haskell libraries.
+ This flag only affects the selection of dependent libraries, not
+ the form of the current target (see -shared).
+ See on how to
create them.Note that this option also has an effect on
@@ -863,6 +838,19 @@ $ cat foo.hspp
+
+
+
+
+
+
+
+ This flag selects one of a number of modes for finding shared
+ libraries at runtime. See for
+ a description of each mode.
+
+
+
@@ -976,6 +964,29 @@ $ cat foo.hspp
+
+
+
+
+
+ Link the program with the "eventlog" version of the
+ runtime system. A program linked in this way can generate
+ a runtime trace of events (such as thread start/stop) to a
+ binary file
+ program.eventlog,
+ which can then be interpreted later by various tools. See
+ for more information.
+
+
+ can be used
+ with . It is implied
+ by .
+
+
+
+
+
+
@@ -1039,6 +1050,46 @@ $ cat foo.hspp
/>).
+
+
+
+
+
+
+
+
+ DLLs on Windows are typically linked to by linking to a corresponding
+ .lib or .dll.a - the so-called import library.
+ GHC will typically generate such a file for every DLL you create by compiling in
+ -shared mode. However, sometimes you don't want to pay the
+ disk-space cost of creating this import library, which can be substantial - it
+ might require as much space as the code itself, as Haskell DLLs tend to export
+ lots of symbols.
+
+ As long as you are happy to only be able to link to the DLL using
+ GetProcAddress and friends, you can supply the
+ flag to disable the creation of the import
+ library entirely.
+
+
+
+
+
+
+
+
+
+
+ On Darwin/MacOS X, dynamic libraries are stamped at build time with an
+ "install name", which is the ultimate install path of the library file.
+ Any libraries or executables that subsequently link against it will pick
+ up that path as their runtime search location for it. By default, ghc sets
+ the install name to the location where the library is built. This option
+ allows you to override it with the specified file path. (It passes
+ -install_name to Apple's linker.) Ignored on other
+ platforms.
+
+
@@ -1046,7 +1097,6 @@ $ cat foo.hspp