Refine check for `_LIBCPP_C_HAS_NO_GETS` on FreeBSD

Authored by dim on Oct 19 2019, 3:59 AM.


Refine check for _LIBCPP_C_HAS_NO_GETS on FreeBSD

In D67316 we added _LIBCPP_C_HAS_NO_GETS to signal that the C library
does not provide gets(), and added a test for FreeBSD 13 or higher,
using the compiler-defined __FreeBSD__ macro.

Unfortunately this did not work that well for FreeBSD's own CI process,
since the gcc compilers used for some architectures define __FreeBSD__
to match the build host, not the target.

Instead, we should use the __FreeBSD_version macro from the userland
header <osreldate.h>, which is more fine-grained. See also

Reviewers: EricWF, mclow.lists, emaste, ldionne

Reviewed By: emaste, ldionne

Subscribers: dexonsmith, bsdjhb, krytarowski, christof, ldionne, libcxx-commits

Differential Revision: https://reviews.llvm.org/D69174

llvm-svn: 375340