aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/ChangeLog22
-rw-r--r--config/acx.m436
-rw-r--r--config/depstand.m45
-rw-r--r--config/tls.m459
4 files changed, 112 insertions, 10 deletions
diff --git a/config/ChangeLog b/config/ChangeLog
index 99107af..aee290a 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -3,9 +3,27 @@
* acx.m4 (ACX_CHECK_INSTALLED_TARGET_TOOL): Avoid AC_PATH_PROG
with an empty path.
-2007-02-05 Dave Brolley <brolley@redhat.com>
+2007-02-07 Bruno Haible <bruno@clisp.org>
- * mt-mep: New.
+ PR libgomp/28468
+ * config/tls.m4 (GCC_CHECK_TLS): Also check whether the libc supports
+ TLS via __thread.
+
+2007-01-31 Daniel Franke <franke.daniel@gmail.com>
+
+ PR libgomp/30546
+ * acx.m4 (ACX_PROG_CHECK_VER): Locate a program and check that its
+ version is acceptable.
+
+2007-01-27 Paolo Bonzini <bonzini@gnu.org>
+
+ * depstand.m4 (ZW_CREATE_DEPDIR): Use mkinstalldirs to make
+ directory.
+
+2007-01-23 Richard Guenther <rguenther@suse.de>
+
+ PR bootstrap/30541
+ * config/acx.m4 (ACX_PROG_GNAT): Check for gnatmake.
2007-01-14 H.J. Lu <hongjiu.lu@intel.com>
diff --git a/config/acx.m4 b/config/acx.m4
index 5712ab2..107fd76 100644
--- a/config/acx.m4
+++ b/config/acx.m4
@@ -330,11 +330,12 @@ ac_c_preproc_warn_flag=yes])# AC_PROG_CPP_WERROR
# understands Ada. We use the user's CC setting, already found.
#
# Sets the shell variable have_gnat to yes or no as appropriate, and
-# substitutes GNATBIND.
+# substitutes GNATBIND and GNATMAKE.
AC_DEFUN([ACX_PROG_GNAT],
[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
AC_REQUIRE([AC_PROG_CC])
AC_CHECK_TOOL(GNATBIND, gnatbind, no)
+AC_CHECK_TOOL(GNATMAKE, gnatmake, no)
AC_CACHE_CHECK([whether compiler driver understands Ada],
acx_cv_cc_gcc_supports_ada,
[cat >conftest.adb <<EOF
@@ -355,7 +356,7 @@ if test x"$errors" = x && test -f conftest.$ac_objext; then
fi
rm -f conftest.*])
-if test x$GNATBIND != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
+if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
have_gnat=yes
else
have_gnat=no
@@ -490,3 +491,34 @@ else
fi
fi
AC_SUBST($2)])
+
+
+dnl Locate a program and check that its version is acceptable.
+dnl ACX_PROG_CHECK_VER(var, name, version-switch,
+dnl version-extract-regexp, version-glob)
+AC_DEFUN([ACX_CHECK_PROG_VER],[
+ AC_CHECK_PROG([$1], [$2], [$2])
+ if test -n "[$]$1"; then
+ # Found it, now check the version.
+ AC_CACHE_CHECK([for modern $2],
+ [gcc_cv_prog_$2_modern],
+ [ac_prog_version=`eval [$]$1 $3 2>&1 |
+ sed -n 's/^.*patsubst([[$4]],/,\/).*$/\1/p'`
+
+ [case $ac_prog_version in
+ '') gcc_cv_prog_$2_modern=no;;
+ $5) gcc_cv_prog_$2_modern=yes;;
+ *) gcc_cv_prog_$2_modern=no;;
+ esac]
+
+ if test $gcc_cv_prog_$2_modern = no; then
+ $1="${CONFIG_SHELL-/bin/sh} $ac_aux_dir/missing $2"
+ fi
+ ])
+ else
+ gcc_cv_prog_$2_modern=no
+ fi
+ if test $gcc_cv_prog_$2_modern = no; then
+ $1="${CONFIG_SHELL-/bin/sh} $ac_aux_dir/missing $2"
+ fi
+])
diff --git a/config/depstand.m4 b/config/depstand.m4
index 8f936e0..beaf2cc 100644
--- a/config/depstand.m4
+++ b/config/depstand.m4
@@ -1,6 +1,6 @@
## -*- Autoconf -*-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
@@ -132,5 +132,6 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
# As AM_SET_DEPDIR, but also create the directory at config.status time.
AC_DEFUN([ZW_CREATE_DEPDIR],
[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_CONFIG_COMMANDS([depdir], [mkdir $DEPDIR], [DEPDIR=$DEPDIR])
+AC_CONFIG_COMMANDS([depdir], [$SHELL $ac_aux_dir/mkinstalldirs $DEPDIR],
+ [ac_aux_dir=$ac_aux_dir DEPDIR=$DEPDIR])
])
diff --git a/config/tls.m4 b/config/tls.m4
index 41f11ab..c8f3ff0 100644
--- a/config/tls.m4
+++ b/config/tls.m4
@@ -7,16 +7,67 @@ AC_DEFUN([GCC_CHECK_TLS], [
[dnl If the test case passed with dynamic linking, try again with
dnl static linking, but only if static linking is supported (not
dnl on Solaris 10). This fails with some older Red Hat releases.
- save_LDFLAGS="$LDFLAGS"
+ chktls_save_LDFLAGS="$LDFLAGS"
LDFLAGS="-static $LDFLAGS"
AC_LINK_IFELSE([int main() { return 0; }],
AC_RUN_IFELSE([__thread int a; int b; int main() { return a = b; }],
[have_tls=yes], [have_tls=no],[]),
[have_tls=yes])
- LDFLAGS="$save_LDFLAGS"],
+ LDFLAGS="$chktls_save_LDFLAGS"
+ if test $have_tls = yes; then
+ dnl So far, the binutils and the compiler support TLS.
+ dnl Also check whether the libc supports TLS, i.e. whether a variable
+ dnl with __thread linkage has a different address in different threads.
+ dnl First, find the thread_CFLAGS necessary for linking a program that
+ dnl calls pthread_create.
+ chktls_save_CFLAGS="$CFLAGS"
+ thread_CFLAGS=failed
+ for flag in '' '-pthread' '-lpthread'; do
+ CFLAGS="$flag $chktls_save_CFLAGS"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <pthread.h>
+ void *g(void *d) { return NULL; }],
+ [pthread_t t; pthread_create(&t,NULL,g,NULL);])],
+ [thread_CFLAGS="$flag"])
+ if test "X$thread_CFLAGS" != Xfailed; then
+ break
+ fi
+ done
+ CFLAGS="$chktls_save_CFLAGS"
+ if test "X$thread_CFLAGS" != Xfailed; then
+ CFLAGS="$thread_CFLAGS $chktls_save_CFLAGS"
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <pthread.h>
+ __thread int a;
+ static int *a_in_other_thread;
+ static void *
+ thread_func (void *arg)
+ {
+ a_in_other_thread = &a;
+ return (void *)0;
+ }],
+ [pthread_t thread;
+ void *thread_retval;
+ int *a_in_main_thread;
+ if (pthread_create (&thread, (pthread_attr_t *)0,
+ thread_func, (void *)0))
+ return 0;
+ a_in_main_thread = &a;
+ if (pthread_join (thread, &thread_retval))
+ return 0;
+ return (a_in_other_thread == a_in_main_thread);])],
+ [have_tls=yes], [have_tls=no], [])
+ CFLAGS="$chktls_save_CFLAGS"
+ fi
+ fi],
[have_tls=no],
- [AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }],
- [have_tls=yes], [have_tls=no])]
+ [dnl This is the cross-compiling case. Assume libc supports TLS if the
+ dnl binutils and the compiler do.
+ 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,