* compress.c (bfd_cache_section_contents): New function.
* bfd-in2.h: Regenerate.
binutils/
* objdump.c (load_specific_debug_section): Use
bfd_cache_section_contents.
+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>
* linker.c (_bfd_generic_link_output_symbols): Handle a
bfd_boolean bfd_get_full_section_contents
(bfd *abfd, asection *section, bfd_byte **ptr);
+void bfd_cache_section_contents
+ (asection *sec, void *contents);
+
bfd_boolean bfd_is_section_compressed
(bfd *abfd, asection *section);
}
}
+/*
+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
bfd_is_section_compressed
+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>
* objdump.c (dump_bfd): Call dump headers after
if (is_relocatable && debug_displays [debug].relocate)
{
- /* We want to relocate the data we've already read (and
- 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;
+ bfd_cache_section_contents (sec, section->start);
ret = bfd_simple_get_relocated_section_contents (abfd,
sec,