OSDN Git Service

* configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
authorro@138bc75d-0d04-0410-961f-82ee72b054a4 <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 24 Mar 2010 18:49:49 +0000 (18:49 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 00:34:38 +0000 (09:34 +0900)
and Sun as TLS syntax.
(TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
* configure: Regenerate.
* config.in: Regenerate.
* varasm.c (TLS_SECTION_ASM_FLAG): Define default.
(default_elf_asm_named_section): Use it.
* config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
(i386_output_dwarf_dtprel): Likewise.
(output_addr_const_extra): Likewise.
(output_pic_addr_const): Lowercase @GOTTPOFF.
(output_addr_const_extra): Likewise.
(output_pic_addr_const): Lowercase @GOTNTPOFF.
(output_addr_const_extra): Likewise.
(output_pic_addr_const): Lowercase @INDNTPOFF.
(output_addr_const_extra): Likewise.
(output_pic_addr_const): Lowercase @NTPOFF.
(output_addr_const_extra): Likewise.
(output_pic_addr_const): Lowercase @TPOFF.
(output_addr_const_extra): Likewise.
* config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase
@TLSGD.
(*tls_global_dynamic_64): Likewise.
(*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
(*tls_local_dynamic_base_64): Lowercase @TLSLD.

* defaults.h (TLS_COMMON_ASM_OP): Provide default.
(ASM_OUTPUT_TLS_COMMON): Use it.
* config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.

PR target/38118
* config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to
tm_file.
* config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
* config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
* config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
* config/i386/sol2.h (TARGET_SUN_TLS): Redefine.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157705 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/sol2.h
gcc/config/sol2.h
gcc/configure
gcc/configure.ac
gcc/varasm.c

index 1bbb9d8..bff16dc 100644 (file)
@@ -1,5 +1,46 @@
 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
+       * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
+       and Sun as TLS syntax.
+       (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+       * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
+       (default_elf_asm_named_section): Use it.
+       * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
+       (i386_output_dwarf_dtprel): Likewise.
+       (output_addr_const_extra): Likewise.
+       (output_pic_addr_const): Lowercase @GOTTPOFF.
+       (output_addr_const_extra): Likewise.
+       (output_pic_addr_const): Lowercase @GOTNTPOFF.
+       (output_addr_const_extra): Likewise.
+       (output_pic_addr_const): Lowercase @INDNTPOFF.
+       (output_addr_const_extra): Likewise.
+       (output_pic_addr_const): Lowercase @NTPOFF.
+       (output_addr_const_extra): Likewise.
+       (output_pic_addr_const): Lowercase @TPOFF.
+       (output_addr_const_extra): Likewise.
+       * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase
+       @TLSGD.
+       (*tls_global_dynamic_64): Likewise.
+       (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
+       (*tls_local_dynamic_base_64): Lowercase @TLSLD.
+
+       * defaults.h (TLS_COMMON_ASM_OP): Provide default.
+       (ASM_OUTPUT_TLS_COMMON): Use it.
+       * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
+
+       PR target/38118
+       * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to
+       tm_file.
+       * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
+       * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
+       * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
+       * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
+       (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
+
+2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
        * config/i386/i386.c (override_options): Don't accept
        -mtls-dialect=sun any longer.
        * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
index addaf81..70c8a8f 100644 (file)
@@ -96,6 +96,43 @@ along with GCC; see the file COPYING3.  If not see
 #undef TARGET_SUN_TLS
 #define TARGET_SUN_TLS 1
 
+/* Follow Sun requirements for TLS code sequences and use Sun assembler TLS
+   syntax.  */
+#undef TARGET_SUN_TLS
+#define TARGET_SUN_TLS 1
+
+/* The Sun assembler uses .tcomm for TLS common sections.  */
+#define TLS_COMMON_ASM_OP ".tcomm"
+
+/* Similar to the Sun assembler on SPARC, the native assembler requires
+   TLS objects to be declared as @tls_obj (not @tls_object).  Unlike SPARC,
+   gas doesn't understand this variant.  */
+#ifndef USE_GAS
+#undef  ASM_DECLARE_OBJECT_NAME
+#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL)              \
+  do                                                           \
+    {                                                          \
+      HOST_WIDE_INT size;                                      \
+                                                               \
+      if (targetm.have_tls && DECL_THREAD_LOCAL_P (DECL))      \
+       ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "tls_obj");      \
+      else                                                     \
+       ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object");       \
+                                                               \
+      size_directive_output = 0;                               \
+      if (!flag_inhibit_size_directive                         \
+         && (DECL) && DECL_SIZE (DECL))                        \
+       {                                                       \
+         size_directive_output = 1;                            \
+         size = int_size_in_bytes (TREE_TYPE (DECL));          \
+         ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size);         \
+       }                                                       \
+                                                               \
+      ASM_OUTPUT_LABEL (FILE, NAME);                           \
+    }                                                          \
+  while (0)
+#endif
+
 /* The Solaris assembler cannot grok .stabd directives.  */
 #undef NO_DBX_BNSYM_ENSYM
 #define NO_DBX_BNSYM_ENSYM 1
index 98e54e6..a20c3b9 100644 (file)
@@ -174,16 +174,12 @@ along with GCC; see the file COPYING3.  If not see
 #define LINK_SPEC \
   "%{h*} %{v:-V} \
    %{b} \
-   %{!shared:%{!static:%{rdynamic: " RDYNAMIC_SPEC "}}} \
    %{static:-dn -Bstatic} \
    %{shared:-G -dy %{!mimpure-text:-z text}} \
    %{symbolic:-Bsymbolic -G -dy -z text} \
    %(link_arch) \
    %{Qy:} %{!Qn:-Qy}"
 
-/* With Sun ld, -rdynamic is a no-op.  */
-#define RDYNAMIC_SPEC ""
-
 /* The Solaris linker doesn't understand constructor priorities.  (The
    GNU linker does support constructor priorities, so GNU ld
    configuration files for Solaris override this setting.)  */
@@ -258,10 +254,6 @@ __enable_execute_stack (void *addr)                                        \
   { "init",      0, 0, true,  false,  false, NULL },                   \
   { "fini",      0, 0, true,  false,  false, NULL }
 
-/* Solaris/x86 as and gas support the common ELF .section/.pushsection
-   syntax.  */
-#define PUSHSECTION_FORMAT     "\t.pushsection\t%s\n"
-
 /* This is how to declare the size of a function.  For Solaris, we output
    any .init or .fini entries here.  */
 #undef ASM_DECLARE_FUNCTION_SIZE
@@ -292,11 +284,6 @@ __enable_execute_stack (void *addr)                                        \
     }                                                                  \
   while (0)
 
-#ifndef USE_GAS
-#undef TARGET_ASM_ASSEMBLE_VISIBILITY
-#define TARGET_ASM_ASSEMBLE_VISIBILITY solaris_assemble_visibility
-#endif
-
 extern GTY(()) tree solaris_pending_aligns;
 extern GTY(()) tree solaris_pending_inits;
 extern GTY(()) tree solaris_pending_finis;
index 8013a15..f5cb4fe 100755 (executable)
@@ -671,8 +671,6 @@ subdirs
 slibdir
 dollar
 gcc_tooldir
-LTO_USE_LIBELF
-LTO_BINARY_READER
 enable_lto
 MAINT
 zlibinc
@@ -895,7 +893,6 @@ enable_initfini_array
 enable_sjlj_exceptions
 with_system_libunwind
 enable_secureplt
-enable_leading_mingw64_underscores
 enable_cld
 enable_win32_registry
 enable_static
@@ -903,7 +900,6 @@ with_pic
 enable_fast_install
 enable_libtool_lock
 with_plugin_ld
-enable_comdat
 enable_gnu_unique_object
 enable_linker_build_id
 with_long_double_128
@@ -1593,8 +1589,6 @@ Optional Features:
   --enable-sjlj-exceptions
                           arrange to use setjmp/longjmp exception handling
   --enable-secureplt      enable -msecure-plt by default for PowerPC
-  --enable-leading-mingw64-underscores
-                          Enable leading underscores on 64 bit mingw targets
   --enable-cld            enable -mcld by default for 32bit x86
   --disable-win32-registry
                           disable lookup of installation paths in the
@@ -1608,7 +1602,6 @@ Optional Features:
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
-  --enable-comdat         enable COMDAT group support
   --enable-gnu-unique-object   enable the use of the @gnu_unique_object ELF extension on
                                glibc systems
   --enable-linker-build-id
@@ -8431,59 +8424,6 @@ fi
 done
 
 
-save_CPPFLAGS="$CPPFLAGS"
-save_LIBS="$LIBS"
-LIBS="$LIBS $LIBELFLIBS"
-for ac_func in elf_getshdrstrndx
-do :
-  ac_fn_c_check_func "$LINENO" "elf_getshdrstrndx" "ac_cv_func_elf_getshdrstrndx"
-if test "x$ac_cv_func_elf_getshdrstrndx" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_ELF_GETSHDRSTRNDX 1
-_ACEOF
-
-else
-  for ac_func in elf_getshstrndx
-do :
-  ac_fn_c_check_func "$LINENO" "elf_getshstrndx" "ac_cv_func_elf_getshstrndx"
-if test "x$ac_cv_func_elf_getshstrndx" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_ELF_GETSHSTRNDX 1
-_ACEOF
- if test "$cross_compiling" = yes; then :
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot run test program while cross compiling
-See \`config.log' for more details." "$LINENO" 5; }
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <libelf.h>
-int main()
-{
-  return elf_getshstrndx (NULL, 0) == 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-$as_echo "#define HAVE_ELF_GETSHSTRNDX_GABI 1" >>confdefs.h
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-done
-
-
-fi
-done
-
-LIBS="$save_LIBS"
-CPPFLAGS="$save_CPPFLAGS"
-
 if test x$ac_cv_func_mbstowcs = xyes; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbstowcs works" >&5
 $as_echo_n "checking whether mbstowcs works... " >&6; }
@@ -10688,17 +10628,6 @@ if test "${enable_secureplt+set}" = set; then :
 fi
 
 
-# Check whether --enable-leading-mingw64-underscores was given.
-if test "${enable_leading_mingw64_underscores+set}" = set; then :
-  enableval=$enable_leading_mingw64_underscores;
-fi
-
-if  test x"$enable_leading_mingw64_underscores" = xyes ; then :
-
-$as_echo "#define USE_MINGW64_LEADING_UNDERSCORES 1" >>confdefs.h
-
-fi
-
 # Check whether --enable-cld was given.
 if test "${enable_cld+set}" = set; then :
   enableval=$enable_cld;
@@ -17108,7 +17037,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 17111 "configure"
+#line 17040 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -17214,7 +17143,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 17217 "configure"
+#line 17146 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -20680,19 +20609,6 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-# Check to see if we are using gold instead of ld
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using gold" >&5
-$as_echo_n "checking whether we are using gold... " >&6; }
-ld_is_gold=no
-if test x$gcc_cv_ld != x; then
-  if $gcc_cv_ld --version 2>/dev/null | sed 1q \
-     | grep "GNU gold" > /dev/null; then
-    ld_is_gold=yes
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_is_gold" >&5
-$as_echo "$ld_is_gold" >&6; }
-
 ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld
 
 case "$ORIGINAL_LD_FOR_TARGET" in
@@ -21258,35 +21174,7 @@ foobar:' > conftest.s
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; }
     then
-
-# Solaris 9/x86 as incorrectly emits an alias for a hidden symbol with
-# STV_HIDDEN, so disable .hidden support if so.
-case "${target}" in
-  i?86-*-solaris2*)
-    if test x$gcc_cv_as != x && test x$gcc_cv_objdump != x; then
-      cat > conftest.s <<EOF
-.globl hidden
-        .hidden hidden
-hidden:
-.globl default
-        .set    default,hidden
-EOF
-      if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
-        && $gcc_cv_objdump -t conftest.o 2>/dev/null | \
-        grep '\.hidden default' > /dev/null; then
-        gcc_cv_as_hidden=no
-      else
-        gcc_cv_as_hidden=yes
-      fi
-    else
-      # Assume bug is present if objdump is missing.
-      gcc_cv_as_hidden=no
-    fi
-    ;;
-  *)
-    gcc_cv_as_hidden=yes
-    ;;
-esac
+       gcc_cv_as_hidden=yes
     else
       echo "configure: failed program was" >&5
       cat conftest.s >&5
@@ -21300,36 +21188,13 @@ $as_echo "$gcc_cv_as_hidden" >&6; }
 
 if test $in_tree_ld != yes ; then
   ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q`
-  if test x"$ld_is_gold" = xyes; then
-    gcc_cv_ld_hidden=yes
-  elif echo "$ld_ver" | grep GNU > /dev/null; then
+  if echo "$ld_ver" | grep GNU > /dev/null; then
     ld_vers=`echo $ld_ver | sed -n \
        -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'`
     ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
     ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
     ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
     ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
-  else
-    case "${target}" in
-      *-*-solaris2*)
-       #
-       # Solaris 2 ld -V output looks like this for a regular version:
-       #
-       # ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1699
-       #
-       # but test versions add stuff at the end:
-       #
-       # ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1701:onnv-ab196087-6931056-03/25/10
-       #
-       ld_ver=`$gcc_cv_ld -V 2>&1`
-       if echo "$ld_ver" | grep 'Solaris Link Editors' > /dev/null; then
-         ld_vers=`echo $ld_ver | sed -n \
-           -e 's,^.*: 5\.[0-9][0-9]*-\([0-9]\.[0-9][0-9]*\).*$,\1,p'`
-         ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
-         ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
-       fi
-       ;;
-    esac
   fi
 fi
 
@@ -21371,8 +21236,6 @@ else
        gcc_cv_ld_hidden=yes
        ;;
       *-*-solaris2.9* | *-*-solaris2.1[0-9]*)
-       # Support for .hidden in Sun ld appeared in Solaris 9 FCS, but
-       # .symbolic was only added in Solaris 9 12/02.
         gcc_cv_ld_hidden=yes
        ;;
       *)
 $as_echo "$gcc_cv_as_comdat_group_percent" >&6; }
 
 fi
-if test x"$ld_is_gold" = xyes; then
-  comdat_group=yes
-elif test $in_tree_ld = yes ; then
+if test $in_tree_ld = yes ; then
   comdat_group=no
   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
      && test $in_tree_ld_is_elf = yes; then
      comdat_group=yes
   fi
-elif echo "$ld_ver" | grep GNU > /dev/null; then
+elif test x"$ld_vers" != x; then
   comdat_group=yes
   if test 0"$ld_date" -lt 20050308; then
     if test -n "$ld_date"; then
@@ -21943,32 +21804,9 @@ elif echo "$ld_ver" | grep GNU > /dev/null; then
     fi
   fi
 else
-  case "${target}" in
-    *-*-solaris2.1[1-9]*)
-      # Sun ld has COMDAT group support since Solaris 9, but it doesn't
-      # interoperate with GNU as until Solaris 11 build 130, i.e. ld
-      # version 1.688.
-      #
-      # FIXME: Maybe need to refine later when COMDAT group support with
-      # Sun as is implemented.
-      if test "$ld_vers_major" -gt 1 || test "$ld_vers_minor" -ge 1688; then
-        comdat_group=yes
-      else
-        comdat_group=no
-      fi
-      ;;
-    *)
-      # Assume linkers other than GNU ld don't support COMDAT group.
-      comdat_group=no
-      ;;
-  esac
-fi
-# Allow overriding the automatic COMDAT group tests above.
-# Check whether --enable-comdat was given.
-if test "${enable_comdat+set}" = set; then :
-  enableval=$enable_comdat; comdat_group="$enable_comdat"
+  # assume linkers other than GNU ld don't support COMDAT group
+  comdat_group=no
 fi
