aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2011-09-27 18:57:22 +0000
committerKai Tietz <kai.tietz@onevision.com>2011-09-27 18:57:22 +0000
commitc348982892627774491a14481a27f6e6ec90fc20 (patch)
treee148f45a5d91906aa0c8be4eabaf6789a71c470e /gas
parent2b914c2b41098b857b931b753aabfdef525f10da (diff)
downloadbinutils-c348982892627774491a14481a27f6e6ec90fc20.zip
binutils-c348982892627774491a14481a27f6e6ec90fc20.tar.gz
binutils-c348982892627774491a14481a27f6e6ec90fc20.tar.bz2
2011-09-27 Kai Tietz <ktietz@redhat.com>
* config/obj-coff.c (obj_coff_section): Add 'e' as specifier for marking section SEC_EXCLUDE. 2011-09-27 Kai Tietz <ktietz@redhat.com> * gas/pe/pe.exp: Add new testcase. * gas/pe/section-exclude.d: New file. * gas/pe/section-exclude.s: New file.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/obj-coff.c6
-rw-r--r--gas/testsuite/ChangeLog6
-rwxr-xr-xgas/testsuite/gas/pe/pe.exp1
-rw-r--r--gas/testsuite/gas/pe/section-exclude.d20
-rw-r--r--gas/testsuite/gas/pe/section-exclude.s2
6 files changed, 40 insertions, 0 deletions
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 <ktietz@redhat.com>
+
+ * config/obj-coff.c (obj_coff_section): Add 'e' as specifier
+ for marking section SEC_EXCLUDE.
+
2011-09-22 Tristan Gingold <gingold@adacore.com>
* 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 <ktietz@redhat.com>
+
+ * 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 <davem@davemloft.net>
* 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