aboutsummaryrefslogtreecommitdiff
path: root/binutils/readelf.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2017-11-17 12:05:34 +0000
committerNick Clifton <nickc@redhat.com>2017-11-17 12:05:34 +0000
commit6a6196fc71467e39e9009d6306ef13de008c6fe3 (patch)
tree9abc79b9da44142251447a9ff288330064595e6c /binutils/readelf.c
parentb7e228508255359e473611fdf7c067b0b79cadbe (diff)
downloadgdb-6a6196fc71467e39e9009d6306ef13de008c6fe3.zip
gdb-6a6196fc71467e39e9009d6306ef13de008c6fe3.tar.gz
gdb-6a6196fc71467e39e9009d6306ef13de008c6fe3.tar.bz2
Fix a snafu in a previous update to readelf that stopped it from printing archive member names along with the archive file name.
-- This patch causes problems for glibc linknamespace tests because of how it changes the output format of readelf on .a files. Previously, "readelf -W -s libc.a" would produce output starting e.g.: File: /scratch/jmyers/glibc/many8/build/glibcs/x86_64-linux-gnu/glibc/libc.a(init-first.o) Symbol table '.symtab' contains 30 entries: and continuing with symbol information for each object in that .a file. After this commit, instead it starts: File: /scratch/jmyers/glibc/many8/build/glibcs/x86_64-linux-gnu/glibc/libc.a Symbol table '.symtab' contains 30 entries: and every object's symbol information starts with the same File: line, missing any information about which object's symbols (within libc.a) are being listed. I think the previous File: lines that said libc.a(init-first.o) etc., identifying the particular object within libc.a, were clearly preferable, and the glibc linknamespace tests rely on having that information about the individual object within libc.a. -- binutils * readelf.c (process_archive): Include member name in the file_name of the filedata structure.
Diffstat (limited to 'binutils/readelf.c')
-rw-r--r--binutils/readelf.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/binutils/readelf.c b/binutils/readelf.c
index b7f1e09..b1130a7 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -18715,6 +18715,7 @@ process_archive (Filedata * filedata, bfd_boolean is_thin_archive)
archive_file_offset = arch.next_arhdr_offset;
arch.next_arhdr_offset += archive_file_size;
+ filedata->file_name = qualified_name;
if (! process_object (filedata))
ret = FALSE;
}