Break dependency on features.h
Summary: It doesn't exist on some systems (at least Mac OS X). We're only using it for __GNUC_PREREQ, which is easy to provide our own definition for. I moved the definitions of FOLLY_FINAL and FOLLY_OVERRIDE into folly-config.h so we can autoconf them in the open-source build. The hardcoded stuff for the internal build is a little ugly, unfortunately. folly can't be built with gcc versions earlier than 4.6, so that check in ThreadLocal.h is pointless by now. (Plus we use noexcept without a macro wrapper all over the place.) That stuff was also not clang-friendly. clang has supported static_assert since 2.9 and noexcept since... I'm not sure but at least 3.0. Test Plan: fbconfig/fbmake runtests, with gcc 4.6 and 4.7. clang can't build folly right now, but I verified separately that it supports noexcept and static_assert. Reviewed By: simpkins@fb.com FB internal diff: D799143
Showing
Please register or sign in to comment