-
 if test $comdat_group = no; then
   gcc_cv_as_comdat_group=no
   gcc_cv_as_comdat_group_percent=no
@@ -22109,7 +21947,7 @@ foo:    .long   25
        ;;
   i[34567]86-*-*)
     case "$target" in
-      i[34567]86-*-solaris2.[89]*)
+      i[34567]86-*-solaris2.[56789]*)
        # TLS was introduced in the Solaris 9 4/04 release but
        # we do not enable it by default on Solaris 9 either.
        if test "x$enable_tls" = xyes ; then
@@ -22334,7 +22172,7 @@ foo:    .long   25
        ;;
   sparc*-*-*)
     case "$target" in
-      sparc*-sun-solaris2.[89]*)
+      sparc*-sun-solaris2.[56789]*)
        # TLS was introduced in the Solaris 9 4/04 release but
        # we do not enable it by default on Solaris 9 either.
        if test "x$enable_tls" = xyes ; then
@@ -22719,19 +22557,12 @@ bar:
   test $ac_status = 0; }; }
     then
        if test x$gcc_cv_ld != x \
-       && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
-         if $gcc_cv_ld -v | grep GNU >/dev/null 2>&1; then
-           if test x$gcc_cv_objdump != x; then
-             if $gcc_cv_objdump -s -j .text conftest 2> /dev/null \
-                | grep ' 03000004 82186004 c405c001'> /dev/null 2>&1; then
-              gcc_cv_as_sparc_gotdata_op=no
-             else
-              gcc_cv_as_sparc_gotdata_op=yes
-             fi
-           fi
-         else
-          gcc_cv_as_sparc_gotdata_op=yes
-         fi
+       && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
+       && (test x$gnu_ld_flag = xno \
+           || (test x$gcc_cv_objdump != x \
+               && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \
+                  | grep ' 03000004 82186004 c405c001'> /dev/null 2>&1)); then
+        gcc_cv_as_sparc_gotdata_op=yes
        fi
        rm -f conftest
     else
