[Haskell-cafe] Re: Windows details
Andrew Coppin
andrewcoppin at btinternet.com
Fri Sep 12 13:35:45 EDT 2008
Jonathan Cast wrote:
> On Fri, 2008-09-12 at 18:07 +0100, Andrew Coppin wrote:
>
>> And what exactly does a "strip" mean, then?
>>
>
> Remove the symbol table. And, for C, other debugging information.
>
> Historically, I believe, on Unix the distinction between an executable
> and an object file was weaker than it is now (so, for example, a.out was
> originally the default name of an object file, back when you didn't
> always need to link in a library). So (and this is still sometimes true
> on linux) the linker's output could be used as input to the linker.
> Unix linkers still include the combined symbol table in the executables
> they generate, to allow this. But if your executable is complete, you
> don't need a symbol table, so Unix includes a program `strip' that
> removes it from an executable (or object file, if you do something
> stupid).
>
> GHC's Windows port, of course, uses a port of the Unix toolchain, so the
> above discussion (almost) completely applies. (Although I don't think
> any (static) linker actually accepts Windows PE executables as input).
>
That would certainly explain why the end of my compiled binary contains
several miles of ASCII that looks like function names then... ;-)
So if I give GHC the right options, it'll do that for me?
More information about the Haskell-Cafe
mailing list