Fix building libc++ with the macOS 10.13 SDK with -mmacosx-version-min=10.12 or lower.
authorNico Weber <nicolasweber@gmx.de>
Tue, 6 Feb 2018 19:17:41 +0000 (19:17 +0000)
committerNico Weber <nicolasweber@gmx.de>
Tue, 6 Feb 2018 19:17:41 +0000 (19:17 +0000)
commit6ef990e9ce9ab7d3a2b055e53ff83236d01f43fa
treeaccdfd255946dabfedd6e57f097c0c7c088c1deb
parenta894201313cddd1102189db97eb2673e726b67bf
Fix building libc++ with the macOS 10.13 SDK with -mmacosx-version-min=10.12 or lower.

The 10.13 SDK always defines utimensat() (with an availability(macosx=10.13) annotation)
and unconditionally defines UTIME_OMIT, so use the compile-time availability macros
on Apple platforms instead.

For people statically linking libc++, it might make sense to also provide an opt-in
option for using __builtin_available() to dynamically check for the OS version,
but for now let's do the smallest thing needed to unbreak the build.

Based on a patch by Eric Fiselier <eric@efcs.ca>: https://reviews.llvm.org/D34249
Fixes PR33469.

llvm-svn: 324385
libcxx/src/experimental/filesystem/operations.cpp