@@ -22988,48 +22819,6 @@ if test $gcc_cv_as_ix86_pe_secrel32 = yes; then
 $as_echo "#define HAVE_GAS_PE_SECREL32_RELOC 1" >>confdefs.h
 
 fi
-       # Test if the assembler supports the extended form of the .section
-       # directive that specifies section alignment.  LTO support uses this,
-       # but normally only after installation, so we warn but don't fail the
-       # configure if LTO is enabled but the assembler does not support it.
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .section with alignment" >&5
-$as_echo_n "checking assembler for .section with alignment... " >&6; }
-if test "${gcc_cv_as_section_has_align+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  gcc_cv_as_section_has_align=no
-    if test $in_tree_gas = yes; then
-    if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 20 \) \* 1000 + 1`
-  then gcc_cv_as_section_has_align=yes
-fi
-  elif test x$gcc_cv_as != x; then
-    echo '.section lto_test,"dr0"' > conftest.s
-    if { ac_try='$gcc_cv_as $gcc_cv_as_flags -fatal-warnings -o conftest.o conftest.s >&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-    then
-       gcc_cv_as_section_has_align=yes
-    else
-      echo "configure: failed program was" >&5
-      cat conftest.s >&5
-    fi
-    rm -f conftest.o conftest.s
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_section_has_align" >&5
-$as_echo "$gcc_cv_as_section_has_align" >&6; }
-
-       if test x$gcc_cv_as_section_has_align != xyes; then
-         case ",$enable_languages," in
-           *,lto,*)
-             { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LTO for $target requires binutils >= 2.20.1, but version found appears insufficient; LTO will not work until binutils is upgraded." >&5
-$as_echo "$as_me: WARNING: LTO for $target requires binutils >= 2.20.1, but version found appears insufficient; LTO will not work until binutils is upgraded." >&2;}
-             ;;
-         esac
-       fi
        ;;
     esac
 
@@ -23157,37 +22946,6 @@ $as_echo "#define HAVE_AS_IX86_FFREEP 1" >>confdefs.h
 
 fi
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .quad directive" >&5
-$as_echo_n "checking assembler for .quad directive... " >&6; }
-if test "${gcc_cv_as_ix86_quad+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  gcc_cv_as_ix86_quad=no
-  if test x$gcc_cv_as != x; then
-    echo '.quad 0' > conftest.s
-    if { ac_try='$gcc_cv_as $gcc_cv_as_flags  -o conftest.o conftest.s >&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-    then
-       gcc_cv_as_ix86_quad=yes
-    else
-      echo "configure: failed program was" >&5
-      cat conftest.s >&5
-    fi
-    rm -f conftest.o conftest.s
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ix86_quad" >&5
-$as_echo "$gcc_cv_as_ix86_quad" >&6; }
-if test $gcc_cv_as_ix86_quad = yes; then
-
-$as_echo "#define HAVE_AS_IX86_QUAD 1" >>confdefs.h
-
-fi
-
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for sahf mnemonic" >&5
 $as_echo_n "checking assembler for sahf mnemonic... " >&6; }
 if test "${gcc_cv_as_ix86_sahf+set}" = set; then :
@@ -23195,8 +22953,7 @@ if test "${gcc_cv_as_ix86_sahf+set}" = set; then :
 else
   gcc_cv_as_ix86_sahf=no
   if test x$gcc_cv_as != x; then
-    echo '.code64
-       sahf' > conftest.s
+    echo 'sahf' > conftest.s
     if { ac_try='$gcc_cv_as $gcc_cv_as_flags  -o conftest.o conftest.s >&5'
   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
   (eval $ac_try) 2>&5
@@ -23288,7 +23045,7 @@ $as_echo "#define HAVE_AS_IX86_DIFF_SECT_DELTA 1" >>confdefs.h
 
 fi
 
-    # These two are used unconditionally by i386.[ch]; it is to be defined
+    # This one is used unconditionally by i386.[ch]; it is to be defined
     # to 1 if the feature is present, 0 otherwise.
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for GOTOFF in data" >&5
 $as_echo_n "checking assembler for GOTOFF in data... " >&6; }
@@ -23329,40 +23086,6 @@ cat >>confdefs.h <<_ACEOF
 #define HAVE_AS_GOTOFF_IN_DATA `if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`
 _ACEOF
 
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for rep and lock prefix" >&5
-$as_echo_n "checking assembler for rep and lock prefix... " >&6; }
-if test "${gcc_cv_as_ix86_rep_lock_prefix+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  gcc_cv_as_ix86_rep_lock_prefix=no
-  if test x$gcc_cv_as != x; then
-    echo 'rep movsl
-        lock orl $0, (%esp)' > conftest.s
-    if { ac_try='$gcc_cv_as $gcc_cv_as_flags  -o conftest.o conftest.s >&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-    then
-       gcc_cv_as_ix86_rep_lock_prefix=yes
-    else
-      echo "configure: failed program was" >&5
-      cat conftest.s >&5
-    fi
-    rm -f conftest.o conftest.s
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ix86_rep_lock_prefix" >&5
-$as_echo "$gcc_cv_as_ix86_rep_lock_prefix" >&6; }
-
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_AS_IX86_REP_LOCK_PREFIX `if test $gcc_cv_as_ix86_rep_lock_prefix = yes; then echo 1; else echo 0; fi`
-_ACEOF
-
-
     ;;
 
   ia64*-*-*)
@@ -24717,8 +24440,7 @@ EOF
     if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
         | grep "gc-sections option ignored" > /dev/null; then
       gcc_cv_ld_eh_gc_sections=no
-    elif $gcc_cv_objdump -h conftest 2> /dev/null \
-         | grep gcc_except_table > /dev/null; then
+    elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
       gcc_cv_ld_eh_gc_sections=yes
       # If no COMDAT groups, the compiler will emit .gnu.linkonce.t. sections.
       if test x$gcc_cv_as_comdat_group != xyes; then
@@ -24745,8 +24467,7 @@ EOF
          if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
               | grep "gc-sections option ignored" > /dev/null; then
            gcc_cv_ld_eh_gc_sections=no
-         elif $gcc_cv_objdump -h conftest 2> /dev/null \
-              | grep gcc_except_table > /dev/null; then
+         elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
            gcc_cv_ld_eh_gc_sections=yes
          fi
        fi
@@ -25234,17 +24955,6 @@ $as_echo "#define ENABLE_LTO 1" >>confdefs.h
 
                    enable_lto=yes
 
-                   # LTO needs to speak the platform's object file format, and has a
-                   # number of implementations of the required binary file access APIs.
-                   # ELF is the most common, and default.  We only link libelf if ELF
-                   # is indeed the selected format.
-                   LTO_BINARY_READER=${lto_binary_reader}
-                   LTO_USE_LIBELF=-lelf
-                   if test "x$lto_binary_reader" != "xlto-elf" ; then
-                     LTO_USE_LIBELF=
-                   fi
-
-
                    ;;
                *) ;;
        esac
 pluginlibs=
 if test x"$enable_plugin" = x"yes"; then
 
-  case "${host}" in
-    *-*-darwin*)
-      export_sym_check="$gcc_cv_nm -g"
-    ;;
-    *)
-      export_sym_check="$gcc_cv_objdump -T"
-    ;;
-  esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exported symbols" >&5
 $as_echo_n "checking for exported symbols... " >&6; }
   echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
   ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1
-  if $export_sym_check conftest | grep foobar > /dev/null; then
+  if $gcc_cv_objdump -T conftest | grep foobar > /dev/null; then
     : # No need to use a flag
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -rdynamic" >&5
 $as_echo_n "checking for -rdynamic... " >&6; }
     ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
-    if $export_sym_check conftest | grep foobar > /dev/null; then
-      plugin_rdynamic=yes
+    if $gcc_cv_objdump -T conftest | grep foobar > /dev/null; then
       pluginlibs="-rdynamic"
     else
-      plugin_rdynamic=no
       enable_plugin=no
     fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_rdynamic" >&5
-$as_echo "$plugin_rdynamic" >&6; }
   fi
 
   # Check -ldl
 
   # Check that we can build shared objects with -fPIC -shared
   saved_LDFLAGS="$LDFLAGS"
-  case "${host}" in
-    *-*-darwin*)
-      LDFLAGS="$LDFLAGS -fPIC -shared -undefined dynamic_lookup"
-    ;;
-    *)
-      LDFLAGS="$LDFLAGS -fPIC -shared"
-    ;;
-  esac
+  LDFLAGS="$LDFLAGS -fPIC -shared"
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fPIC -shared" >&5
 $as_echo_n "checking for -fPIC -shared... " >&6; }
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
index a80900c..6eee49b 100644 (file)
@@ -1024,22 +1024,6 @@ AC_CHECK_FUNCS(times clock kill getrlimit setrlimit atoll atoq \
        gettimeofday mbstowcs wcswidth mmap mincore setlocale \
        gcc_UNLOCKED_FUNCS)
 
-save_CPPFLAGS="$CPPFLAGS"
-save_LIBS="$LIBS"
-LIBS="$LIBS $LIBELFLIBS"
-AC_CHECK_FUNCS(elf_getshdrstrndx,,
-  [AC_CHECK_FUNCS(elf_getshstrndx,
-    [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h>
-#include <libelf.h>
-int main()
-{
-  return elf_getshstrndx (NULL, 0) == 0;
-}]])], AC_DEFINE(HAVE_ELF_GETSHSTRNDX_GABI, 1,
-        [Define if elf_getshstrndx has gABI conformant return values.]))])]
-  )
-LIBS="$save_LIBS"
-CPPFLAGS="$save_CPPFLAGS"
-
 if test x$ac_cv_func_mbstowcs = xyes; then
   AC_CACHE_CHECK(whether mbstowcs works, gcc_cv_func_mbstowcs_works,
 [    AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h>
@@ -1568,14 +1552,6 @@ AC_ARG_ENABLE(secureplt,
 [  --enable-secureplt      enable -msecure-plt by default for PowerPC],
 [], [])
 
-AC_ARG_ENABLE(leading-mingw64-underscores,
-  AS_HELP_STRING([--enable-leading-mingw64-underscores],
-                 [Enable leading underscores on 64 bit mingw targets]),
-  [],[])
-AS_IF([ test x"$enable_leading_mingw64_underscores" = xyes ],
-  [AC_DEFINE(USE_MINGW64_LEADING_UNDERSCORES, 1,
-    [Define if we should use leading underscore on 64 bit mingw targets])])
-
 AC_ARG_ENABLE(cld,
 [  --enable-cld            enable -mcld by default for 32bit x86], [],
 [enable_cld=no])
@@ -1958,17 +1934,6 @@ AC_ARG_WITH(plugin-ld,
 AC_SUBST(ORIGINAL_PLUGIN_LD_FOR_TARGET)
 AC_DEFINE_UNQUOTED(PLUGIN_LD, "$PLUGIN_LD", [Specify plugin linker])
 
-# Check to see if we are using gold instead of ld
-AC_MSG_CHECKING(whether we are using gold)
-ld_is_gold=no
-if test x$gcc_cv_ld != x; then
-  if $gcc_cv_ld --version 2>/dev/null | sed 1q \
-     | grep "GNU gold" > /dev/null; then
-    ld_is_gold=yes
-  fi
-fi
-AC_MSG_RESULT($ld_is_gold)
-
 ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld
 AC_SUBST(ORIGINAL_LD_FOR_TARGET)
 case "$ORIGINAL_LD_FOR_TARGET" in
@@ -2152,69 +2117,18 @@ gcc_GAS_CHECK_FEATURE([.nsubspa comdat], gcc_cv_as_nsubspa_comdat,
 gcc_GAS_CHECK_FEATURE([.hidden], gcc_cv_as_hidden,
  [elf,2,13,0],,
 [      .hidden foobar
-foobar:],[
-# Solaris 9/x86 as incorrectly emits an alias for a hidden symbol with
-# STV_HIDDEN, so disable .hidden support if so.
-case "${target}" in
-  i?86-*-solaris2*)
-    if test x$gcc_cv_as != x && test x$gcc_cv_objdump != x; then
-      cat > conftest.s <<EOF
-.globl hidden
-        .hidden hidden
-hidden:
-.globl default
-        .set    default,hidden
-EOF
-      if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
-        && $gcc_cv_objdump -t conftest.o 2>/dev/null | \
-        grep '\.hidden default' > /dev/null; then
-        gcc_cv_as_hidden=no
-      else
-        gcc_cv_as_hidden=yes
-      fi
-    else
-      # Assume bug is present if objdump is missing.
-      gcc_cv_as_hidden=no
-    fi
-    ;;
-  *)
-    gcc_cv_as_hidden=yes
-    ;;
-esac])
+foobar:])
 
 changequote(,)dnl
 if test $in_tree_ld != yes ; then
   ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q`
