@Michael: does dropping support for 10.5 / 10.6 and opting into libc++ make 
sense? Shall I file a bug to track this?

Daniel

On Wednesday, March 9, 2016 at 10:09:42 AM UTC-8, Nico Weber wrote:
>
> When building on OS X, you tell the compiler what the lowest OS X version 
> is that you want to support – this is the mac_deployment_target thing Jakob 
> mentioned. The SDK then makes certain functionality available only as weak 
> symbols (e.g. if you want to support running all the way back on 10.6, but 
> some function was introduced in 10.8, then that function is a weak symbol 
> and you have to make sure you check it to be non-NULL before you call it). 
> libc++ is the system library, so these weak symbol tricks don't work and 
> you need to explicitly tell the compiler which C++ standard library to use. 
> OS X started shipping a system libc++ in parallel to its very old libstdc++ 
> 4.2 in OS X 10.7. So if your deployment target is older than 10.7, you 
> cannot use the system libc++. If your deployment target is 10.9+ (I think), 
> then the compiler will use libc++ by default. If your deployment target is 
> 10.7 or 10.8 (iirc), you can opt in to libc++ but the default is still 
> libstdc++.
>
> All the C++11 stuff requires libc++, since Apple stopped updating their 
> libstdc++ long ago.
>
> For v8, the best recommendation is probably to drop support for 10.5 and 
> 10.6 (and maybe 10.7 and 10.8 too – Chromium is dropping support for 
> 10.6-10.8 in the next release), if you're able to do this.
>
> In Chromium, we jumped through some hoops to link against libc++ and still 
> target 10.6 for a few releases so we could use C++11 stuff earlier. 
> https://docs.google.com/document/d/1cFVCLYqpVV0pn2aX09SALcE3BN351sFN_rTcPcHRg3U/edit
>  
> documents the approach, and Chromium's build files show how this was 
> implemented if you want to do that. But easiest is to just up your 
> deployment target to 10.7 and tell the compiler to use libc++. (To do this, 
> in gyp add  'CLANG_CXX_LIBRARY': 'libc++' to your xcode_settings block, and 
> in gn add "-stdlib=libc++" to your cflags_cc and ldflags.)
>
> On Wed, Mar 9, 2016 at 1:16 AM, Jakob Kummerow <jkum...@chromium.org 
> <javascript:>> wrote:
>
>> I think what Daniel was referring to is 'mac_deployment_target%': '10.5' 
>> in standalone.gypi, not the OS version that's actually installed on the 
>> bots. 
>>
>> Maybe it's time to bump up the deployment target. Traditionally V8 has 
>> supported older OS versions than Chromium, but lacking tools like UMA it's 
>> really hard to estimate how important support for any given OS is in 
>> practice.
>>
>>
>> On Wed, Mar 9, 2016 at 8:37 AM, Michael Achenbach <mache...@chromium.org 
>> <javascript:>> wrote:
>>
>>> The bots have all version 10.9.5.
>>>
>>> @Nico, what else would be required? Maybe there's something missing in 
>>> our standalone.gypi?
>>>
>>> On Mon, Mar 7, 2016 at 8:50 PM, Adam Klein <ad...@chromium.org 
>>> <javascript:>> wrote:
>>>
>>>> +machenbach, who maintains the bots.
>>>>
>>>> On Mon, Mar 7, 2016 at 11:18 AM, Daniel Cheng <dch...@chromium.org 
>>>> <javascript:>> wrote:
>>>>
>>>>> Who's responsible for maintaining these bots? It looks like v8_mac_rel 
>>>>> doesn't understand C++11 constructs still: 
>>>>> https://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel/builds/16596
>>>>>
>>>>> This seems to be related to -mmacosx-version-min=10.5: is there any 
>>>>> chance that we'll be dropping support for older OS X in V8 at some point?
>>>>>
>>>>> Daniel
>>>>>
>>>>> -- 
>>>>> -- 
>>>>> v8-dev mailing list
>>>>> v8-...@googlegroups.com <javascript:>
>>>>> http://groups.google.com/group/v8-dev
>>>>> --- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "v8-dev" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to v8-dev+un...@googlegroups.com <javascript:>.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> -- 
>>>> -- 
>>>> v8-dev mailing list
>>>> v8-...@googlegroups.com <javascript:>
>>>> http://groups.google.com/group/v8-dev
>>>> --- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "v8-dev" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to v8-dev+un...@googlegroups.com <javascript:>.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> -- 
>>> -- 
>>> v8-dev mailing list
>>> v8-...@googlegroups.com <javascript:>
>>> http://groups.google.com/group/v8-dev
>>> --- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "v8-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to v8-dev+un...@googlegroups.com <javascript:>.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>

-- 
-- 
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to