# expose required -std option via pkg-config
PKG_CXXFLAGS=$STD
+# See if -Wshadow-local and -Wshadow-compatible-local are supported
+AC_MSG_CHECKING(
+ [whether -Wshadow-local and -Wshadow-compatible-local are supported])
+AC_CACHE_VAL([folly_cv_cxx_shadow_local_support], [
+ folly_save_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS -Wshadow-local -Wshadow-compatible-local"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[]], [[]])],
+ [folly_cv_cxx_shadow_local_support=yes],
+ [folly_cv_cxx_shadow_local_support=no])
+ CXXFLAGS="$folly_save_CXXFLAGS"])
+AC_MSG_RESULT([$folly_cv_cxx_shadow_local_support])
+if test "$folly_cv_cxx_shadow_local_support" = yes; then
+ AC_DEFINE([HAVE_SHADOW_LOCAL_WARNINGS], [1],
+ [Define if both -Wshadow-local and -Wshadow-compatible-local are supported.])
+fi
+
# Checks for glog and gflags
# There are no symbols with C linkage, so we do a try-run
AC_HAVE_LIBRARY([gflags],[],[AC_MSG_ERROR(
#include <type_traits>
static_assert(
::std::is_same<::std::make_signed<unsigned __int128>::type, __int128>::value,
- "signed form of `unsigned __uint128` must be `__int128`.");
+ "signed form of \`unsigned __uint128\` must be \`__int128\`.");
]])],
[folly_cv_prog_cc_int128traits=yes],
[folly_cv_prog_cc_int128traits=no])
])
if test "$folly_cv_prog_cc_int128traits" = "no"; then
- AC_DEFINE([FOLLY_SUPPLY_MISSING_INT128_TRAITS], [1], [Define if we need the standard integer traits defined for the type `__int128'.])
+ AC_DEFINE([SUPPLY_MISSING_INT128_TRAITS], [1], [Define if we need the standard integer traits defined for the type `__int128'.])
fi
fi
AC_CHECK_HEADER([snappy.h], AC_CHECK_LIB([snappy], [main]))
AC_CHECK_HEADER([zlib.h], AC_CHECK_LIB([z], [main]))
AC_CHECK_HEADER([lzma.h], AC_CHECK_LIB([lzma], [main]))
-AC_CHECK_HEADER([zstd.h], AC_CHECK_LIB([zstd], [main]))
+AC_CHECK_HEADER([zstd.h], AC_CHECK_LIB([zstd], [ZSTD_compressStream]))
AC_CHECK_HEADER([linux/membarrier.h], AC_DEFINE([HAVE_LINUX_MEMBARRIER_H], [1], [Define to 1 if membarrier.h is available]))
AC_ARG_ENABLE([follytestmain],
[follytestmain=${enableval}], [follytestmain=no])
use_follytestmain=yes
+# libdwarf used to install in /usr/include, now installs in /usr/include/libdwarf.
+AC_CHECK_HEADERS([libdwarf/dwarf.h dwarf.h], [break])
+# Check whether we have both the library and the header
+have_libdwarf=no
+AS_IF([test "x${ac_cv_header_libdwarf_dwarf_h}" = xyes], [have_libdwarf=yes])
+AS_IF([test "x${ac_cv_header_dwarf_h}" = xyes], [have_libdwarf=yes])
if test "x${follytestmain}" = "xyes"; then
- AC_CHECK_HEADERS([libdwarf.h dwarf.h],, AC_MSG_ERROR([Please install libdwarf development package]))
- AC_CHECK_HEADERS([libelf.h elf.h],, AC_MSG_ERROR([Please install libelf development package]))
- AC_CHECK_HEADERS([libunwind.h],, AC_MSG_ERROR([Please install libinwind development package]))
+ AS_IF([test "x${have_libdwarf}" = xno], [AC_MSG_ERROR([Please install libdwarf development library and headers])])
+ AC_CHECK_HEADERS([elf.h],, AC_MSG_ERROR([Please install libelf development package]))
+ AC_CHECK_HEADERS([libunwind.h],, AC_MSG_ERROR([Please install libunwind development package]))
else
- AC_CHECK_HEADERS([libdwarf.h dwarf.h],, [use_follytestmain=no])
- AC_CHECK_HEADERS([libelf.h elf.h],, [use_follytestmain=no])
+ AS_IF([test "x${have_libdwarf}" = xno],, [use_follytestmain=no])
+ AC_CHECK_HEADERS([elf.h],, [use_follytestmain=no])
AC_CHECK_HEADERS([libunwind.h],, [use_follytestmain=no])
fi