-  if test x"$ld_is_gold" = xyes; then
-    gcc_cv_ld_hidden=yes
-  elif echo "$ld_ver" | grep GNU > /dev/null; then
+  if echo "$ld_ver" | grep GNU > /dev/null; then
     ld_vers=`echo $ld_ver | sed -n \
        -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'`
     ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
     ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
     ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
     ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
-  else
-    case "${target}" in
-      *-*-solaris2*)
-       #
-       # Solaris 2 ld -V output looks like this for a regular version:
-       #
-       # ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1699
-       #
-       # but test versions add stuff at the end:
-       #
-       # ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1701:onnv-ab196087-6931056-03/25/10
-       #
-       ld_ver=`$gcc_cv_ld -V 2>&1`
-       if echo "$ld_ver" | grep 'Solaris Link Editors' > /dev/null; then
-         ld_vers=`echo $ld_ver | sed -n \
-           -e 's,^.*: 5\.[0-9][0-9]*-\([0-9]\.[0-9][0-9]*\).*$,\1,p'`
-         ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
-         ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
-       fi
-       ;;
-    esac
   fi
 fi
 changequote([,])dnl
@@ -2253,8 +2167,6 @@ else
        gcc_cv_ld_hidden=yes
        ;;
       *-*-solaris2.9* | *-*-solaris2.1[0-9]*)
