Set SECTION_EXCLUDE flag for LTO sections.
authorIlya Verbin <ilya.verbin@intel.com>
Sun, 19 Oct 2014 19:40:59 +0000 (19:40 +0000)
committerIlya Verbin <iverbin@gcc.gnu.org>
Sun, 19 Oct 2014 19:40:59 +0000 (19:40 +0000)
gcc/
* configure: Regenerate.
* configure.ac: Move the test for section attribute specifier "e" in GAS
out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
* langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
* varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
ifdef HAVE_GAS_SECTION_EXCLUDE.

From-SVN: r216442

gcc/ChangeLog
gcc/configure
gcc/configure.ac
gcc/langhooks.c
gcc/varasm.c

index bee63fe9710f1212e53f59b4b58cb2d4ba85f53b..ca2cb0c01cd6bf2af629d98684be727d36eb8106 100644 (file)
@@ -1,3 +1,12 @@
+2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
+
+       * configure: Regenerate.
+       * configure.ac: Move the test for section attribute specifier "e" in GAS
+       out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
+       * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
+       * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
+       ifdef HAVE_GAS_SECTION_EXCLUDE.
+
 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
 
        * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
index bd1215d1fbf422fdd2f23da3c8f0dade28427ef1..16f128f6a3131136b897112fff2ae223eae6a3d1 100755 (executable)
@@ -24676,9 +24676,12 @@ $as_echo "$as_me: WARNING: LTO for $target requires binutils >= 2.20.1, but vers
              ;;
          esac
        fi
-       # Test if the assembler supports the section flag 'e' for specifying
-       # an excluded section.
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .section with e" >&5
+       ;;
+    esac
+
+    # Test if the assembler supports the section flag 'e' for specifying
+    # an excluded section.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .section with e" >&5
 $as_echo_n "checking assembler for .section with e... " >&6; }
 if test "${gcc_cv_as_section_has_e+set}" = set; then :
   $as_echo_n "(cached) " >&6
@@ -24691,7 +24694,7 @@ fi
   elif test x$gcc_cv_as != x; then
     $as_echo '.section foo1,"e"
 .byte 0,0,0,0' > conftest.s
-    if { ac_try='$gcc_cv_as $gcc_cv_as_flags  -o conftest.o conftest.s >&5'
+    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=$?
@@ -24714,8 +24717,6 @@ cat >>confdefs.h <<_ACEOF
 #define HAVE_GAS_SECTION_EXCLUDE `if test $gcc_cv_as_section_has_e = yes; then echo 1; else echo 0; fi`
 _ACEOF
 
-       ;;
-    esac
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for filds and fists mnemonics" >&5
 $as_echo_n "checking assembler for filds and fists mnemonics... " >&6; }
index 8f7c814b48360f74ef61455bbcc45d8408977290..35ce9eeb45ace52ff3182e97a0308687d85a5dcd 100644 (file)
@@ -3799,18 +3799,19 @@ foo:    nop
              ;;
          esac
        fi
-       # Test if the assembler supports the section flag 'e' for specifying
-       # an excluded section.
-       gcc_GAS_CHECK_FEATURE([.section with e], gcc_cv_as_section_has_e,
-         [2,22,51],,
-[.section foo1,"e"
-.byte 0,0,0,0])
-       AC_DEFINE_UNQUOTED(HAVE_GAS_SECTION_EXCLUDE,
-         [`if test $gcc_cv_as_section_has_e = yes; then echo 1; else echo 0; fi`],
-          [Define if your assembler supports specifying the section flag e.])
        ;;
     esac
 
+    # Test if the assembler supports the section flag 'e' for specifying
+    # an excluded section.
+    gcc_GAS_CHECK_FEATURE([.section with e], gcc_cv_as_section_has_e,
+      [2,22,51], [--fatal-warnings],
+[.section foo1,"e"
+.byte 0,0,0,0])
+    AC_DEFINE_UNQUOTED(HAVE_GAS_SECTION_EXCLUDE,
+      [`if test $gcc_cv_as_section_has_e = yes; then echo 1; else echo 0; fi`],
+      [Define if your assembler supports specifying the section flag e.])
+
     gcc_GAS_CHECK_FEATURE([filds and fists mnemonics],
        gcc_cv_as_ix86_filds,,,
        [filds mem; fists mem],,
index 7d4c294700a9c74e6574eaddc7b799cbd0f16b2a..4bdeaa066f848e8c99dfc065959bfc09afdbe950 100644 (file)
@@ -660,7 +660,7 @@ lhd_begin_section (const char *name)
     saved_section = text_section;
 
   /* Create a new section and switch to it.  */
-  section = get_section (name, SECTION_DEBUG, NULL);
+  section = get_section (name, SECTION_DEBUG | SECTION_EXCLUDE, NULL);
   switch_to_section (section);
 }
 
index 899265c7a8f8debd6e73186694e8b99e154f5cc9..1aad9d5a000c7ae14b7f517682d297fafcd4ea2f 100644 (file)
@@ -6144,8 +6144,10 @@ default_elf_asm_named_section (const char *name, unsigned int flags,
 
   if (!(flags & SECTION_DEBUG))
     *f++ = 'a';
+#if defined (HAVE_GAS_SECTION_EXCLUDE) && HAVE_GAS_SECTION_EXCLUDE == 1
   if (flags & SECTION_EXCLUDE)
     *f++ = 'e';
+#endif
   if (flags & SECTION_WRITE)
     *f++ = 'w';
   if (flags & SECTION_CODE)