<p dir="ltr"><br>
On May 19, 2013 6:31 AM, "Peter Collingbourne" <<a href="mailto:peter@pcc.me.uk">peter@pcc.me.uk</a>> wrote:<br>
><br>
> On Fri, May 17, 2013 at 11:57:24PM -0000, David Blaikie wrote:<br>
> > Author: dblaikie<br>
> > Date: Fri May 17 18:57:24 2013<br>
> > New Revision: 182177<br>
> ><br>
> > URL: <a href="http://llvm.org/viewvc/llvm-project?rev=182177&view=rev">http://llvm.org/viewvc/llvm-project?rev=182177&view=rev</a><br>
> > Log:<br>
> > Fix the UBSan CMake build broken in r182118<br>
> ><br>
> > Modified:<br>
> >     compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt<br>
> ><br>
> > Modified: compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt<br>
> > URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt?rev=182177&r1=182176&r2=182177&view=diff">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt?rev=182177&r1=182176&r2=182177&view=diff</a><br>

> > ==============================================================================<br>
> > --- compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt (original)<br>
> > +++ compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt Fri May 17 18:57:24 2013<br>
> > @@ -83,7 +83,9 @@ else()<br>
> >      add_compiler_rt_object_library(RTSanitizerCommonLibc ${arch}<br>
> >        SOURCES ${SANITIZER_LIBCDEP_SOURCES} CFLAGS ${SANITIZER_CFLAGS})<br>
> >      add_compiler_rt_static_runtime(clang_rt.san-${arch} ${arch}<br>
> > -      SOURCES ${SANITIZER_SOURCES} CFLAGS ${SANITIZER_CFLAGS})<br>
> > +      SOURCES ${SANITIZER_SOURCES}<br>
> > +      $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}> CFLAGS<br>
> > +      ${SANITIZER_CFLAGS})<br>
><br>
> So it looks like we're building most of sanitizer_common's<br>
> objects twice here.  Is there any reason why we shouldn't use<br>
> RTSanitizerCommon's objects when building clang_rt.san?</p>
<p dir="ltr">My very limited understanding is that this is using the objects (target_objects) rather than the source, but I admit I haven't spent much/any time understanding the cmake build system or our use of it (& had some help from Richard smith with this change).</p>

<p dir="ltr">If you have better ideas/understanding about how to do this, I'm happy to defer to that.</p>
<p dir="ltr">><br>
> Thanks,<br>
> --<br>
> Peter<br>
</p>