From e6659c00292afe653a90da2ea3f4af4e4eb09513 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 9 Feb 2007 19:24:42 +0000 Subject: [PATCH] 2007-02-09 Paolo Bonzini * Makefile.def: Sync with GCC. * Makefile.tpl: Sync with GCC. * Makefile.in: Regenerate. * configure: Regenerate. * config/acx.m4: Sync with GCC. * config/depstand.m4: Sync with GCC. * config/tls.m4: Sync with GCC. --- ChangeLog | 7 ++++ Makefile.def | 2 + Makefile.in | 9 ++++- Makefile.tpl | 5 ++- config/ChangeLog | 22 ++++++++++- config/acx.m4 | 36 +++++++++++++++++- config/depstand.m4 | 5 ++- config/tls.m4 | 59 ++++++++++++++++++++++++++++-- configure | 91 +++++++++++++++++++++++++++++++++++++++++++--- configure.ac | 5 +-- 10 files changed, 218 insertions(+), 23 deletions(-) diff --git a/ChangeLog b/ChangeLog index fdcbf256a..8950c8fa3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-02-09 Paolo Bonzini + + * Makefile.def: Sync with GCC. + * Makefile.tpl: Sync with GCC. + * Makefile.in: Regenerate. + * configure: Regenerate. + 2007-02-09 Daniel Jacobowitz * Makefile.tpl (build_alias, host_alias, target_alias): Use diff --git a/Makefile.def b/Makefile.def index da5394fd0..33d4464d2 100644 --- a/Makefile.def +++ b/Makefile.def @@ -237,6 +237,8 @@ flags_to_pass = { flag= LIBCXXFLAGS ; }; flags_to_pass = { flag= STAGE1_CFLAGS ; }; flags_to_pass = { flag= STAGE1_CHECKING ; }; flags_to_pass = { flag= STAGE1_LANGUAGES ; }; +flags_to_pass = { flag= GNATBIND ; }; +flags_to_pass = { flag= GNATMAKE ; }; // Target tools flags_to_pass = { flag= AR_FOR_TARGET ; }; diff --git a/Makefile.in b/Makefile.in index 77fea1bf4..23e647678 100644 --- a/Makefile.in +++ b/Makefile.in @@ -296,6 +296,9 @@ RANLIB = @RANLIB@ STRIP = @STRIP@ WINDRES = @WINDRES@ +GNATBIND = @GNATBIND@ +GNATMAKE = @GNATMAKE@ + CFLAGS = @CFLAGS@ LDFLAGS = @LDFLAGS@ LIBCFLAGS = $(CFLAGS) @@ -482,6 +485,8 @@ BASE_FLAGS_TO_PASS = \ "STAGE1_CFLAGS=$(STAGE1_CFLAGS)" \ "STAGE1_CHECKING=$(STAGE1_CHECKING)" \ "STAGE1_LANGUAGES=$(STAGE1_LANGUAGES)" \ + "GNATBIND=$(GNATBIND)" \ + "GNATMAKE=$(GNATMAKE)" \ "AR_FOR_TARGET=$(AR_FOR_TARGET)" \ "AS_FOR_TARGET=$(AS_FOR_TARGET)" \ "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ @@ -544,7 +549,7 @@ X11_FLAGS_TO_PASS = \ POSTSTAGE1_FLAGS_TO_PASS = \ CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \ - STAGE_PREFIX="$$r/$(HOST_SUBDIR)/prev-gcc/" \ + GNATBIND="$$r/$(HOST_SUBDIR)/prev-gcc/gnatbind" \ CFLAGS="$(BOOT_CFLAGS)" \ LIBCFLAGS="$(BOOT_CFLAGS)" \ LDFLAGS="$(BOOT_LDFLAGS)" \ @@ -46569,7 +46574,7 @@ config.status: configure # Rebuilding configure. AUTOCONF = autoconf -$(srcdir)/configure: @MAINT@ $(srcdir)/configure.in $(srcdir)/config/acx.m4 +$(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(srcdir)/config/acx.m4 cd $(srcdir) && $(AUTOCONF) # ------------------------------ diff --git a/Makefile.tpl b/Makefile.tpl index cb9bac2c6..a3c5093b1 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -299,6 +299,9 @@ RANLIB = @RANLIB@ STRIP = @STRIP@ WINDRES = @WINDRES@ +GNATBIND = @GNATBIND@ +GNATMAKE = @GNATMAKE@ + CFLAGS = @CFLAGS@ LDFLAGS = @LDFLAGS@ LIBCFLAGS = $(CFLAGS) @@ -451,7 +454,7 @@ X11_FLAGS_TO_PASS = \ POSTSTAGE1_FLAGS_TO_PASS = \ CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \ - STAGE_PREFIX="$$r/$(HOST_SUBDIR)/prev-gcc/" \ + GNATBIND="$$r/$(HOST_SUBDIR)/prev-gcc/gnatbind" \ CFLAGS="$(BOOT_CFLAGS)" \ LIBCFLAGS="$(BOOT_CFLAGS)" \ LDFLAGS="$(BOOT_LDFLAGS)" \ diff --git a/config/ChangeLog b/config/ChangeLog index 99107af4e..aee290ada 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 +2007-02-07 Bruno Haible - * 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 + + PR libgomp/30546 + * acx.m4 (ACX_PROG_CHECK_VER): Locate a program and check that its + version is acceptable. + +2007-01-27 Paolo Bonzini + + * depstand.m4 (ZW_CREATE_DEPDIR): Use mkinstalldirs to make + directory. + +2007-01-23 Richard Guenther + + PR bootstrap/30541 + * config/acx.m4 (ACX_PROG_GNAT): Check for gnatmake. 2007-01-14 H.J. Lu diff --git a/config/acx.m4 b/config/acx.m4 index 5712ab21a..107fd765c 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 <&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 8f936e0c2..beaf2cc7b 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 41f11ab3e..c8f3ff0a3 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 + 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 + __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, diff --git a/configure b/configure index 278bfc2dd..d127a9b44 100755 --- a/configure +++ b/configure @@ -272,7 +272,7 @@ PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="move-if-change" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S TOPLEVEL_CONFIGURE_ARGUMENTS build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT GNATBIND ac_ct_GNATBIND do_compare gmplibs gmpinc stage1_languages SYSROOT_CFLAGS_FOR_TARGET RPATH_ENVVAR tooldir build_tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs CC_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES OBJCOPY OBJDUMP CXX CFLAGS_FOR_BUILD CXXFLAGS CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag datarootdir docdir htmldir LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S TOPLEVEL_CONFIGURE_ARGUMENTS build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE do_compare gmplibs gmpinc stage1_languages SYSROOT_CFLAGS_FOR_TARGET RPATH_ENVVAR tooldir build_tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs CC_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES OBJCOPY OBJDUMP CXX CFLAGS_FOR_BUILD CXXFLAGS CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag datarootdir docdir htmldir LIBOBJS LTLIBOBJS' ac_subst_files='serialization_dependencies host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag' # Initialize some variables set by options. @@ -3642,6 +3642,86 @@ else GNATBIND="$ac_cv_prog_GNATBIND" fi +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gnatmake", so it can be a program name with args. +set dummy ${ac_tool_prefix}gnatmake; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_GNATMAKE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$GNATMAKE"; then + ac_cv_prog_GNATMAKE="$GNATMAKE" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_GNATMAKE="${ac_tool_prefix}gnatmake" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +GNATMAKE=$ac_cv_prog_GNATMAKE +if test -n "$GNATMAKE"; then + echo "$as_me:$LINENO: result: $GNATMAKE" >&5 +echo "${ECHO_T}$GNATMAKE" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_GNATMAKE"; then + ac_ct_GNATMAKE=$GNATMAKE + # Extract the first word of "gnatmake", so it can be a program name with args. +set dummy gnatmake; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_GNATMAKE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_GNATMAKE"; then + ac_cv_prog_ac_ct_GNATMAKE="$ac_ct_GNATMAKE" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_GNATMAKE="gnatmake" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_GNATMAKE" && ac_cv_prog_ac_ct_GNATMAKE="no" +fi +fi +ac_ct_GNATMAKE=$ac_cv_prog_ac_ct_GNATMAKE +if test -n "$ac_ct_GNATMAKE"; then + echo "$as_me:$LINENO: result: $ac_ct_GNATMAKE" >&5 +echo "${ECHO_T}$ac_ct_GNATMAKE" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + GNATMAKE=$ac_ct_GNATMAKE +else + GNATMAKE="$ac_cv_prog_GNATMAKE" +fi + echo "$as_me:$LINENO: checking whether compiler driver understands Ada" >&5 echo $ECHO_N "checking whether compiler driver understands Ada... $ECHO_C" >&6 if test "${acx_cv_cc_gcc_supports_ada+set}" = set; then @@ -3668,7 +3748,7 @@ fi echo "$as_me:$LINENO: result: $acx_cv_cc_gcc_supports_ada" >&5 echo "${ECHO_T}$acx_cv_cc_gcc_supports_ada" >&6 -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 @@ -5164,9 +5244,6 @@ case "${target}" in FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys' fi ;; -esac - -case $target in mep*) FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary" ;; @@ -9671,7 +9748,7 @@ if test "${enable_werror+set}" = set; then enableval="$enable_werror" else - if test -d gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then + if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then enable_werror=yes else enable_werror=no @@ -10385,6 +10462,8 @@ s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@GNATBIND@,$GNATBIND,;t t s,@ac_ct_GNATBIND@,$ac_ct_GNATBIND,;t t +s,@GNATMAKE@,$GNATMAKE,;t t +s,@ac_ct_GNATMAKE@,$ac_ct_GNATMAKE,;t t s,@do_compare@,$do_compare,;t t s,@gmplibs@,$gmplibs,;t t s,@gmpinc@,$gmpinc,;t t diff --git a/configure.ac b/configure.ac index 87b47f8b7..61cc70077 100644 --- a/configure.ac +++ b/configure.ac @@ -2325,9 +2325,6 @@ case "${target}" in FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys' fi ;; -esac - -case $target in mep*) FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary" ;; @@ -2600,7 +2597,7 @@ AC_SUBST(stage1_checking) # Enable -Werror in bootstrap stage2 and later. AC_ARG_ENABLE(werror, [ --enable-werror enable -Werror in bootstrap stage2 and later], [], -[if test -d gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then +[if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then enable_werror=yes else enable_werror=no