diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 1999-05-31 00:58:59 +0000 |
---|---|---|
committer | Andreas Schwab <schwab@linux-m68k.org> | 1999-05-31 00:58:59 +0000 |
commit | aa903cfb1b8b2b9d5d5d23364cbf0a31b7c8d29a (patch) | |
tree | 306e29e7190a7bbc9578d4f460c4ff531e9e411d | |
parent | af754d91f9600568b95d55e397f03315dfc8bb38 (diff) | |
download | gdb-aa903cfb1b8b2b9d5d5d23364cbf0a31b7c8d29a.zip gdb-aa903cfb1b8b2b9d5d5d23364cbf0a31b7c8d29a.tar.gz gdb-aa903cfb1b8b2b9d5d5d23364cbf0a31b7c8d29a.tar.bz2 |
* readelf.c (process_relocs): Determine type of reloc from
DT_PLTREL and from section type.
-rw-r--r-- | binutils/ChangeLog | 5 | ||||
-rw-r--r-- | binutils/readelf.c | 23 |
2 files changed, 19 insertions, 9 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 58f9416..47e692b 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +Mon May 31 09:56:22 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * readelf.c (process_relocs): Determine type of reloc from + DT_PLTREL and from section type. + 1999-05-29 Nick Clifton <nickc@cygnus.com> * readelf.c (get_elf_class): Display unknown class number. diff --git a/binutils/readelf.c b/binutils/readelf.c index 6419e6a..8c69d96 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -1889,7 +1889,18 @@ process_relocs (file) { rel_offset = dynamic_info[DT_JMPREL]; rel_size = dynamic_info[DT_PLTRELSZ]; - is_rela = UNKNOWN; + switch (dynamic_info[DT_PLTREL]) + { + case DT_REL: + is_rela = FALSE; + break; + case DT_RELA: + is_rela = TRUE; + break; + default: + is_rela = UNKNOWN; + break; + } } if (rel_size) @@ -1934,18 +1945,10 @@ process_relocs (file) if (string_table == NULL) { printf ("%d", section->sh_name); - is_rela = UNKNOWN; } else { printf ("'%s'", SECTION_NAME (section)); - - if (strncmp (".rela.", SECTION_NAME (section), 6) == 0) - is_rela = TRUE; - else if (strncmp (".rel.", SECTION_NAME (section), 5) == 0) - is_rela = FALSE; - else - is_rela = UNKNOWN; } printf (_(" at offset 0x%lx contains %lu entries:\n"), @@ -1963,6 +1966,8 @@ process_relocs (file) GET_DATA_ALLOC (strsec->sh_offset, strsec->sh_size, strtab, char *, "string table"); + + is_rela = section->sh_type == SHT_RELA; dump_relocations (file, rel_offset, rel_size, symtab, strtab, is_rela); |