-       # Support for .hidden in Sun ld appeared in Solaris 9 FCS, but
-       # .symbolic was only added in Solaris 9 12/02.
         gcc_cv_ld_hidden=yes
        ;;
       *)
@@ -2529,15 +2441,13 @@ else
    [elf,2,16,0], [--fatal-warnings],
    [.section .text,"axG",%progbits,.foo,comdat])
 fi
-if test x"$ld_is_gold" = xyes; then
-  comdat_group=yes
-elif test $in_tree_ld = yes ; then
+if test $in_tree_ld = yes ; then
   comdat_group=no
   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
      && test $in_tree_ld_is_elf = yes; then
      comdat_group=yes
   fi
-elif echo "$ld_ver" | grep GNU > /dev/null; then
+elif test x"$ld_vers" != x; then
   comdat_group=yes
   if test 0"$ld_date" -lt 20050308; then
     if test -n "$ld_date"; then
@@ -2550,32 +2460,9 @@ elif echo "$ld_ver" | grep GNU > /dev/null; then
     fi
   fi
 else
-changequote(,)dnl
-  case "${target}" in
-    *-*-solaris2.1[1-9]*)
-      # Sun ld has COMDAT group support since Solaris 9, but it doesn't
-      # interoperate with GNU as until Solaris 11 build 130, i.e. ld
-      # version 1.688.
-      #
-      # FIXME: Maybe need to refine later when COMDAT group support with
-      # Sun as is implemented.
-      if test "$ld_vers_major" -gt 1 || test "$ld_vers_minor" -ge 1688; then
-        comdat_group=yes
-      else
-        comdat_group=no
-      fi
-      ;;
-    *)
-      # Assume linkers other than GNU ld don't support COMDAT group.
-      comdat_group=no
-      ;;
-  esac
-changequote([,])dnl
+  # assume linkers other than GNU ld don't support COMDAT group
+  comdat_group=no
 fi
