On Fri, 2008-09-12 at 18:35 +0100, Andrew Coppin wrote: > 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?
Correct. Finding the right option is left as a Google-enabled exercise for the reader. jcc _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe