r177605 - Split ubsan runtime into three pieces (clang part):

Richard Smith richard at metafoo.co.uk
Thu Mar 21 15:22:02 PDT 2013


On Thu, Mar 21, 2013 at 2:31 AM, Jean-Daniel Dupas
<devlists at shadowlab.org>wrote:

>
> Le 21 mars 2013 à 00:49, Richard Smith <richard-llvm at metafoo.co.uk> a
> écrit :
>
> > Author: rsmith
> > Date: Wed Mar 20 18:49:07 2013
> > New Revision: 177605
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=177605&view=rev
> > Log:
> > Split ubsan runtime into three pieces (clang part):
> > * libclang_rt-san-* is sanitizer_common, and is linked in only if no
> other
> >   sanitizer runtime is present.
> > * libclang_rt-ubsan-* is the piece of the runtime which doesn't depend on
> >   a C++ ABI library, and is always linked in.
> > * libclang_rt-ubsan_cxx-* is the piece of the runtime which depends on a
> >   C++ ABI library, and is only linked in when linking a C++ binary.
> >
> > This change also switches us to using -whole-archive for the ubsan
> runtime
> > (which is made possible by the above split), and switches us to only
> linking
> > the sanitizer runtime into the main binary and not into DSOs (which is
> made
> > possible by using -whole-archive).
> >
> > The motivation for this is to only link a single copy of sanitizer_common
> > into any binary. This is becoming important now because we want to share
> > more state between multiple sanitizers in the same process (for instance,
> > we want a single shared output mutex).
> >
> > The Darwin ubsan runtime is unchanged; because we use a DSO there, we
> don't
> > need this complexity.
> >
>
> AFAIK, while Darwin uses DSO for asan, I still uses static library for
> ubsan, except if it has changed recently.
>

Hmm, you're correct, but I think we're OK there because we use a DSO for
asan.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130321/35407779/attachment.html>


More information about the cfe-commits mailing list