-# Allow overriding the automatic COMDAT group tests above.
-AC_ARG_ENABLE(comdat,
-  [AS_HELP_STRING([--enable-comdat], [enable COMDAT group support])],
-  [comdat_group="$enable_comdat"])
 if test $comdat_group = no; then
   gcc_cv_as_comdat_group=no
   gcc_cv_as_comdat_group_percent=no
@@ -2687,7 +2574,7 @@ foo:      .long   25
        ;;
   i[34567]86-*-*)
     case "$target" in
-      i[34567]86-*-solaris2.[89]*)
+      i[34567]86-*-solaris2.[56789]*)
        # TLS was introduced in the Solaris 9 4/04 release but
        # we do not enable it by default on Solaris 9 either.
        if test "x$enable_tls" = xyes ; then
@@ -2913,7 +2800,7 @@ foo:      .long   25
        ;;
   sparc*-*-*)
     case "$target" in
-      sparc*-sun-solaris2.[89]*)
+      sparc*-sun-solaris2.[56789]*)
        # TLS was introduced in the Solaris 9 4/04 release but
        # we do not enable it by default on Solaris 9 either.
        if test "x$enable_tls" = xyes ; then
@@ -3113,19 +3000,12 @@ bar:
        xor    %g1, %gdop_lox10(foo), %g1
        ld    [[%l7 + %g1]], %g2, %gdop(foo)],
       [if test x$gcc_cv_ld != x \
-       && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
-         if $gcc_cv_ld -v | grep GNU >/dev/null 2>&1; then
-           if test x$gcc_cv_objdump != x; then
-             if $gcc_cv_objdump -s -j .text conftest 2> /dev/null \
-                | grep ' 03000004 82186004 c405c001'> /dev/null 2>&1; then
-              gcc_cv_as_sparc_gotdata_op=no
-             else
-              gcc_cv_as_sparc_gotdata_op=yes
-             fi
-           fi
-         else
-          gcc_cv_as_sparc_gotdata_op=yes
-         fi
+       && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
+       && (test x$gnu_ld_flag = xno \
+           || (test x$gcc_cv_objdump != x \
+               && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \
+                  | grep ' 03000004 82186004 c405c001'> /dev/null 2>&1)); then
+        gcc_cv_as_sparc_gotdata_op=yes
        fi
        rm -f conftest],
       [AC_DEFINE(HAVE_AS_SPARC_GOTDATA_OP, 1,
@@ -3240,19 +3120,6 @@ foo:     nop
           rm -f conftest],
          [AC_DEFINE(HAVE_GAS_PE_SECREL32_RELOC, 1,
            [Define if your assembler and linker support 32-bit section relative relocs via '.secrel32 label'.])])
