<div dir="ltr">(To be clear, the patch as-is is 100% fine with me.)</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 1, 2018 at 11:44 AM, Duncan P. N. Exon Smith via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Using runtime availability checking doesn't make sense for a system Libc++, as you point out.  If we add runtime checks they ought to be non-default, and hidden behind configuration flags.<br>
<br>
Also, do I remember correctly that __builtin_available requires linking against Foundation (and thus the Obj-C runtime) for NSProcessInfo, or has that dependency been removed/avoided?  It would be surprising for the C++ standard library to pull in the Objective-C runtime.  A reasonable configuration option, but not a reasonable default behaviour IMO.<br>
<div class="HOEnZb"><div class="h5"><br>
> On Feb 1, 2018, at 05:52, Nico Weber via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br>
><br>
> thakis added a comment.<br>
><br>
> The powers that be updated the SDK on the chromium clang bots, so we need some solution for this issue soon.<br>
><br>
> The approach in this patch should work, but it seems conservative. Now libc++ only uses utimesat() if it's built with a deployment target of macOS 10.13. But if we were to set a deployment target of 10.12 and then _run_ on 10.13, we could use utimesat() as well, even though this patch currently doesn't. (Apple bundles libc++ with the system, so it's not a meaningful difference for Apple-built libc++'s, but applications can build libc++ themselves and statically link to it, and for those it would make a difference.)<br>
><br>
> <a href="https://clang.llvm.org/docs/LanguageExtensions.html#objective-c-available" rel="noreferrer" target="_blank">https://clang.llvm.org/docs/<wbr>LanguageExtensions.html#<wbr>objective-c-available</a> has some words on it (except that `@available` is spelled `__builtin_available` in non-Objective-C code) -- thoughts on using runtime detection of utimes() instead? That's how things are supposed to work on the Apple platforms.<br>
><br>
><br>
> <a href="https://reviews.llvm.org/D34249" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D34249</a><br>
><br>
><br>
><br>
<br>
______________________________<wbr>_________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br></div>