aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog6
-rw-r--r--binutils/readelf.c9
-rw-r--r--binutils/testsuite/ChangeLog10
-rw-r--r--binutils/testsuite/binutils-all/exclude-1.s16
-rw-r--r--binutils/testsuite/binutils-all/exclude-1a.d9
-rw-r--r--binutils/testsuite/binutils-all/exclude-1b.d9
-rw-r--r--binutils/testsuite/binutils-all/objcopy.exp3
7 files changed, 58 insertions, 4 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 964e483..9c8d87c 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2010-05-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR gas/11600
+ * readelf.c (get_elf_section_flags): Treat SHF_EXCLUDE as a
+ generic flag.
+
2010-05-07 Tristan Gingold <gingold@adacore.com>
* Makefile.in: Regenerate with automake 1.11.1.
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 53699b2..bcb24c2 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -4152,8 +4152,9 @@ get_elf_section_flags (bfd_vma sh_flags)
/* 15 */ { STRING_COMMA_LEN ("VMS_VECTOR") },
/* 16 */ { STRING_COMMA_LEN ("VMS_ALLOC_64BIT") },
/* 17 */ { STRING_COMMA_LEN ("VMS_PROTECTED") },
- /* SPARC specific. */
+ /* Generic. */
/* 18 */ { STRING_COMMA_LEN ("EXCLUDE") },
+ /* SPARC specific. */
/* 19 */ { STRING_COMMA_LEN ("ORDERED") }
};
@@ -4185,6 +4186,7 @@ get_elf_section_flags (bfd_vma sh_flags)
case SHF_OS_NONCONFORMING: sindex = 7; break;
case SHF_GROUP: sindex = 8; break;
case SHF_TLS: sindex = 9; break;
+ case SHF_EXCLUDE: sindex = 18; break;
default:
sindex = -1;
@@ -4218,9 +4220,7 @@ get_elf_section_flags (bfd_vma sh_flags)
case EM_SPARC32PLUS:
case EM_SPARCV9:
case EM_SPARC:
- if (flag == SHF_EXCLUDE)
- sindex = 18;
- else if (flag == SHF_ORDERED)
+ if (flag == SHF_ORDERED)
sindex = 19;
break;
default:
@@ -4263,6 +4263,7 @@ get_elf_section_flags (bfd_vma sh_flags)
case SHF_OS_NONCONFORMING: *p = 'O'; break;
case SHF_GROUP: *p = 'G'; break;
case SHF_TLS: *p = 'T'; break;
+ case SHF_EXCLUDE: *p = 'E'; break;
default:
if ((elf_header.e_machine == EM_X86_64
diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog
index 3b08cda..1f4d19b 100644
--- a/binutils/testsuite/ChangeLog
+++ b/binutils/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2010-05-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR gas/11600
+ * binutils-all/objcopy.exp: Run exclude-1a and exclude-1b for
+ ELF targets.
+
+ * binutils-all/exclude-1.s: New.
+ * binutils-all/exclude-1a.d: Likewise.
+ * binutils-all/exclude-1b.d: Likewise.
+
2010-04-30 H.J. Lu <hongjiu.lu@intel.com>
* binutils-all/dlltool.exp: Add a missing `"'.
diff --git a/binutils/testsuite/binutils-all/exclude-1.s b/binutils/testsuite/binutils-all/exclude-1.s
new file mode 100644
index 0000000..475088f
--- /dev/null
+++ b/binutils/testsuite/binutils-all/exclude-1.s
@@ -0,0 +1,16 @@
+ .text
+ .type start,"function"
+ .global start
+start:
+ .type _start,"function"
+ .global _start
+_start:
+ .type __start,"function"
+ .global __start
+__start:
+ .type main,"function"
+ .global main
+main:
+ .long 0
+ .section .foo1,"e", %progbits
+ .byte 0,0,0,0
diff --git a/binutils/testsuite/binutils-all/exclude-1a.d b/binutils/testsuite/binutils-all/exclude-1a.d
new file mode 100644
index 0000000..3a311b5
--- /dev/null
+++ b/binutils/testsuite/binutils-all/exclude-1a.d
@@ -0,0 +1,9 @@
+#PROG: objcopy
+#source: exclude-1.s
+#objcopy:
+#readelf: -S --wide
+#name: objcopy on sections with SHF_EXCLUDE
+
+#...
+[ ]*\[.*\][ ]+\.foo1[ ]+PROGBITS.*[ ]+E[ ]+.*
+#pass
diff --git a/binutils/testsuite/binutils-all/exclude-1b.d b/binutils/testsuite/binutils-all/exclude-1b.d
new file mode 100644
index 0000000..ac387fb
--- /dev/null
+++ b/binutils/testsuite/binutils-all/exclude-1b.d
@@ -0,0 +1,9 @@
+#PROG: strip
+#source: exclude-1.s
+#strip: --strip-unneeded
+#readelf: -S --wide
+#name: strip --strip-unneeded on sections with SHF_EXCLUDE
+
+#...
+[ ]*\[.*\][ ]+\.foo1[ ]+PROGBITS.*[ ]+E[ ]+.*
+#pass
diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp
index 5c7de8c..94a31aa 100644
--- a/binutils/testsuite/binutils-all/objcopy.exp
+++ b/binutils/testsuite/binutils-all/objcopy.exp
@@ -880,5 +880,8 @@ if [is_elf_format] {
run_dump_test "add-section"
run_dump_test "add-empty-section"
+
+ run_dump_test "exclude-1a"
+ run_dump_test "exclude-1b"
}
run_dump_test "localize-hidden-2"