-       # Test if the assembler supports the extended form of the .section
-       # directive that specifies section alignment.  LTO support uses this,
-       # but normally only after installation, so we warn but don't fail the
-       # configure if LTO is enabled but the assembler does not support it.
-       gcc_GAS_CHECK_FEATURE([.section with alignment], gcc_cv_as_section_has_align,
-         [2,20,1],-fatal-warnings,[.section lto_test,"dr0"])
-       if test x$gcc_cv_as_section_has_align != xyes; then
-         case ",$enable_languages," in
-           *,lto,*)
-             AC_MSG_WARN([LTO for $target requires binutils >= 2.20.1, but version found appears insufficient; LTO will not work until binutils is upgraded.])
-             ;;
-         esac
-       fi
        ;;
     esac
 
@@ -3280,18 +3147,11 @@ foo:    nop
       [AC_DEFINE(HAVE_AS_IX86_FFREEP, 1,
         [Define if your assembler supports the ffreep mnemonic.])])
 
-    gcc_GAS_CHECK_FEATURE([.quad directive],
-      gcc_cv_as_ix86_quad,,,
-      [.quad 0],,
-      [AC_DEFINE(HAVE_AS_IX86_QUAD, 1,
-        [Define if your assembler supports the .quad directive.])])
-
     gcc_GAS_CHECK_FEATURE([sahf mnemonic],
       gcc_cv_as_ix86_sahf,,,
-      [.code64
-       sahf],,
+      [sahf],,
       [AC_DEFINE(HAVE_AS_IX86_SAHF, 1,
-        [Define if your assembler supports the sahf mnemonic in 64bit mode.])])
+        [Define if your assembler supports the sahf mnemonic.])])
 
     gcc_GAS_CHECK_FEATURE([swap suffix],
       gcc_cv_as_ix86_swap,,,
@@ -3311,7 +3171,7 @@ foo:      nop
       [AC_DEFINE(HAVE_AS_IX86_DIFF_SECT_DELTA, 1,
         [Define if your assembler supports the subtraction of symbols in different sections.])])
 
