From c8bd391c328c8650a93388f5cb3409c3740ee963 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 18 May 2010 03:31:06 +0000 Subject: [PATCH] Implement generic SHF_EXCLUDE. bfd/ 2010-05-18 H.J. Lu 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 PR gas/11600 * readelf.c (get_elf_section_flags): Treat SHF_EXCLUDE as a generic flag. binutils/testsuite/ 2010-05-18 H.J. Lu 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 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 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 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 PR gas/11600 * ld-elf/exclude3.s: New. * ld-elf/exclude3a.d: Likewise. * ld-elf/exclude3b.d: Likewise. * ld-elf/exclude3c.d: Likewise. --- include/elf/ChangeLog | 10 ++++++++++ include/elf/common.h | 9 +++++++++ include/elf/i370.h | 8 -------- include/elf/or32.h | 7 ------- include/elf/ppc.h | 9 --------- include/elf/sparc.h | 1 - 6 files changed, 19 insertions(+), 25 deletions(-) diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index b65c881d2..9008aaabe 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,13 @@ +2010-05-18 H.J. Lu + + 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. + 2010-04-23 Alan Modra * internal.h (ELF_SECTION_SIZE): Protect macro args with parentheses. diff --git a/include/elf/common.h b/include/elf/common.h index b2a6c73f0..01c519dd0 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -502,6 +502,15 @@ #define SHF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */ #define SHF_MASKPROC 0xF0000000 /* Processor-specific semantics */ +/* This used to be implemented as a processor specific section flag. + We just make it generic. */ +#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude + this section from executable + and shared library that it + builds when those objects + are not to be further + relocated. */ + /* Values of note segment descriptor types for core files. */ #define NT_PRSTATUS 1 /* Contains copy of prstatus struct */ diff --git a/include/elf/i370.h b/include/elf/i370.h index 6229aab52..7b451ff9d 100644 --- a/include/elf/i370.h +++ b/include/elf/i370.h @@ -36,14 +36,6 @@ #define EF_I370_RELOCATABLE 0x00010000 /* i370 -mrelocatable flag */ #define EF_I370_RELOCATABLE_LIB 0x00008000 /* i370 -mrelocatable-lib flag */ -/* Processor specific section flags, sh_flags field */ - -#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude \ - this section from executable \ - and shared objects that it \ - builds when those objects \ - are not to be furhter \ - relocated. */ /* i370 relocations Note that there is really just one relocation that we currently diff --git a/include/elf/or32.h b/include/elf/or32.h index 256696bb4..9f1c2f3f7 100644 --- a/include/elf/or32.h +++ b/include/elf/or32.h @@ -53,11 +53,4 @@ END_RELOC_NUMBERS (R_OR32_max) specified in the associated \ symbol table entry. */ -/* Processor specific section flags, sh_flags field */ -#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude \ - this section from executable \ - and shared objects that it \ - builds when those objects \ - are not to be furhter \ - relocated. */ #endif /* _ELF_OR1K_H */ diff --git a/include/elf/ppc.h b/include/elf/ppc.h index 230870dd4..688cb9b9d 100644 --- a/include/elf/ppc.h +++ b/include/elf/ppc.h @@ -174,15 +174,6 @@ END_RELOC_NUMBERS (R_PPC_max) specified in the associated \ symbol table entry. */ -/* Processor specific section flags, sh_flags field. */ - -#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude \ - this section from executable \ - and shared objects that it \ - builds when those objects \ - are not to be furhter \ - relocated. */ - /* Object attribute tags. */ enum { diff --git a/include/elf/sparc.h b/include/elf/sparc.h index 762f3b555..424715134 100644 --- a/include/elf/sparc.h +++ b/include/elf/sparc.h @@ -51,7 +51,6 @@ /* Section flags. */ -#define SHF_EXCLUDE 0x80000000 /* exclude from linking */ #define SHF_ORDERED 0x40000000 /* treat sh_link,sh_info specially */ /* Symbol types. */