Summary:[Folly] Fix Build: `folly` after replacing `FOLLY_NORETURN`.
Problem 1:
* Clang does not treat `[[noreturn]]` and `__attribute__((__noreturn__))` as the same attribute. When a function is declared twice with the noreturn attribute, both declarations must use either the one syntax or the other; Clang fails if the two declarations mix-and-match. When both `folly/detail/FunctionalExcept.h` and gcc49's `bits/functexcept.h` are both included from the same source, they (now) mix-and-match the attribute syntaxes and Clang emits an error.
* `folly/detail/FunctionalExcept.h` should be included only when `bits/functexcept.h` is unavailable - somehow, both headers were being included.
We fix the latter problem and keep our `[[noreturn]]` syntax.
Found from WDT build failures in Travis CI.
Reviewed By: ldemailly
Differential Revision:
D3089987
fb-gh-sync-id:
705a087fc2a9629739d6cedd8315d56111204e6d
shipit-source-id:
705a087fc2a9629739d6cedd8315d56111204e6d
libfollybase_la_SOURCES += detail/MallocImpl.cpp
endif
-if !HAVE_BITS_FUNCTEXCEPT
+if !HAVE_BITS_FUNCTEXCEPT_H
libfollybase_la_SOURCES += detail/FunctionalExcept.cpp
endif
AM_CONDITIONAL([HAVE_LINUX], [test "$build_os" == "linux-gnu"])
AM_CONDITIONAL([HAVE_WEAK_SYMBOLS],
[test "$folly_cv_prog_cc_weak_symbols" = "yes"])
-AM_CONDITIONAL([HAVE_BITS_FUNCTEXCEPT], [test "$ac_cv_header_bits_functexcept_h" = "yes"])
+AM_CONDITIONAL([HAVE_BITS_FUNCTEXCEPT_H], [test "$ac_cv_header_bits_functexcept_h" = "yes"])
AM_CONDITIONAL([HAVE_EXTRANDOM_SFMT19937],
[test "$folly_cv_prog_cc_have_extrandom_sfmt19937" = "yes"])
AM_CONDITIONAL([FOLLY_TESTMAIN], [test "x${use_follytestmain}" = "xyes"])