summaryrefslogtreecommitdiffstats
path: root/13.0/glibc/glibc.pthread-disable-forced-unwind-check.diff
diff options
context:
space:
mode:
Diffstat (limited to '13.0/glibc/glibc.pthread-disable-forced-unwind-check.diff')
-rw-r--r--13.0/glibc/glibc.pthread-disable-forced-unwind-check.diff207
1 files changed, 207 insertions, 0 deletions
diff --git a/13.0/glibc/glibc.pthread-disable-forced-unwind-check.diff b/13.0/glibc/glibc.pthread-disable-forced-unwind-check.diff
new file mode 100644
index 0000000..f779844
--- /dev/null
+++ b/13.0/glibc/glibc.pthread-disable-forced-unwind-check.diff
@@ -0,0 +1,207 @@
+diff -Naur glibc-2.7/nptl/sysdeps/pthread/configure glibc-2.7-unwind/nptl/sysdeps/pthread/configure
+--- glibc-2.7/nptl/sysdeps/pthread/configure 2007-10-18 11:22:23.000000000 +0000
++++ glibc-2.7-unwind/nptl/sysdeps/pthread/configure 2008-03-30 16:53:42.000000000 +0000
+@@ -24,130 +24,9 @@
+ 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
+-/* 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 { (ac_try="$ac_link"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+- (eval "$ac_link") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest$ac_exeext &&
+- $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+- 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
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-#include <stdio.h>
+-void cl (void *a) { }
+-int
+-main ()
+-{
+-
+- int a __attribute__ ((cleanup (cl)));
+- puts ("test")
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (ac_try="$ac_link"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+- (eval "$ac_link") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest$ac_exeext &&
+- $as_test_x conftest$ac_exeext; 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 core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+- 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
+-else
+- { { echo "$as_me:$LINENO: error: forced unwind support is required" >&5
+-echo "$as_me: error: forced unwind support is required" >&2;}
+- { (exit 1); exit 1; }; }
+-fi
+diff -Naur glibc-2.7/nptl/sysdeps/pthread/configure.in glibc-2.7-unwind/nptl/sysdeps/pthread/configure.in
+--- glibc-2.7/nptl/sysdeps/pthread/configure.in 2003-12-03 06:50:01.000000000 +0000
++++ glibc-2.7-unwind/nptl/sysdeps/pthread/configure.in 2008-03-30 16:54:50.000000000 +0000
+@@ -19,31 +19,41 @@
+ 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_LINK([#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_LINK([
+-#include <stdio.h>
+-void cl (void *a) { }], [
+- int a __attribute__ ((cleanup (cl)));
+- puts ("test")],
+-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
++dnl These link tests made bootstrapping EGLIBC difficult (how do you
++dnl link if you haven't built a libc yet?), and this test is only used
++dnl to produce an error message anyway. We've already checked the
++dnl GCC, as, and ld versions in the top-level configure script, and we
++dnl only use the results of these tests to produce an error message,
++dnl so we just disable these tests entirely.
++dnl
++dnl dnl Iff <unwind.h> is available, make sure it is the right one and it
++dnl dnl contains struct _Unwind_Exception.
++dnl AC_CACHE_CHECK(dnl
++dnl for forced unwind support, libc_cv_forced_unwind, [dnl
++dnl AC_TRY_LINK([#include <unwind.h>], [
++dnl struct _Unwind_Exception exc;
++dnl struct _Unwind_Context *context;
++dnl _Unwind_GetCFA (context)],
++dnl libc_cv_forced_unwind=yes, libc_cv_forced_unwind=no)])
++dnl if test $libc_cv_forced_unwind = yes; then
++dnl AC_DEFINE(HAVE_FORCED_UNWIND)
++dnl dnl Check for C cleanup handling.
++dnl old_CFLAGS="$CFLAGS"
++dnl CFLAGS="$CFLAGS -Werror -fexceptions"
++dnl AC_CACHE_CHECK([for C cleanup handling], libc_cv_c_cleanup, [dnl
++dnl AC_TRY_LINK([
++dnl #include <stdio.h>
++dnl void cl (void *a) { }], [
++dnl int a __attribute__ ((cleanup (cl)));
++dnl puts ("test")],
++dnl libc_cv_c_cleanup=yes, libc_cv_c_cleanup=no)])
++dnl CFLAGS="$old_CFLAGS"
++dnl if test $libc_cv_c_cleanup = no; then
++dnl AC_MSG_ERROR([the compiler must support C cleanup handling])
++dnl fi
++dnl else
++dnl AC_MSG_ERROR(forced unwind support is required)
++dnl fi
++libc_cv_forced_unwind=yes
++AC_DEFINE(HAVE_FORCED_UNWIND)
++libc_cv_c_cleanup=yes