diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-05-30 06:34:05 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-05-30 06:34:40 -0700 |
commit | 8e2f54bcee7e3e8315d4a39a302eaf8e4389e07d (patch) | |
tree | f7dbe2132447153b463f363891ce551b065cb685 /bfd/bfdio.c | |
parent | 08c3f6d234761d92b50d3c56d3cb4b82fdd58c77 (diff) | |
download | gdb-8e2f54bcee7e3e8315d4a39a302eaf8e4389e07d.zip gdb-8e2f54bcee7e3e8315d4a39a302eaf8e4389e07d.tar.gz gdb-8e2f54bcee7e3e8315d4a39a302eaf8e4389e07d.tar.bz2 |
Add bfd_get_file_size to get archive element size
We can't use stat() to get archive element size. Add bfd_get_file_size
to get size for both normal files and archive elements.
bfd/
PR binutils/21519
* bfdio.c (bfd_get_file_size): New function.
* bfd-in2.h: Regenerated.
binutils/
PR binutils/21519
* objdump.c (dump_relocs_in_section): Replace get_file_size
with bfd_get_file_size to get archive element size.
* testsuite/binutils-all/objdump.exp (test_objdump_f): New
proc.
(test_objdump_h): Likewise.
(test_objdump_t): Likewise.
(test_objdump_r): Likewise.
(test_objdump_s): Likewise.
Add objdump tests on archive.
Diffstat (limited to 'bfd/bfdio.c')
-rw-r--r-- | bfd/bfdio.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/bfd/bfdio.c b/bfd/bfdio.c index 792ccda..e301570 100644 --- a/bfd/bfdio.c +++ b/bfd/bfdio.c @@ -434,6 +434,29 @@ bfd_get_size (bfd *abfd) return buf.st_size; } +/* +FUNCTION + bfd_get_file_size + +SYNOPSIS + file_ptr bfd_get_file_size (bfd *abfd); + +DESCRIPTION + Return the file size (as read from file system) for the file + associated with BFD @var{abfd}. It supports both normal files + and archive elements. + +*/ + +file_ptr +bfd_get_file_size (bfd *abfd) +{ + if (abfd->my_archive != NULL + && !bfd_is_thin_archive (abfd->my_archive)) + return arelt_size (abfd); + + return bfd_get_size (abfd); +} /* FUNCTION |