diff options
Diffstat (limited to 'nptl/sysdeps/pthread/configure.ac')
-rw-r--r-- | nptl/sysdeps/pthread/configure.ac | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/nptl/sysdeps/pthread/configure.ac b/nptl/sysdeps/pthread/configure.ac new file mode 100644 index 0000000..413af96 --- /dev/null +++ b/nptl/sysdeps/pthread/configure.ac @@ -0,0 +1,49 @@ +dnl configure fragment for new libpthread implementation. +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. + +if test "x$libc_cv_gcc___thread" != xyes; then + AC_MSG_ERROR(compiler support for __thread is required) +fi + +if test "x${libc_cv_visibility_attribute}" != xyes || + test "x${libc_cv_broken_visibility_attribute}" != xno; then + AC_MSG_ERROR(working compiler support for visibility attribute is required) +fi + +if test "x$libc_cv_asm_cfi_directives" != xyes; then + dnl We need this only for some architectures. + case "$base_machine" in + i386 | x86_64 | powerpc | s390) + AC_MSG_ERROR(CFI directive support in assembler is required) ;; + *) ;; + esac +fi + +dnl Iff <unwind.h> is available, make sure it is the right one and it +dnl contains struct _Unwind_Exception. +AC_CACHE_CHECK(dnl +for forced unwind support, libc_cv_forced_unwind, [dnl +AC_TRY_COMPILE([#include <unwind.h>], [ +struct _Unwind_Exception exc; +struct _Unwind_Context *context; +_Unwind_GetCFA (context)], +libc_cv_forced_unwind=yes, libc_cv_forced_unwind=no)]) +if test $libc_cv_forced_unwind = yes; then + AC_DEFINE(HAVE_FORCED_UNWIND) +dnl Check for C cleanup handling. + old_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror -fexceptions" + AC_CACHE_CHECK([for C cleanup handling], libc_cv_c_cleanup, [dnl + AC_TRY_COMPILE([ +extern void some_function (void); +void cl (void *a) { }], [ + int a __attribute__ ((cleanup (cl))); + some_function ()], +libc_cv_c_cleanup=yes, libc_cv_c_cleanup=no)]) + CFLAGS="$old_CFLAGS" + if test $libc_cv_c_cleanup = no; then + AC_MSG_ERROR([the compiler must support C cleanup handling]) + fi +else + AC_MSG_ERROR(forced unwind support is required) +fi |