aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Verbin <ilya.verbin@intel.com>2014-10-19 19:40:59 +0000
committerIlya Verbin <iverbin@gcc.gnu.org>2014-10-19 19:40:59 +0000
commitd856054bc7b4d494010234816bcb25e837eea3b1 (patch)
treeb1a71a512384885501a7bb4ae73a119c424e9965
parente80f9fef341bdd66fff59e18df3044f5fe2e5166 (diff)
downloadgcc-d856054bc7b4d494010234816bcb25e837eea3b1.zip
gcc-d856054bc7b4d494010234816bcb25e837eea3b1.tar.gz
gcc-d856054bc7b4d494010234816bcb25e837eea3b1.tar.bz2
Set SECTION_EXCLUDE flag for LTO sections.
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
-rw-r--r--gcc/ChangeLog9
-rwxr-xr-xgcc/configure13
-rw-r--r--gcc/configure.ac19
-rw-r--r--gcc/langhooks.c2
-rw-r--r--gcc/varasm.c2
5 files changed, 29 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bee63fe..ca2cb0c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/configure b/gcc/configure
index bd1215d..16f128f 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -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; }
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 8f7c814..35ce9ee 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -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],,
diff --git a/gcc/langhooks.c b/gcc/langhooks.c
index 7d4c294..4bdeaa0 100644
--- a/gcc/langhooks.c
+++ b/gcc/langhooks.c
@@ -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);
}
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 899265c..1aad9d5 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -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)