r193934 - Default to use libc++ on OS X 10.9+ and iOS 7+.
Bob Wilson
bob.wilson at apple.com
Tue Feb 4 13:47:36 PST 2014
Would you like to contribute a patch to clarify that documentation? I’m not sure what you’re asking for here.
On Feb 4, 2014, at 12:20 PM, Timur Iskhodzhanov <timurrrr at google.com> wrote:
> ping?
>
> I've spent a fair amount of time debugging this yesterday.
>
> 2013-11-05 Nico Weber <thakis at chromium.org>:
>> On Tue, Nov 5, 2013 at 9:44 AM, Bob Wilson <bob.wilson at apple.com> wrote:
>>>
>>> On OS X the libc++ headers are meant to be installed along with clang. If
>>> you check out the libc++ sources in the LLVM projects directory, they should
>>> be installed in the right place.
>>
>>
>> Thanks, that makes sense. Should http://clang.llvm.org/get_started.html
>> mention checking out libc++, since it sounds that's now a requirement on OS
>> X?
>>
>>>
>>>
>>> On Nov 5, 2013, at 9:42 AM, Howard Hinnant <hhinnant at apple.com> wrote:
>>>
>>>> When I use tot clang, (and want libc++), I will forbid clang from
>>>> looking the std::headers, and then tell it exactly where the headers are,
>>>> e.g.:
>>>>
>>>> $ clang++ -stdlib=libc++ -std=c++11 -nostdinc++ -I../libcxx/include
>>>> test.cpp
>>>>
>>>> Howard
>>>>
>>>> On Nov 5, 2013, at 12:35 PM, Nico Weber <thakis at chromium.org> wrote:
>>>>
>>>>> In addition to the performance issues, libc++ apparently can't be found
>>>>> by clang: http://llvm.org/bugs/show_bug.cgi?id=17821
>>>>>
>>>>>
>>>>> On Sat, Nov 2, 2013 at 10:35 PM, Bob Wilson <bob.wilson at apple.com>
>>>>> wrote:
>>>>> I’m not familiar with those performance issues, so I’m CC’ing Howard in
>>>>> case he can provide any details on those issues. In general, we’re in the
>>>>> process of migrating away from libstdc++ on OS X and iOS, so we really do
>>>>> want the default to be libc++ regardless of the language mode. If you have
>>>>> particularly performance sensitive code, you can always choose to use
>>>>> libstdc++.
>>>>>
>>>>> On Nov 2, 2013, at 7:05 PM, Nico Weber <thakis at chromium.org> wrote:
>>>>>
>>>>>> Thanks for upstreaming this!
>>>>>>
>>>>>> Should this only happen in C++11 mode? libc++ seems to be measurably
>>>>>> slower than libstdc++ in C++03 mode (PR17703, PR14554, PR14555).
>>>>>>
>>>>>>
>>>>>> On Sat, Nov 2, 2013 at 4:19 PM, Bob Wilson <bob.wilson at apple.com>
>>>>>> wrote:
>>>>>> Author: bwilson
>>>>>> Date: Sat Nov 2 18:19:53 2013
>>>>>> New Revision: 193934
>>>>>>
>>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=193934&view=rev
>>>>>> Log:
>>>>>> Default to use libc++ on OS X 10.9+ and iOS 7+.
>>>>>>
>>>>>> Modified:
>>>>>> cfe/trunk/lib/Driver/ToolChains.cpp
>>>>>> cfe/trunk/test/PCH/cxx-typeid.cpp
>>>>>>
>>>>>> Modified: cfe/trunk/lib/Driver/ToolChains.cpp
>>>>>> URL:
>>>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=193934&r1=193933&r2=193934&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> --- cfe/trunk/lib/Driver/ToolChains.cpp (original)
>>>>>> +++ cfe/trunk/lib/Driver/ToolChains.cpp Sat Nov 2 18:19:53 2013
>>>>>> @@ -839,6 +839,12 @@ DerivedArgList *Darwin::TranslateArgs(co
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> + // Default to use libc++ on OS X 10.9+ and iOS 7+.
>>>>>> + if (((isTargetMacOS() && !isMacosxVersionLT(10, 9)) ||
>>>>>> + (isTargetIPhoneOS() && !isIPhoneOSVersionLT(7, 0))) &&
>>>>>> + !Args.getLastArg(options::OPT_stdlib_EQ))
>>>>>> + DAL->AddJoinedArg(0, Opts.getOption(options::OPT_stdlib_EQ),
>>>>>> "libc++");
>>>>>> +
>>>>>> // Validate the C++ standard library choice.
>>>>>> CXXStdlibType Type = GetCXXStdlibType(*DAL);
>>>>>> if (Type == ToolChain::CST_Libcxx) {
>>>>>>
>>>>>> Modified: cfe/trunk/test/PCH/cxx-typeid.cpp
>>>>>> URL:
>>>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/cxx-typeid.cpp?rev=193934&r1=193933&r2=193934&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> --- cfe/trunk/test/PCH/cxx-typeid.cpp (original)
>>>>>> +++ cfe/trunk/test/PCH/cxx-typeid.cpp Sat Nov 2 18:19:53 2013
>>>>>> @@ -1,8 +1,8 @@
>>>>>> // Test this without pch.
>>>>>> -// RUN: %clang_cc1 -include %S/cxx-typeid.h -fsyntax-only -verify %s
>>>>>> +// RUN: %clang_cc1 -include %S/cxx-typeid.h -fsyntax-only
>>>>>> -stdlib=libstdc++ -verify %s
>>>>>>
>>>>>> -// RUN: %clang_cc1 -x c++-header -emit-pch -o %t.pch %S/cxx-typeid.h
>>>>>> -// RUN: %clang_cc1 -include-pch %t.pch -fsyntax-only -verify %s
>>>>>> +// RUN: %clang_cc1 -x c++-header -emit-pch -stdlib=libstdc++ -o
>>>>>> %t.pch %S/cxx-typeid.h
>>>>>> +// RUN: %clang_cc1 -include-pch %t.pch -fsyntax-only
>>>>>> -stdlib=libstdc++ -verify %s
>>>>>>
>>>>>> // expected-no-diagnostics
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> cfe-commits mailing list
>>>>>> cfe-commits at cs.uiuc.edu
>>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
More information about the cfe-commits
mailing list