[PATCH] Remove -export-dynamic from sanitizer link lines

Alexey Samsonov samsonov at google.com
Sun Mar 17 22:32:04 PDT 2013


Decreasing the binary size is a great goal... I think that dlopen'ing DSOs
that weren't linked with is a pretty common scenario, but it's just a
guess. Alex, does this happen in Chromium, for example?
If the workaround for users will be to manually add --export-dynamic to the
link command, we should mention it somewhere in the manual.

On Sat, Mar 16, 2013 at 5:35 AM, Richard Smith <richard at metafoo.co.uk>wrote:

> Hi,
> When linking a sanitizer runtime, we add -export-dynamic to the link
> lines. This can *dramatically* increase binary sizes (I've seen a 25%
> increase in some cases), and seems to be largely unnecessary -- the
> sanitizer symbols should be exported anyway if the linker is told about any
> DSOs which need the runtime and will be linked against the binary.
> However, this will presumably break any mostly-static binaries which don't
> link against any sanitizer-using DSOs, but do dlopen such DSOs. If we care
> about that, I think the right way to handle it would be to add a file
> containing a list of exported sanitizer symbols to compiler-rt, and pass
> that file to the linker with --dynamic-list when linking in a sanitizer.

Do you plan to generate this list when building compiler-rt and store it
next to the runtime in the resource directory?

> What do you think? Is this patch OK as-is, or do you want the more
> complete solution?
> Thanks!
> Richard

Alexey Samsonov, MSK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130318/fda96ff7/attachment.html>

More information about the cfe-commits mailing list