mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-24 11:41:07 +00:00
7329994338
More cancellation handling fixups. * sysdeps/unix/sysv/linux/not-cancel.h: Add waitpid_not_cancel. * sysdeps/generic/not-cancel.h: Likewise. * catgets/open_catalog.c: Use not-cancelable syscalls. * time/Makefile (CFLAGS-getdate.c): Add -fexceptions. * sysdeps/unix/sysv/linux/llseek.c: Must not be cancelable. * sysdeps/unix/syscalls.list: Don't mark lseek as cancelable. * dlfcn/dlfcn.h: Mark dlopen with __THROW again. * io/fcntl.h: Don't mark posix_fallocate with __THROW. * libio/fileops.c: Use not-cancelable syscalls for fclose. * libio/iopopen.c: Use no-cancelable syscalls. * libio/stdio.h: Mark popen and pclose with __THROW again. * misc/Makefile (CFLAGS-syslog.c): Add -fexceptions. * misc/syslog.c: Fix locking and cancellation cleanup handling. * posix/unistd.h: Mark ttyname and ttyname_r again with __THROW. * stdio-common/Makefile (CFLAGS-tmpfile.c, CFLAGS-tmpfile64.c, CFLAGS-tempname.c): Add -fexceptions. * stdlib/Makefile (CFLAGS-mkstemp.c): Add -fexceptions. * string/string.h: Mark strerror and strerror_r with _THROW again. * sysdeps/generic/unwind.inc: New file. Copied from gcc. * sysdeps/generic/unwind-dw2.c: Update from gcc version. Remove #ifs since we now need all the code compiled. * sysdeps/posix/spawni.c: Use close_not_cancel instead of close. * sysdeps/unix/closedir.c: Use not-cancelable syscalls. * sysdeps/unix/opendir.c: Likewise.
130 lines
3.5 KiB
Plaintext
Executable File
130 lines
3.5 KiB
Plaintext
Executable File
# This file is generated from configure.in by Autoconf. DO NOT EDIT!
|
|
|
|
if test "x$libc_cv_gcc___thread" != xyes; then
|
|
{ { echo "$as_me:$LINENO: error: compiler support for __thread is required" >&5
|
|
echo "$as_me: error: compiler support for __thread is required" >&2;}
|
|
{ (exit 1); exit 1; }; }
|
|
fi
|
|
|
|
if test "x$libc_cv_asm_cfi_directives" != xyes; then
|
|
case "$base_machine" in
|
|
i386 | x86_64 | powerpc | s390)
|
|
{ { echo "$as_me:$LINENO: error: CFI directive support in assembler is required" >&5
|
|
echo "$as_me: error: CFI directive support in assembler is required" >&2;}
|
|
{ (exit 1); exit 1; }; } ;;
|
|
*) ;;
|
|
esac
|
|
fi
|
|
|
|
|
|
echo "$as_me:$LINENO: checking for forced unwind support" >&5
|
|
echo $ECHO_N "checking for forced unwind support... $ECHO_C" >&6
|
|
if test "${libc_cv_forced_unwind+set}" = set; then
|
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
|
else
|
|
cat >conftest.$ac_ext <<_ACEOF
|
|
#line $LINENO "configure"
|
|
/* confdefs.h. */
|
|
_ACEOF
|
|
cat confdefs.h >>conftest.$ac_ext
|
|
cat >>conftest.$ac_ext <<_ACEOF
|
|
/* end confdefs.h. */
|
|
#include <unwind.h>
|
|
int
|
|
main ()
|
|
{
|
|
|
|
struct _Unwind_Exception exc;
|
|
struct _Unwind_Context *context;
|
|
_Unwind_GetCFA (context)
|
|
;
|
|
return 0;
|
|
}
|
|
_ACEOF
|
|
rm -f conftest.$ac_objext conftest$ac_exeext
|
|
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|
(eval $ac_link) 2>&5
|
|
ac_status=$?
|
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
|
(exit $ac_status); } &&
|
|
{ ac_try='test -s conftest$ac_exeext'
|
|
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
|
(eval $ac_try) 2>&5
|
|
ac_status=$?
|
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
|
(exit $ac_status); }; }; then
|
|
libc_cv_forced_unwind=yes
|
|
else
|
|
echo "$as_me: failed program was:" >&5
|
|
sed 's/^/| /' conftest.$ac_ext >&5
|
|
|
|
libc_cv_forced_unwind=no
|
|
fi
|
|
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
|
|
fi
|
|
echo "$as_me:$LINENO: result: $libc_cv_forced_unwind" >&5
|
|
echo "${ECHO_T}$libc_cv_forced_unwind" >&6
|
|
if test $libc_cv_forced_unwind = yes; then
|
|
cat >>confdefs.h <<\_ACEOF
|
|
#define HAVE_FORCED_UNWIND 1
|
|
_ACEOF
|
|
|
|
old_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS -Werror -fexceptions"
|
|
echo "$as_me:$LINENO: checking for C cleanup handling" >&5
|
|
echo $ECHO_N "checking for C cleanup handling... $ECHO_C" >&6
|
|
if test "${libc_cv_c_cleanup+set}" = set; then
|
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
|
else
|
|
cat >conftest.$ac_ext <<_ACEOF
|
|
#line $LINENO "configure"
|
|
/* confdefs.h. */
|
|
_ACEOF
|
|
cat confdefs.h >>conftest.$ac_ext
|
|
cat >>conftest.$ac_ext <<_ACEOF
|
|
/* end confdefs.h. */
|
|
|
|
#include <stdio.h>
|
|
void cl (void *a) { }
|
|
extern c (void);
|
|
int
|
|
main ()
|
|
{
|
|
|
|
int a __attribute__ ((cleanup (cl)));
|
|
puts ("test")
|
|
;
|
|
return 0;
|
|
}
|
|
_ACEOF
|
|
rm -f conftest.$ac_objext conftest$ac_exeext
|
|
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|
(eval $ac_link) 2>&5
|
|
ac_status=$?
|
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
|
(exit $ac_status); } &&
|
|
{ ac_try='test -s conftest$ac_exeext'
|
|
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
|
(eval $ac_try) 2>&5
|
|
ac_status=$?
|
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
|
(exit $ac_status); }; }; then
|
|
libc_cv_c_cleanup=yes
|
|
else
|
|
echo "$as_me: failed program was:" >&5
|
|
sed 's/^/| /' conftest.$ac_ext >&5
|
|
|
|
libc_cv_c_cleanup=no
|
|
fi
|
|
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
|
|
fi
|
|
echo "$as_me:$LINENO: result: $libc_cv_c_cleanup" >&5
|
|
echo "${ECHO_T}$libc_cv_c_cleanup" >&6
|
|
CFLAGS="$old_CFLAGS"
|
|
if test $libc_cv_c_cleanup = no; then
|
|
{ { echo "$as_me:$LINENO: error: the compiler must support C cleanup handling" >&5
|
|
echo "$as_me: error: the compiler must support C cleanup handling" >&2;}
|
|
{ (exit 1); exit 1; }; }
|
|
fi
|
|
fi
|