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.

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

Thanks!
Richard

Attachment: no-export-dynamic.diff
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to