bfd/
* compress.c (bfd_cache_section_contents): New function. * bfd-in2.h: Regenerate. binutils/ * objdump.c (load_specific_debug_section): Use bfd_cache_section_contents.
This commit is contained in:
parent
1e9d6fc263
commit
8a72cc6e7e
5 changed files with 37 additions and 7 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2012-10-21 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* compress.c (bfd_cache_section_contents): New function.
|
||||||
|
* bfd-in2.h: Regenerate.
|
||||||
|
|
||||||
2012-10-21 Hans-Peter Nilsson <hp@bitrange.com>
|
2012-10-21 Hans-Peter Nilsson <hp@bitrange.com>
|
||||||
|
|
||||||
* linker.c (_bfd_generic_link_output_symbols): Handle a
|
* linker.c (_bfd_generic_link_output_symbols): Handle a
|
||||||
|
|
|
@ -6709,6 +6709,9 @@ bfd_boolean bfd_compress_section_contents
|
||||||
bfd_boolean bfd_get_full_section_contents
|
bfd_boolean bfd_get_full_section_contents
|
||||||
(bfd *abfd, asection *section, bfd_byte **ptr);
|
(bfd *abfd, asection *section, bfd_byte **ptr);
|
||||||
|
|
||||||
|
void bfd_cache_section_contents
|
||||||
|
(asection *sec, void *contents);
|
||||||
|
|
||||||
bfd_boolean bfd_is_section_compressed
|
bfd_boolean bfd_is_section_compressed
|
||||||
(bfd *abfd, asection *section);
|
(bfd *abfd, asection *section);
|
||||||
|
|
||||||
|
|
|
@ -253,6 +253,29 @@ bfd_get_full_section_contents (bfd *abfd, sec_ptr sec, bfd_byte **ptr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
FUNCTION
|
||||||
|
bfd_cache_section_contents
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
void bfd_cache_section_contents
|
||||||
|
(asection *sec, void *contents);
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Stash @var(contents) so any following reads of @var(sec) do
|
||||||
|
not need to decompress again.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void
|
||||||
|
bfd_cache_section_contents (asection *sec, void *contents)
|
||||||
|
{
|
||||||
|
if (sec->compress_status == DECOMPRESS_SECTION_SIZED)
|
||||||
|
sec->compress_status = COMPRESS_SECTION_DONE;
|
||||||
|
sec->contents = contents;
|
||||||
|
sec->flags |= SEC_IN_MEMORY;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
FUNCTION
|
FUNCTION
|
||||||
bfd_is_section_compressed
|
bfd_is_section_compressed
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2012-10-21 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* objdump.c (load_specific_debug_section): Use
|
||||||
|
bfd_cache_section_contents.
|
||||||
|
|
||||||
2012-10-18 Kai Tietz <ktietz@redhat.com>
|
2012-10-18 Kai Tietz <ktietz@redhat.com>
|
||||||
|
|
||||||
* objdump.c (dump_bfd): Call dump headers after
|
* objdump.c (dump_bfd): Call dump headers after
|
||||||
|
|
|
@ -2272,13 +2272,7 @@ load_specific_debug_section (enum dwarf_section_display_enum debug,
|
||||||
|
|
||||||
if (is_relocatable && debug_displays [debug].relocate)
|
if (is_relocatable && debug_displays [debug].relocate)
|
||||||
{
|
{
|
||||||
/* We want to relocate the data we've already read (and
|
bfd_cache_section_contents (sec, section->start);
|
||||||
decompressed), so we store a pointer to the data in
|
|
||||||
the bfd_section, and tell it that the contents are
|
|
||||||
already in memory. */
|
|
||||||
sec->contents = section->start;
|
|
||||||
sec->flags |= SEC_IN_MEMORY;
|
|
||||||
sec->size = section->size;
|
|
||||||
|
|
||||||
ret = bfd_simple_get_relocated_section_contents (abfd,
|
ret = bfd_simple_get_relocated_section_contents (abfd,
|
||||||
sec,
|
sec,
|
||||||
|
|
Loading…
Reference in a new issue