From: Simon Marlow Date: Wed, 22 Aug 2007 08:40:26 +0000 (+0000) Subject: Doc for new manifest-related flags X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=93a74b86d201bf0ee3233e993e88eb80c2d97f68;p=ghc-hetmet.git Doc for new manifest-related flags --- diff --git a/docs/users_guide/flags.xml b/docs/users_guide/flags.xml index f185fb2..7c21a73 100644 --- a/docs/users_guide/flags.xml +++ b/docs/users_guide/flags.xml @@ -1682,6 +1682,18 @@ static - + + + Do not generate a manifest file (Windows only) + dynamic + - + + + + Do not embed the manifest in the executable (Windows only) + dynamic + - + @@ -1759,6 +1771,13 @@ dynamic - + + cmd + Use cmd as the program for + embedding manifests on Windows. + dynamic + - + @@ -1844,6 +1863,12 @@ dynamic - + + option + pass option to windres. + dynamic + - + diff --git a/docs/users_guide/phases.xml b/docs/users_guide/phases.xml index 3ac9ef2..a141352 100644 --- a/docs/users_guide/phases.xml +++ b/docs/users_guide/phases.xml @@ -113,7 +113,19 @@ - + + + cmd + + + + Use cmd as the + program to use for embedding manifests on Windows. Normally this + is the program windres, which is supplied with a + GHC installation. See in . + + @@ -210,6 +222,18 @@ dependency generator. + + + option + + + + Pass option to + windres when embedding manifests on Windows. + See in . + + So, for example, to force an @@ -944,6 +968,72 @@ $ cat foo.hspp url="../libraries/base/Control.Concurrent.html">Control.Concurrent module. + + + + + + + + + On Windows, GHC normally generates a + manifestmanifest + file when linking a binary. The + manifest is placed in the file + prog.exe.manifest + where prog.exe is the name of the + executable. The manifest file currently serves just one purpose: + it disables the "installer detection"installer detection + in Windows Vista that + attempts to elevate privileges for executables with certain names + (e.g. names containing "install", "setup" or "patch"). Without the + manifest file to turn off installer detection, attempting to run an + executable that Windows deems to be an installer will return a + permission error code to the invoker. Depending on the invoker, + the result might be a dialog box asking the user for elevated + permissions, or it might simply be a permission denied + error. + + Installer detection can be also turned off globally for the + system using the security control panel, but GHC by default + generates binaries that don't depend on the user having disabled + installer detection. + + The disables generation of + the manifest file. One reason to do this would be if you had + a manifest file of your own, for example. + + In the future, GHC might use the manifest file for more things, + such as supplying the location of dependent DLLs. + + also implies + , see below. + + + + + + + + + + + The manifest file that GHC generates when linking a binary on + Windows is also embedded in the executable itself, by default. + This means that the binary can be distributed without having to + supply the manifest file too. The embedding is done by running + windreswindres + ; to see exactly what GHC does to embed the manifest, + use the flag. A GHC installation comes with + its own copy of windres for this reason. + + See also () and + (). + +