diff options
author | Alan Modra <amodra@gmail.com> | 2007-05-30 14:29:27 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2007-05-30 14:29:27 +0000 |
commit | 42bb2e3317a7ff36fff57469b1303775a8ab1242 (patch) | |
tree | 5e5d6156ce01a3e646f6a9371fb40b1e5b75fa98 /bfd | |
parent | 02bf8d82b539bf6c1cb8d4f7b12449930e94d431 (diff) | |
download | gdb-42bb2e3317a7ff36fff57469b1303775a8ab1242.zip gdb-42bb2e3317a7ff36fff57469b1303775a8ab1242.tar.gz gdb-42bb2e3317a7ff36fff57469b1303775a8ab1242.tar.bz2 |
bfd/
* elf.c (elf_fake_sections): Adjust test for SHT_NOBITS sections
created by objcopy --only-keep-debug.
(_bfd_elf_init_private_section_data): Only change elf_section_type
if it is SHT_NULL.
binutils/
* objcopy.c (copy_object): Revert 2007-05-11 change. Don't
avoid calling bfd_copy_private_bfd_data for ELF STRIP_NONDEBUG.
(setup_section): Don't modify flags, and don't avoid calling
bfd_copy_private_section_data for ELF STRIP_NONDEBUG.
* readelf.c (process_program_headers): Ignore .dynamic of type
SHT_NOBITS.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf.c | 15 |
2 files changed, 10 insertions, 10 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 01d0436..a754213 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,10 @@ 2007-05-30 Alan Modra <amodra@bigpond.net.au> + * elf.c (elf_fake_sections): Adjust test for SHT_NOBITS sections + created by objcopy --only-keep-debug. + (_bfd_elf_init_private_section_data): Only change elf_section_type + if it is SHT_NULL. + * elf.c (assign_file_positions_for_load_sections): Correct sh_type to SHT_NOBITS earlier. Base actions in rest of function on sh_type and sh_flags instead of bfd section flags. Delete voff and code @@ -2907,11 +2907,10 @@ elf_fake_sections (bfd *abfd, asection *asect, void *failedptrarg) && !(*bed->elf_backend_fake_sections) (abfd, this_hdr, asect)) *failedptr = TRUE; - if (sh_type == SHT_NOBITS - && elf_elfheader (abfd)->e_phnum == 0) + if (sh_type == SHT_NOBITS && asect->size != 0) { /* Don't change the header type from NOBITS if we are being - called for strip/objcopy --only-keep-debug. */ + called for objcopy --only-keep-debug. */ this_hdr->sh_type = sh_type; } @@ -6039,13 +6038,9 @@ _bfd_elf_init_private_section_data (bfd *ibfd, output BFD section flags have been set to something different. elf_fake_sections will set ELF section type based on BFD section flags. */ - if (osec->flags == isec->flags || !osec->flags) - { - BFD_ASSERT (osec->flags == isec->flags - || (!osec->flags - && elf_section_type (osec) == SHT_NULL)); - elf_section_type (osec) = elf_section_type (isec); - } + if (elf_section_type (osec) == SHT_NULL + && (osec->flags == isec->flags || !osec->flags)) + elf_section_type (osec) = elf_section_type (isec); /* FIXME: Is this correct for all OS/PROC specific flags? */ elf_section_flags (osec) |= (elf_section_flags (isec) |