about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rwxr-xr-xconfigure55
-rw-r--r--sysdeps/powerpc/bits/setjmp.h5
3 files changed, 56 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 1776d883c2..be527caa94 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+1998-05-07  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/powerpc/bits/setjmp.h (_JMPBUF_UNWINDS): Define.
+	Patch by Matt McLean <keys@brio.yikes.com>.
+
 1997-05-07 13:26  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
 	* Makerules (lib): Put back dependency on lib-noranlib.
diff --git a/configure b/configure
index df9fef82aa..3ef6e6ba82 100755
--- a/configure
+++ b/configure
@@ -2578,13 +2578,50 @@ EOF
 fi
 fi
 
+if test "$host_cpu" = powerpc ; then
+# Check for a bug present in at least versions 2.8.x of GCC
+# and versions 1.0.x of EGCS.
+echo $ac_n "checking whether clobbering cr0 causes problems""... $ac_c" 1>&6
+echo "configure:2586: checking whether clobbering cr0 causes problems" >&5
+if eval "test \"`echo '$''{'libc_cv_c_asmcr0_bug'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2591 "configure"
+#include "confdefs.h"
+int tester(int x) { asm ("" : : : "cc"); return x & 123; }
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:2598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  libc_cv_c_asmcr0_bug='no'
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  libc_cv_c_asmcr0_bug='yes'
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_c_asmcr0_bug" 1>&6
+if test "$libc_cv_c_asmcr0_bug" != 'no'; then
+  cat >> confdefs.h <<\EOF
+#define BROKEN_PPC_ASM_CR0 1
+EOF
+
+fi
+fi
+
 echo $ac_n "checking for DWARF2 unwind info support""... $ac_c" 1>&6
-echo "configure:2583: checking for DWARF2 unwind info support" >&5
+echo "configure:2620: checking for DWARF2 unwind info support" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_dwarf2_unwind_info'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.c <<EOF
-#line 2588 "configure"
+#line 2625 "configure"
 static char __EH_FRAME_BEGIN__;
 _start ()
 {
@@ -2611,7 +2648,7 @@ __bzero () {}
 EOF
 if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame_info
 			    -nostdlib -nostartfiles
-			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2615: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2652: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_gcc_dwarf2_unwind_info=static
 else
   libc_cv_gcc_dwarf2_unwind_info=no
@@ -2619,7 +2656,7 @@ fi
 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
   if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame
 			      -nostdlib -nostartfiles
-			      -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2623: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			      -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
     libc_cv_gcc_dwarf2_unwind_info=yes
   else
     libc_cv_gcc_dwarf2_unwind_info=no
@@ -2693,7 +2730,7 @@ if test "$uname" = "sysdeps/generic"; then
   fi
 
   echo $ac_n "checking OS release for uname""... $ac_c" 1>&6
-echo "configure:2697: checking OS release for uname" >&5
+echo "configure:2734: checking OS release for uname" >&5
 if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2715,7 +2752,7 @@ echo "$ac_t""$libc_cv_uname_release" 1>&6
   uname_release="$libc_cv_uname_release"
 
   echo $ac_n "checking OS version for uname""... $ac_c" 1>&6
-echo "configure:2719: checking OS version for uname" >&5
+echo "configure:2756: checking OS version for uname" >&5
 if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2737,7 +2774,7 @@ else
 fi
 
 echo $ac_n "checking stdio selection""... $ac_c" 1>&6
-echo "configure:2741: checking stdio selection" >&5
+echo "configure:2778: checking stdio selection" >&5
 
 case $stdio in
 libio) cat >> confdefs.h <<\EOF
@@ -2749,7 +2786,7 @@ esac
 echo "$ac_t""$stdio" 1>&6
 
 echo $ac_n "checking ldap selection""... $ac_c" 1>&6
-echo "configure:2753: checking ldap selection" >&5
+echo "configure:2790: checking ldap selection" >&5
 
 case $add_ons in
 *ldap*)
@@ -2800,7 +2837,7 @@ if test $shared = default; then
 fi
 
 echo $ac_n "checking whether -fPIC is default""... $ac_c" 1>&6
-echo "configure:2804: checking whether -fPIC is default" >&5
+echo "configure:2841: checking whether -fPIC is default" >&5
 if eval "test \"`echo '$''{'pic_default'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
diff --git a/sysdeps/powerpc/bits/setjmp.h b/sysdeps/powerpc/bits/setjmp.h
index 65db364555..100f1d1a90 100644
--- a/sysdeps/powerpc/bits/setjmp.h
+++ b/sysdeps/powerpc/bits/setjmp.h
@@ -39,3 +39,8 @@
 #ifndef	_ASM
 typedef long int __jmp_buf[58];
 #endif
+
+/* Test if longjmp to JMPBUF would unwind the frame
+   containing a local variable at ADDRESS.  */
+#define _JMPBUF_UNWINDS(jmpbuf, address) \
+  ((void *) (address) < (void *) (jmpbuf)[JB_GPR1])