From 1479afa463f6eca2f34b518644dcf14e9fbe2241 Mon Sep 17 00:00:00 2001 From: iverbin Date: Sun, 19 Oct 2014 19:40:59 +0000 Subject: [PATCH] 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216442 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 9 +++++++++ gcc/configure | 13 +++++++------ gcc/configure.ac | 19 ++++++++++--------- gcc/langhooks.c | 2 +- gcc/varasm.c | 2 ++ 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 + + * 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 * 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) -- 2.7.4