[scudo] Use gc-sections by default
authorKostya Kortchinsky <kostyak@google.com>
Tue, 6 Mar 2018 20:13:37 +0000 (20:13 +0000)
committerKostya Kortchinsky <kostyak@google.com>
Tue, 6 Mar 2018 20:13:37 +0000 (20:13 +0000)
commit7dc51375811299e1f37b82703e6c54e8361c91a5
tree890d1aeea34be446e4037ade1edfc94cbd0ab7a2
parent80d3bb3b4be2cc0d3ad25530a83c94ae9c5d1ba7
[scudo] Use gc-sections by default

Summary:
If not using `-Wl,--gc-sections`, a whole lot of unused `sanitizer_common` code
and related static variables are pulled into the shared library.
Keep the binary size smaller, and its memory footprint smaller as well, by
using the compiler flags `-ffunction-section` & `-fdata-sections` by default,
as well as the linker flags `-Wl,--gc-sections`.

Current experiments show a large discrepency between binary sizes generated
by gcc (big) and clang (small). I am not sure yet how I can make a test that
would encompass both, so it's an outstanding work item.

Reviewers: alekseyshl, flowerhack

Reviewed By: alekseyshl

Subscribers: mgorny, delcypher, llvm-commits, #sanitizers

Differential Revision: https://reviews.llvm.org/D44121

llvm-svn: 326833
compiler-rt/lib/scudo/CMakeLists.txt