diff --git a/config/ChangeLog b/config/ChangeLog
index 57c31f485df22043dbb4a339d5ccb270801837e9..fda6f95a2cd826bb64f452d613f233ad675a7db7 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,7 @@
+2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* tls.m4 (GCC_CHECK_TLS): Fall back to a link test.
+
 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
 
 	* multi.m4: New file, from automake version 2 branch.
diff --git a/config/tls.m4 b/config/tls.m4
index b7a07309abe447ec458dc7e014c44b3c4c5b9331..b66b6d758cecbf96dd259c7f4e923027ac1d7f70 100644
--- a/config/tls.m4
+++ b/config/tls.m4
@@ -13,7 +13,8 @@ AC_DEFUN([GCC_CHECK_TLS], [
 		    [have_tls=yes], [have_tls=no], [])
       LDFLAGS="$save_LDFLAGS"],
       [have_tls=no],
-      [AC_COMPILE_IFELSE([__thread int foo;], [have_tls=yes], [have_tls=no])]
+      [AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }],
+	[have_tls=yes], [have_tls=no])]
     )])
   if test "$enable_tls $have_tls" = "yes yes"; then
     AC_DEFINE(HAVE_TLS, 1,
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index d0e94d272686895e466457c8ac422d644ba4c3be..56d43681be95330eb311f23c67992a9da320cf00 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,9 +1,12 @@
+2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* configure: Regenerated.
+
 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
 
 	* env.c (parse_schedule): Reject out of range values.
 	(parse_unsigned_long): Reject out of range, negative or zero values.
 
-
 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
 
 	PR fortran/29629
diff --git a/libgomp/configure b/libgomp/configure
index a0e941743a3b446328cae71372874c328ad262d2..c35e84d923020b50b6d42f9851438d14adfa3ac6 100755
--- a/libgomp/configure
+++ b/libgomp/configure
@@ -8845,11 +8845,11 @@ else
 
     if test "$cross_compiling" = yes; then
   cat >conftest.$ac_ext <<_ACEOF
-__thread int foo;
+__thread int a; int b; int main() { return a = b; }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -8863,7 +8863,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8876,7 +8876,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 have_tls=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 
 else
   cat >conftest.$ac_ext <<_ACEOF
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index b02e649ae5a5d9ff1d2a8e7d6822f1da83ad4574..7ba71ca1e19f45de98c6d63ce33b94a1f753a83e 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,7 @@
+2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* configure: Regenerated.
+
 2006-11-03  Gary Benson  <gbenson@redhat.com>
 
 	* java/net/InetAddress.java: Removed.
diff --git a/libjava/configure b/libjava/configure
index cab2891d259c93d2fe375ca57147b583149de348..15f499122aafafa4c01cb937b94ef375a3888d74 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -7633,7 +7633,7 @@ ac_x_header_dirs='
 /usr/openwin/share/include'
 
 if test "$ac_x_includes" = no; then
-  # Guess where to find include files, by looking for Xlib.h.
+  # Guess where to find include files, by looking for Intrinsic.h.
   # First, try using that file with no special directory specified.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -7641,7 +7641,7 @@ _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <X11/Xlib.h>
+#include <X11/Intrinsic.h>
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
@@ -7668,7 +7668,7 @@ else
 sed 's/^/| /' conftest.$ac_ext >&5
 
   for ac_dir in $ac_x_header_dirs; do
-  if test -r "$ac_dir/X11/Xlib.h"; then
+  if test -r "$ac_dir/X11/Intrinsic.h"; then
     ac_x_includes=$ac_dir
     break
   fi
@@ -7694,11 +7694,11 @@ _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <X11/Xlib.h>
+#include <X11/Intrinsic.h>
 int
 main ()
 {
-XrmInitialize ()
+XtMalloc (0)
   ;
   return 0;
 }
@@ -16549,12 +16549,17 @@ if test "${have_tls+set}" = set; then
 else
 
     if test "$cross_compiling" = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-__thread int foo;
+  if test x$gcc_no_link = xyes; then
+  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+__thread int a; int b; int main() { return a = b; }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -16568,7 +16573,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -16581,7 +16586,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 have_tls=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 
 else
   cat >conftest.$ac_ext <<_ACEOF
diff --git a/libmudflap/ChangeLog b/libmudflap/ChangeLog
index 5b9da8b73479e559cb5200f387c54e8c817ae325..131979d1809a647489eebd35cc630bbdbe2d750f 100644
--- a/libmudflap/ChangeLog
+++ b/libmudflap/ChangeLog
@@ -1,3 +1,7 @@
+2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* configure: Regenerated.
+
 2006-11-10  Frank Ch. Eigler  <fche@redhat.com>
 
 	PR libmudflap/28578
diff --git a/libmudflap/configure b/libmudflap/configure
index 7f7dd06e32073ead6d0fc17157f80f3451ff07e7..2e7f260b902dc555b744f87539b609bfdd51d6dc 100755
--- a/libmudflap/configure
+++ b/libmudflap/configure
@@ -7134,11 +7134,11 @@ else
 
     if test "$cross_compiling" = yes; then
   cat >conftest.$ac_ext <<_ACEOF
-__thread int foo;
+__thread int a; int b; int main() { return a = b; }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -7152,7 +7152,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7165,7 +7165,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 have_tls=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 
 else
   cat >conftest.$ac_ext <<_ACEOF
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index bb7ec9ce4318fe7257936d6becccaf7bf978e845..12c49bbb74a343f74febd3b08d5b9f6ca56bdf88 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,7 @@
+2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* configure: Regenerated.
+
 2006-11-13  Joseph Myers  <joseph@codesourcery.com>
 
 	* libsupc++/eh_globals.cc (__cxxabiv1::__cxa_get_globals):
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index ae9283da1512884cf5fd46da99e1907106591b2b..8454849501d816e7a7393dbf67a1199aa47f659b 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -31271,12 +31271,17 @@ if test "${have_tls+set}" = set; then
 else
 
     if test "$cross_compiling" = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-__thread int foo;
+  if test x$gcc_no_link = xyes; then
+  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+__thread int a; int b; int main() { return a = b; }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -31290,7 +31295,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -31303,7 +31308,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 have_tls=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 
 else
   cat >conftest.$ac_ext <<_ACEOF