<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Apr 12, 2015 at 12:22 AM, Hans Wennborg <span dir="ltr"><<a href="mailto:hans@chromium.org" target="_blank">hans@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">+samsonov who did the Clang part in r233860<br>
<br>
We only do one compiler-rt build, and that is used for both asan and<br>
regular builds, so it needs to work with both.<br>
<br>
Nico: I assume parts of compiler-rt get linked into the target<br>
binaries, i.e. it's not just used for asan, right?<br></blockquote><div><br></div><div>Yes:</div><div><br></div><div>$ clang test.c -v<br></div><div># ...</div><div>"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" ... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib/darwin/libclang_rt.osx.a<br></div><div><br></div><div>Since the commit description didn't say anything about intentionally dropping support for 10.6, I think it's ok to revert this for now.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class=""><div class="h5"><br>
On Fri, Apr 10, 2015 at 10:17 AM, Alexander Potapenko <<a href="mailto:glider@google.com">glider@google.com</a>> wrote:<br>
> I don't think we really need to require libc++ for ASan, but note that<br>
> ASan itself already requires 10.7.<br>
> Perhaps we should bump the target OS version in Chromium for asan==1?<br>
> (IIRC we don't have 10.6 machines on CF or bots)<br>
><br>
> On Fri, Apr 10, 2015 at 3:07 AM, Hans Wennborg <<a href="mailto:hans@chromium.org">hans@chromium.org</a>> wrote:<br>
>> This seems to have broken Chromium's ASan build on Darwin, where we<br>
>> target Mac OS X 10.6 which IIUC doesn't have libc++.<br>
>><br>
>> Is libc++ now a hard requirement of the ASan run-time?<br>
>><br>
>> On Wed, Mar 25, 2015 at 2:07 PM, Kuba Brecka <<a href="mailto:kuba.brecka@gmail.com">kuba.brecka@gmail.com</a>> wrote:<br>
>>> Author: kuba.brecka<br>
>>> Date: Wed Mar 25 16:07:20 2015<br>
>>> New Revision: 233215<br>
>>><br>
>>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=233215&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=233215&view=rev</a><br>
>>> Log:<br>
>>> On OS X, explicitly use libc++<br>
>>><br>
>>> For OS X builds, both Make and CMake, let's be very explicit about using<br>
>>> libc++ and libc++abi with:<br>
>>><br>
>>> 1) -stdlib=libc++ in CFLAGS and LDFLAGS for all platforms<br>
>>> 2) -lc++ in LDFLAGS for all platforms<br>
>>> 3) switch from -undefined dynamic_lookup to -lc++abi for UBSan in<br>
>>>    Makefile-based builds<br>
>>><br>
>>> Reviewed at <a href="http://reviews.llvm.org/D8617" target="_blank">http://reviews.llvm.org/D8617</a><br>
>>><br>
>>><br>
>>> Modified:<br>
>>>     compiler-rt/trunk/CMakeLists.txt<br>
>>>     compiler-rt/trunk/make/platform/<a href="http://clang_darwin.mk" target="_blank">clang_darwin.mk</a><br>
>>><br>
>>> Modified: compiler-rt/trunk/CMakeLists.txt<br>
>>> URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/CMakeLists.txt?rev=233215&r1=233214&r2=233215&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/CMakeLists.txt?rev=233215&r1=233214&r2=233215&view=diff</a><br>
>>> ==============================================================================<br>
>>> --- compiler-rt/trunk/CMakeLists.txt (original)<br>
>>> +++ compiler-rt/trunk/CMakeLists.txt Wed Mar 25 16:07:20 2015<br>
>>> @@ -302,10 +302,12 @@ if(APPLE)<br>
>>>    set(DARWIN_osx_CFLAGS -mmacosx-version-min=${SANITIZER_MIN_OSX_VERSION}<br>
>>>      -stdlib=libc++)<br>
>>>    set(DARWIN_iossim_CFLAGS<br>
>>> +    -stdlib=libc++<br>
>>>      -mios-simulator-version-min=7.0 -isysroot ${IOSSIM_SDK_DIR})<br>
>>>    set(DARWIN_osx_LINKFLAGS -mmacosx-version-min=${SANITIZER_MIN_OSX_VERSION}<br>
>>> -     -stdlib=libc++)<br>
>>> +    -stdlib=libc++ -lc++)<br>
>>>    set(DARWIN_iossim_LINKFLAGS<br>
>>> +    -stdlib=libc++ -lc++<br>
>>>      -Wl,-ios_simulator_version_min,7.0.0<br>
>>>      -mios-simulator-version-min=7.0<br>
>>>      -isysroot ${IOSSIM_SDK_DIR})<br>
>>><br>
>>> Modified: compiler-rt/trunk/make/platform/<a href="http://clang_darwin.mk" target="_blank">clang_darwin.mk</a><br>
>>> URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/make/platform/clang_darwin.mk?rev=233215&r1=233214&r2=233215&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/make/platform/clang_darwin.mk?rev=233215&r1=233214&r2=233215&view=diff</a><br>
>>> ==============================================================================<br>
>>> --- compiler-rt/trunk/make/platform/<a href="http://clang_darwin.mk" target="_blank">clang_darwin.mk</a> (original)<br>
>>> +++ compiler-rt/trunk/make/platform/<a href="http://clang_darwin.mk" target="_blank">clang_darwin.mk</a> Wed Mar 25 16:07:20 2015<br>
>>> @@ -178,29 +178,27 @@ CFLAGS.10.4               := $(CFLAGS) $(OSX_DEPLOYME<br>
>>>  SANITIZER_MACOSX_DEPLOYMENT_ARGS := -mmacosx-version-min=10.7<br>
>>>  SANITIZER_IOSSIM_DEPLOYMENT_ARGS := -mios-simulator-version-min=7.0 \<br>
>>>    -isysroot $(IOSSIM_SDK)<br>
>>> -SANITIZER_CFLAGS := -fno-builtin -gline-tables-only<br>
>>> +SANITIZER_CFLAGS := -fno-builtin -gline-tables-only -stdlib=libc++<br>
>>><br>
>>>  CFLAGS.asan_osx_dynamic := \<br>
>>>         $(CFLAGS) $(SANITIZER_MACOSX_DEPLOYMENT_ARGS) \<br>
>>>         $(SANITIZER_CFLAGS) \<br>
>>> -       -stdlib=libc++ \<br>
>>>         -DMAC_INTERPOSE_FUNCTIONS=1 \<br>
>>>         -DASAN_DYNAMIC=1<br>
>>><br>
>>>  CFLAGS.asan_iossim_dynamic := \<br>
>>>         $(CFLAGS) $(SANITIZER_IOSSIM_DEPLOYMENT_ARGS) \<br>
>>> -  $(SANITIZER_CFLAGS) \<br>
>>> +       $(SANITIZER_CFLAGS) \<br>
>>>         -DMAC_INTERPOSE_FUNCTIONS=1 \<br>
>>>         -DASAN_DYNAMIC=1<br>
>>><br>
>>>  CFLAGS.ubsan_osx_dynamic := \<br>
>>>         $(CFLAGS) $(SANITIZER_MACOSX_DEPLOYMENT_ARGS) \<br>
>>> -       $(SANITIZER_CFLAGS) \<br>
>>> -       -stdlib=libc++<br>
>>> +       $(SANITIZER_CFLAGS)<br>
>>><br>
>>>  CFLAGS.ubsan_iossim_dynamic := \<br>
>>>         $(CFLAGS) $(SANITIZER_IOSSIM_DEPLOYMENT_ARGS) \<br>
>>> -  $(SANITIZER_CFLAGS)<br>
>>> +       $(SANITIZER_CFLAGS)<br>
>>><br>
>>><br>
>>>  CFLAGS.ios.i386                := $(CFLAGS) $(IOSSIM_DEPLOYMENT_ARGS)<br>
>>> @@ -232,10 +230,10 @@ CFLAGS.profile_ios.armv7k := $(CFLAGS) $<br>
>>>  CFLAGS.profile_ios.armv7s := $(CFLAGS) $(IOS_DEPLOYMENT_ARGS)<br>
>>>  CFLAGS.profile_ios.arm64  := $(CFLAGS) $(IOS6_DEPLOYMENT_ARGS)<br>
>>><br>
>>> -SANITIZER_LDFLAGS := -undefined dynamic_lookup<br>
>>> +SANITIZER_LDFLAGS := -stdlib=libc++ -lc++<br>
>>><br>
>>>  SHARED_LIBRARY.asan_osx_dynamic := 1<br>
>>> -LDFLAGS.asan_osx_dynamic := -lc++ $(SANITIZER_LDFLAGS) -install_name @rpath/libclang_rt.asan_osx_dynamic.dylib \<br>
>>> +LDFLAGS.asan_osx_dynamic := $(SANITIZER_LDFLAGS) -install_name @rpath/libclang_rt.asan_osx_dynamic.dylib \<br>
>>>    $(SANITIZER_MACOSX_DEPLOYMENT_ARGS)<br>
>>><br>
>>>  SHARED_LIBRARY.asan_iossim_dynamic := 1<br>
>>> @@ -243,11 +241,11 @@ LDFLAGS.asan_iossim_dynamic := $(SANITIZ<br>
>>>    -Wl,-ios_simulator_version_min,7.0.0 $(SANITIZER_IOSSIM_DEPLOYMENT_ARGS)<br>
>>><br>
>>>  SHARED_LIBRARY.ubsan_osx_dynamic := 1<br>
>>> -LDFLAGS.ubsan_osx_dynamic := -lc++ $(SANITIZER_LDFLAGS) -install_name @rpath/libclang_rt.ubsan_osx_dynamic.dylib \<br>
>>> +LDFLAGS.ubsan_osx_dynamic := $(SANITIZER_LDFLAGS) -lc++abi -install_name @rpath/libclang_rt.ubsan_osx_dynamic.dylib \<br>
>>>    $(SANITIZER_MACOSX_DEPLOYMENT_ARGS)<br>
>>><br>
>>>  SHARED_LIBRARY.ubsan_iossim_dynamic := 1<br>
>>> -LDFLAGS.ubsan_iossim_dynamic := $(SANITIZER_LDFLAGS) -install_name @rpath/libclang_rt.ubsan_iossim_dynamic.dylib \<br>
>>> +LDFLAGS.ubsan_iossim_dynamic := $(SANITIZER_LDFLAGS) -lc++abi -install_name @rpath/libclang_rt.ubsan_iossim_dynamic.dylib \<br>
>>>    -Wl,-ios_simulator_version_min,7.0.0 $(SANITIZER_IOSSIM_DEPLOYMENT_ARGS)<br>
>>><br>
>>>  ifneq ($(OSX_SDK),)<br>
>>><br>
>>><br>
>>> _______________________________________________<br>
>>> llvm-commits mailing list<br>
>>> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
><br>
><br>
><br>
> --<br>
> Alexander Potapenko<br>
> Software Engineer<br>
> Google Moscow<br>
</div></div></blockquote></div><br></div></div>