aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorKai Tietz <ktietz@redhat.com>2011-09-28 10:07:39 +0200
committerKai Tietz <ktietz@gcc.gnu.org>2011-09-28 10:07:39 +0200
commit08c71c82b8b1ea89b092f06bb2e84dc40ad3cd2f (patch)
tree54fa8e39315a2300568c6f1addebf0270867b3ce /gcc/config
parent5e3a0ed1a7e8d1c08052cb5939fb86529623cab9 (diff)
downloadgcc-08c71c82b8b1ea89b092f06bb2e84dc40ad3cd2f.zip
gcc-08c71c82b8b1ea89b092f06bb2e84dc40ad3cd2f.tar.gz
gcc-08c71c82b8b1ea89b092f06bb2e84dc40ad3cd2f.tar.bz2
configure.ac: Add test for new section attribute specifier "e" via define...
* configure.ac: Add test for new section attribute specifier "e" via define HAVE_GAS_SECTION_EXCLUDE. * config.in: Regenerated. * configure: Regenerated. * config/i386/winnt.c (i386_pe_asm_named_section): Emit new section flag "e" for excluded sections, if supported. Otherwise we mark section withc SECTION_EXCLUDE flag as never-load. From-SVN: r179308
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/i386/winnt.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c
index 8e7043f..af3f975 100644
--- a/gcc/config/i386/winnt.c
+++ b/gcc/config/i386/winnt.c
@@ -484,6 +484,11 @@ i386_pe_asm_named_section (const char *name, unsigned int flags,
{
char flagchars[8], *f = flagchars;
+#if defined (HAVE_GAS_SECTION_EXCLUDE) && HAVE_GAS_SECTION_EXCLUDE == 1
+ if ((flags & SECTION_EXCLUDE) != 0)
+ *f++ = 'e';
+#endif
+
if ((flags & (SECTION_CODE | SECTION_WRITE)) == 0)
/* readonly data */
{
@@ -498,6 +503,12 @@ i386_pe_asm_named_section (const char *name, unsigned int flags,
*f++ = 'w';
if (flags & SECTION_PE_SHARED)
*f++ = 's';
+#if !defined (HAVE_GAS_SECTION_EXCLUDE) || HAVE_GAS_SECTION_EXCLUDE == 0
+ /* If attribute "e" isn't supported we mark this section as
+ never-load. */
+ if ((flags & SECTION_EXCLUDE) != 0)
+ *f++ = 'n';
+#endif
}
/* LTO sections need 1-byte alignment to avoid confusing the