intel/isl: Allow stencil buffer to support compression on Gen12+
[mesa.git] / include / c99_compat.h
index b55ad9c181d4402058e4111f4b9cd029143b4f09..729b5b798688c1841625d0ff313a9b3efe03529b 100644 (file)
@@ -36,8 +36,8 @@
  */
 #if defined(_MSC_VER)
 
-#  if _MSC_VER < 1800
-#    error "Microsoft Visual Studio 2013 or higher required"
+#  if _MSC_VER < 1900
+#    error "Microsoft Visual Studio 2015 or higher required"
 #  endif
 
    /*
@@ -96,7 +96,7 @@
  * - http://cellperformance.beyond3d.com/articles/2006/05/demystifying-the-restrict-keyword.html
  */
 #ifndef restrict
-#  if (__STDC_VERSION__ >= 199901L)
+#  if (__STDC_VERSION__ >= 199901L) && !defined(__cplusplus)
      /* C99 */
 #  elif defined(__GNUC__)
 #    define restrict __restrict__
@@ -135,4 +135,49 @@ test_c99_compat_h(const void * restrict a,
 #endif
 
 
+/* Fallback definitions, for scons which doesn't auto-detect these things. */
+#ifdef HAVE_SCONS
+
+#  ifndef _WIN32
+#    define HAVE_PTHREAD
+#    define HAVE_POSIX_MEMALIGN
+#  endif
+
+#  ifdef __GNUC__
+#    if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2)
+#      error "GCC version 4.2 or higher required"
+#    endif
+
+     /* https://gcc.gnu.org/onlinedocs/gcc-4.2.4/gcc/Other-Builtins.html */
+#    define HAVE___BUILTIN_CLZ 1
+#    define HAVE___BUILTIN_CLZLL 1
+#    define HAVE___BUILTIN_CTZ 1
+#    define HAVE___BUILTIN_EXPECT 1
+#    define HAVE___BUILTIN_FFS 1
+#    define HAVE___BUILTIN_FFSLL 1
+#    define HAVE___BUILTIN_POPCOUNT 1
+#    define HAVE___BUILTIN_POPCOUNTLL 1
+     /* https://gcc.gnu.org/onlinedocs/gcc-4.2.4/gcc/Function-Attributes.html */
+#    define HAVE_FUNC_ATTRIBUTE_FLATTEN 1
+#    define HAVE_FUNC_ATTRIBUTE_UNUSED 1
+#    define HAVE_FUNC_ATTRIBUTE_FORMAT 1
+#    define HAVE_FUNC_ATTRIBUTE_PACKED 1
+#    define HAVE_FUNC_ATTRIBUTE_ALIAS 1
+#    define HAVE_FUNC_ATTRIBUTE_NORETURN 1
+
+#    if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+       /* https://gcc.gnu.org/onlinedocs/gcc-4.3.6/gcc/Other-Builtins.html */
+#      define HAVE___BUILTIN_BSWAP32 1
+#      define HAVE___BUILTIN_BSWAP64 1
+#    endif
+
+#    if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+#      define HAVE___BUILTIN_UNREACHABLE 1
+#    endif
+
+#  endif /* __GNUC__ */
+
+#endif /* HAVE_SCONS */
+
+
 #endif /* _C99_COMPAT_H_ */