From c348982892627774491a14481a27f6e6ec90fc20 Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Tue, 27 Sep 2011 18:57:22 +0000 Subject: [PATCH] 2011-09-27 Kai Tietz * config/obj-coff.c (obj_coff_section): Add 'e' as specifier for marking section SEC_EXCLUDE. 2011-09-27 Kai Tietz * gas/pe/pe.exp: Add new testcase. * gas/pe/section-exclude.d: New file. * gas/pe/section-exclude.s: New file. --- gas/ChangeLog | 5 +++++ gas/config/obj-coff.c | 6 ++++++ gas/testsuite/ChangeLog | 6 ++++++ gas/testsuite/gas/pe/pe.exp | 1 + gas/testsuite/gas/pe/section-exclude.d | 20 ++++++++++++++++++++ gas/testsuite/gas/pe/section-exclude.s | 2 ++ 6 files changed, 40 insertions(+) create mode 100644 gas/testsuite/gas/pe/section-exclude.d create mode 100644 gas/testsuite/gas/pe/section-exclude.s diff --git a/gas/ChangeLog b/gas/ChangeLog index 4d0d622..79f7cac 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2011-09-27 Kai Tietz + + * config/obj-coff.c (obj_coff_section): Add 'e' as specifier + for marking section SEC_EXCLUDE. + 2011-09-22 Tristan Gingold * NEWS: Add marker for 2.22. diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c index d481026..a15d3a2 100644 --- a/gas/config/obj-coff.c +++ b/gas/config/obj-coff.c @@ -1531,6 +1531,7 @@ coff_frob_file_after_relocs (void) 'o' for over 'w' for data 'd' (apparently m88k for data) + 'e' for exclude 'x' for text 'r' for read-only data 's' for shared data (PE) @@ -1598,6 +1599,11 @@ obj_coff_section (int ignore ATTRIBUTE_UNUSED) } switch (attr) { + case 'e': + /* Exclude section from linking. */ + flags |= SEC_EXCLUDE; + break; + case 'b': /* Uninitialised data section. */ flags |= SEC_ALLOC; diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 9df84ae..17c786f 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2011-09-27 Kai Tietz + + * gas/pe/pe.exp: Add new testcase. + * gas/pe/section-exclude.d: New file. + * gas/pe/section-exclude.s: New file. + 2011-09-27 David S. Miller * gas/sparc/hpcvis3.s: Update to use float reg for random insn. diff --git a/gas/testsuite/gas/pe/pe.exp b/gas/testsuite/gas/pe/pe.exp index d5506e9..870df11 100755 --- a/gas/testsuite/gas/pe/pe.exp +++ b/gas/testsuite/gas/pe/pe.exp @@ -35,6 +35,7 @@ run_dump_test "aligncomm-d" run_dump_test "section-align-1" run_dump_test "section-align-3" +run_dump_test "section-exclude" # SEH related tests diff --git a/gas/testsuite/gas/pe/section-exclude.d b/gas/testsuite/gas/pe/section-exclude.d new file mode 100644 index 0000000..02b3bd5 --- /dev/null +++ b/gas/testsuite/gas/pe/section-exclude.d @@ -0,0 +1,20 @@ +#objdump: -h +#name: section exclude + +# Test that 'e' works in .section directives. + +.*: .* + +Sections: +Idx Name *Size *VMA *LMA *File off *Algn + 3 .foo1 00000004 0000000000000000 0000000000000000 000000b4 2**2 + CONTENTS, EXCLUDE + 0 \.text 0*0000000 0*0000000 0*0000000 0*0000000 2\*\*[24] +.* + 1 \.data 0*0000000 0*0000000 0*0000000 0*0000000 2\*\*[24] +.* + 2 \.bss 0*0000000 0*0000000 0*0000000 0*0000000 2\*\*[24] +.* + 3 \.foo1 0*0000004 0*0000000 0*0000000 0*0000000 2\*\*[24] +.*CONTENS, EXCLUDE +.* diff --git a/gas/testsuite/gas/pe/section-exclude.s b/gas/testsuite/gas/pe/section-exclude.s new file mode 100644 index 0000000..f623846 --- /dev/null +++ b/gas/testsuite/gas/pe/section-exclude.s @@ -0,0 +1,2 @@ + .section .foo1,"e" + .byte 0,0,0,0 -- 2.7.4