[Define to 1 if the system provides program_invocation_name variable])
fi
+AC_CACHE_CHECK([for static_assert], [st_cv_have_static_assert],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <assert.h>]],
+ [[static_assert(1,"")]])],
+ [st_cv_have_static_assert=yes],
+ [st_cv_have_static_assert=no])])
+if test "x$st_cv_have_static_assert" = xyes; then
+ AC_DEFINE([HAVE_STATIC_ASSERT], [1],
+ [Define to 1 if the system provides static_assert])
+fi
+
AC_CHECK_LIB([dl], [dladdr], [dl_LIBS='-ldl'], [dl_LIBS=])
if test "x$ac_cv_lib_dl_dladdr" = xyes; then
AC_DEFINE([HAVE_DLADDR], [1], [Define to 1 if the system provides dladdr])
--- /dev/null
+/*
+ * Copyright (c) 2018 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_STATIC_ASSERT_H
+#define STRACE_STATIC_ASSERT_H
+
+#include "assert.h"
+
+#ifndef HAVE_STATIC_ASSERT
+
+# define static_assert(expr, message) \
+ extern int (*strace_static_assert(int))[sizeof(int[2 * !!(expr) - 1])]
+
+#endif
+
+#endif /* !STRACE_STATIC_ASSERT_H */