-    # These two are used unconditionally by i386.[ch]; it is to be defined
+    # This one is used unconditionally by i386.[ch]; it is to be defined
     # to 1 if the feature is present, 0 otherwise.
     gcc_GAS_CHECK_FEATURE([GOTOFF in data],
         gcc_cv_as_ix86_gotoff_in_data, [2,11,0],,
@@ -3323,15 +3183,6 @@ foo:     nop
     AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
       [`if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
       [Define true if the assembler supports '.long foo@GOTOFF'.])
-
-    gcc_GAS_CHECK_FEATURE([rep and lock prefix],
-        gcc_cv_as_ix86_rep_lock_prefix,,,
-       [rep movsl
-        lock orl $0, (%esp)])
-    AC_DEFINE_UNQUOTED(HAVE_AS_IX86_REP_LOCK_PREFIX,
-      [`if test $gcc_cv_as_ix86_rep_lock_prefix = yes; then echo 1; else echo 0; fi`],
-      [Define true if the assembler supports 'rep <insn>, lock <insn>'.])
-
     ;;
 
   ia64*-*-*)
@@ -3883,8 +3734,7 @@ EOF
     if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
         | grep "gc-sections option ignored" > /dev/null; then
       gcc_cv_ld_eh_gc_sections=no
-    elif $gcc_cv_objdump -h conftest 2> /dev/null \
-         | grep gcc_except_table > /dev/null; then
+    elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
       gcc_cv_ld_eh_gc_sections=yes
       # If no COMDAT groups, the compiler will emit .gnu.linkonce.t. sections.
       if test x$gcc_cv_as_comdat_group != xyes; then
@@ -3911,8 +3761,7 @@ EOF
          if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
               | grep "gc-sections option ignored" > /dev/null; then
            gcc_cv_ld_eh_gc_sections=no
-         elif $gcc_cv_objdump -h conftest 2> /dev/null \
-              | grep gcc_except_table > /dev/null; then
+         elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
            gcc_cv_ld_eh_gc_sections=yes
          fi
        fi
@@ -4339,17 +4188,6 @@ changequote([,])dnl
                    AC_DEFINE(ENABLE_LTO, 1, [Define to enable LTO support.])
                    enable_lto=yes
                    AC_SUBST(enable_lto)
-                   # LTO needs to speak the platform's object file format, and has a
-                   # number of implementations of the required binary file access APIs.
-                   # ELF is the most common, and default.  We only link libelf if ELF
-                   # is indeed the selected format.
-                   LTO_BINARY_READER=${lto_binary_reader}
-                   LTO_USE_LIBELF=-lelf
-                   if test "x$lto_binary_reader" != "xlto-elf" ; then
-                     LTO_USE_LIBELF=
-                   fi
-                   AC_SUBST(LTO_BINARY_READER)
-                   AC_SUBST(LTO_USE_LIBELF)
                    ;;
                *) ;;
        esac
@@ -4536,30 +4374,19 @@ enable_plugin=yes; default_plugin=yes)
 pluginlibs=
 if test x"$enable_plugin" = x"yes"; then
 
-  case "${host}" in
-    *-*-darwin*)
-      export_sym_check="$gcc_cv_nm -g"
-    ;;
-    *)
-      export_sym_check="$gcc_cv_objdump -T"
-    ;;
-  esac
   AC_MSG_CHECKING([for exported symbols])
   echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
   ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1
-  if $export_sym_check conftest | grep foobar > /dev/null; then
+  if $gcc_cv_objdump -T conftest | grep foobar > /dev/null; then
     : # No need to use a flag
   else
     AC_MSG_CHECKING([for -rdynamic])
     ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
-    if $export_sym_check conftest | grep foobar > /dev/null; then
-      plugin_rdynamic=yes
+    if $gcc_cv_objdump -T conftest | grep foobar > /dev/null; then
       pluginlibs="-rdynamic"
     else
-      plugin_rdynamic=no
       enable_plugin=no
     fi
-    AC_MSG_RESULT([$plugin_rdynamic])
   fi
 
   # Check -ldl
@@ -4572,14 +4399,7 @@ if test x"$enable_plugin" = x"yes"; then
 
   # Check that we can build shared objects with -fPIC -shared
   saved_LDFLAGS="$LDFLAGS"
-  case "${host}" in
-    *-*-darwin*)
-      LDFLAGS="$LDFLAGS -fPIC -shared -undefined dynamic_lookup"
-    ;;
-    *)
-      LDFLAGS="$LDFLAGS -fPIC -shared"
-    ;;
-  esac
+  LDFLAGS="$LDFLAGS -fPIC -shared"
   AC_MSG_CHECKING([for -fPIC -shared])
   AC_TRY_LINK(
     [extern int X;],[return X == 0;],
index 424d704..ba4e612 100644 (file)
@@ -6067,6 +6067,10 @@ default_no_named_section (const char *name ATTRIBUTE_UNUSED,
   gcc_unreachable ();
 }
 
+#ifndef TLS_SECTION_ASM_FLAG
+#define TLS_SECTION_ASM_FLAG 'T'
+#endif
+
 void
 default_elf_asm_named_section (const char *name, unsigned int flags,
                               tree decl ATTRIBUTE_UNUSED)
@@ -6097,7 +6101,7 @@ default_elf_asm_named_section (const char *name, unsigned int flags,
   if (flags & SECTION_STRINGS)
     *f++ = 'S';
   if (flags & SECTION_TLS)
-    *f++ = 'T';
+    *f++ = TLS_SECTION_ASM_FLAG;
   if (HAVE_COMDAT_GROUP && (flags & SECTION_LINKONCE))
     *f++ = 'G';
   *f = '\0';