
#8405: experiment with using function-sections for linking (for smaller libs and executables) -------------------------------------+------------------------------------- Reporter: carter | Owner: olsner Type: task | Status: closed Priority: normal | Milestone: 8.0.1 Component: Compiler | Version: 7.6.3 Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D1242 Wiki Page: | -------------------------------------+------------------------------------- Comment (by olsner): Replying to [comment:19 carter]:
Would this make it practical to disable stripping on libraries and executables (so that dwarf metadata could be available by default?)
I didn't know that was a problem, so if this feature fixes anything it's purely a bonus :) I suspect the debug info could get pretty large regardless of this patch, so many users might still not want it. (Though it might be improved compared to `-split-objs`?) Replying to [comment:10 refold]:
And it looks like `--gc-sections` [https://sourceware.org/git/gitweb.cgi?p=binutils- gdb.git;h=0f088b2a9417b1d4ed597849ffa671eba25f5051 is now finally supported on Windows] (though the patch still needs testing).
Since I had my system in Windows today, I decided to test this out - but ran into some problems. First problem is that linking executables with `SplitSections=YES` gets you a "too many sections" error. But when making an executable, those sections should be getting merged into just a handful of sections... I think this is `ld`'s fault, so I submitted https://sourceware.org/bugzilla/show_bug.cgi?id=19254 for it. It also seems the `--gc-sections` patch was committed after binutils 2.25 branched off, so we need to upgrade binutils to use this. (Probably to a yet-unreleased version that also has a fix for the sections issue...) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8405#comment:20 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler