[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