diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2010-05-18 03:31:07 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2010-05-18 03:31:07 +0000 |
commit | 18ae9cc1db45e2e7f6467b91d8abbc5eb45fbaa5 (patch) | |
tree | 8b15ae2b881a6f2a7301ecc8c24bd239f2261942 /binutils | |
parent | e17c9e56cb62a1791215b8a144ef864f77e4a34f (diff) | |
download | gdb-18ae9cc1db45e2e7f6467b91d8abbc5eb45fbaa5.zip gdb-18ae9cc1db45e2e7f6467b91d8abbc5eb45fbaa5.tar.gz gdb-18ae9cc1db45e2e7f6467b91d8abbc5eb45fbaa5.tar.bz2 |
Implement generic SHF_EXCLUDE.
bfd/
2010-05-18 H.J. Lu <hongjiu.lu@intel.com>
PR gas/11600
* elf.c (_bfd_elf_make_section_from_shdr): Handle SHF_EXCLUDE
(elf_fake_sections): Likewise.
* elf32-i370.c (i370_elf_section_from_shdr): Don't handle
SHF_EXCLUDE here.
* elf32-ppc.c (ppc_elf_fake_sections): Likewise.
binutils/
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.
binutils/testsuite/
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.
gas/
2010-05-18 H.J. Lu <hongjiu.lu@intel.com>
PR gas/11600
* obj-elf.c (obj_elf_change_section): Handle SHF_EXCLUDE.
(obj_elf_parse_section_letters): Likewise.
(obj_elf_section_word): Likewise.
* config/tc-ppc.c (ppc_section_letter): Removed.
(ppc_section_word): Likewise.
* config/tc-ppc.h (ppc_section_letter): Likewise.
(ppc_section_word): Likewise.
(md_elf_section_letter): Likewise.
(md_elf_section_word): Likewise.
* doc/as.texinfo: Document `e' and `#exclude'.
gas/testsuite/
2010-05-18 H.J. Lu <hongjiu.lu@intel.com>
PR gas/11600
* gas/elf/elf.exp: Run section8.
* gas/elf/section8.d: New.
* gas/elf/section8.s: Likewise.
include/elf/
2010-05-18 H.J. Lu <hongjiu.lu@intel.com>
PR gas/11600
* common.h (SHF_EXCLUDE): New.
* i370.h (SHF_EXCLUDE): Removed.
* or32.h (SHF_EXCLUDE): Likewise.
* ppc.h (SHF_EXCLUDE): Likewise.
* sparc.h (SHF_EXCLUDE): Likewise.
ld/testsuite/
2010-05-18 H.J. Lu <hongjiu.lu@intel.com>
PR gas/11600
* ld-elf/exclude3.s: New.
* ld-elf/exclude3a.d: Likewise.
* ld-elf/exclude3b.d: Likewise.
* ld-elf/exclude3c.d: Likewise.
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/ChangeLog | 6 | ||||
-rw-r--r-- | binutils/readelf.c | 9 | ||||
-rw-r--r-- | binutils/testsuite/ChangeLog | 10 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/exclude-1.s | 16 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/exclude-1a.d | 9 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/exclude-1b.d | 9 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/objcopy.exp | 3 |
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" |