(HAVE_DWARF2_UNWIND_INFO_STATIC): Define it if gcc uses static
authordrepper <drepper>
Mon, 22 Dec 1997 17:11:28 +0000 (17:11 +0000)
committerdrepper <drepper>
Mon, 22 Dec 1997 17:11:28 +0000 (17:11 +0000)
variable in DWARF2 unwind information for exception support.
(libc_cv_gcc_alpha_ng_prefix): Correct quoting.
Stop with error if --disable-static is used when the shared lib uses
this library.

configure.in

index 939fda8..4aeeae0 100644 (file)
@@ -837,7 +837,7 @@ cat > conftest.c <<\EOF
 foo () { }
 EOF
 dnl
 foo () { }
 EOF
 dnl
-if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep '$foo..ng' > /dev/null]);
+if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null]);
 then
   libc_cv_gcc_alpha_ng_prefix=yes
 else
 then
   libc_cv_gcc_alpha_ng_prefix=yes
 else
@@ -857,8 +857,14 @@ AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
 static char __EH_FRAME_BEGIN__[];
 _start ()
 {
 static char __EH_FRAME_BEGIN__[];
 _start ()
 {
+#ifdef CHECK__register_frame
   __register_frame (__EH_FRAME_BEGIN__);
   __deregister_frame (__EH_FRAME_BEGIN__);
   __register_frame (__EH_FRAME_BEGIN__);
   __deregister_frame (__EH_FRAME_BEGIN__);
+#endif
+#ifdef CHECK__register_frame_info
+  __register_frame_info (__EH_FRAME_BEGIN__);
+  __deregister_frame_info (__EH_FRAME_BEGIN__);
+#endif
 }
 int __eh_pc;
 __throw () {}
 }
 int __eh_pc;
 __throw () {}
@@ -873,17 +879,32 @@ abort () {}
 __bzero () {}
 EOF
 dnl No \ in command here because it ends up inside ''.
 __bzero () {}
 EOF
 dnl No \ in command here because it ends up inside ''.
-if AC_TRY_COMMAND([${CC-cc} $CFLAGS
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
                            -nostdlib -nostartfiles
                            -o conftest conftest.c -lgcc >&AC_FD_CC]); then
                            -nostdlib -nostartfiles
                            -o conftest conftest.c -lgcc >&AC_FD_CC]); then
-  libc_cv_gcc_dwarf2_unwind_info=yes
+  libc_cv_gcc_dwarf2_unwind_info=static
 else
   libc_cv_gcc_dwarf2_unwind_info=no
 fi
 else
   libc_cv_gcc_dwarf2_unwind_info=no
 fi
+if test $libc_cv_gcc_dwarf2_unwind_info = no; then
+  if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
+                             -nostdlib -nostartfiles
+                             -o conftest conftest.c -lgcc >&AC_FD_CC]); then
+    libc_cv_gcc_dwarf2_unwind_info=yes
+  else
+    libc_cv_gcc_dwarf2_unwind_info=no
+  fi
+fi
 rm -f conftest*])
 rm -f conftest*])
-if test $libc_cv_gcc_dwarf2_unwind_info = yes; then
+case $libc_cv_gcc_dwarf2_unwind_info in
+yes)
   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
-fi
+  ;;
+static)
+  AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
+  AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
+  ;;
+esac
 
 ### End of automated tests.
 ### Now run sysdeps configure fragments.
 
 ### End of automated tests.
 ### Now run sysdeps configure fragments.
@@ -1024,10 +1045,23 @@ if test $shared = default; then
   fi
 fi
 
   fi
 fi
 
+dnl We must not allow compilation without static library on some platforms.
+if test $static = no && test $shared = yes; then
+  case "$host_os" in
+  linux* | gnu*)
+    AC_MSG_ERROR([
+*** You must compile with support for the static library since the shared
+*** library uses it.  Restart configure without \`--disable-static'.])
+    ;;
+  *)
+    ;;
+  esac
+fi
+
 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
 [pic_default=yes
 cat > conftest.c <<EOF
 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
 [pic_default=yes
 cat > conftest.c <<EOF
-#if defined(__PIC__) || defined(__pic__) || defined(PIC) || defined(pic)
+#if defined __PIC__ || defined __pic__ || defined PIC || defined pic
 # error PIC is default.
 #endif
 EOF
 # error PIC is default.
 #endif
 EOF