Skip to content

Executables in the Linux binaries are not stripped

The executables inside the GHC binary tarball seem to come with debug information. Stripping it noticeably reduces the binary sizes:

$ file /path/to/ghc-7.8.2/lib/ghc-7.8.2/bin/ghc
/path/to/ghc-7.8.2/lib/ghc-7.8.2/bin/ghc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x6012a4c86cd3f410ca0e59ab4ac872ce740d03c6, not stripped

$ du -sh /path/to/ghc-7.8.2/lib/ghc-7.8.2/bin/ghc
1,4M	/path/to/ghc-7.8.2/lib/ghc-7.8.2/bin/ghc

$ strip -s /path/to/ghc-7.8.2/lib/ghc-7.8.2/bin/ghc

$ du -sh /path/to/ghc-7.8.2/lib/ghc-7.8.2/bin/ghc
1021K	/path/to/ghc-7.8.2/lib/ghc-7.8.2/bin/ghc

$ du -sh /path/to/ghc-7.8.2/lib/ghc-7.8.2/bin/haddock
3,2M	/path/to/ghc-7.8.2/lib/ghc-7.8.2/bin/haddock

$ strip -s /path/to/ghc-7.8.2/lib/ghc-7.8.2/bin/haddock

$ du -sh /path/to/ghc-7.8.2/lib/ghc-7.8.2/bin/haddock
2,3M	/path/to/ghc-7.8.2/lib/ghc-7.8.2/bin/haddock

Do we really need to include the debug info for exes?

Edited by Thomas Miedema
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information