readelf: Support RELR in -S and -d and output
authorFangrui Song <maskray@google.com>
Thu, 4 Nov 2021 08:30:12 +0000 (01:30 -0700)
committerAlan Modra <amodra@gmail.com>
Sat, 6 Nov 2021 06:41:08 +0000 (17:11 +1030)
readelf -r dumping support is not added in this patch.

include/
* elf/common.h: Add SHT_RELR, DT_RELR{,SZ,ENT}
bfd/
* elf.c (_bfd_elf_print_private_bfd_data): Add DT_RELR{,SZ,ENT}.
binutils/
* readelf.c (get_dynamic_type): Add DT_RELR{,SZ,ENT}.
(get_section_type_name): Add SHT_RELR.

bfd/elf.c
binutils/readelf.c
include/elf/common.h

index 4df144b04f0aaa6e9f6f4d75160203f19cdefcee..79231e242bd8fa9935420c4aa7741d0133626a48 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -1773,6 +1773,9 @@ _bfd_elf_print_private_bfd_data (bfd *abfd, void *farg)
            case DT_REL: name = "REL"; break;
            case DT_RELSZ: name = "RELSZ"; break;
            case DT_RELENT: name = "RELENT"; break;
+           case DT_RELR: name = "RELR"; break;
+           case DT_RELRSZ: name = "RELRSZ"; break;
+           case DT_RELRENT: name = "RELRENT"; break;
            case DT_PLTREL: name = "PLTREL"; break;
            case DT_DEBUG: name = "DEBUG"; break;
            case DT_TEXTREL: name = "TEXTREL"; break;
index 7a162eead17732e473ec0e4203ed5ae7f520cbad..cf3168f4a8e16118563527125c3a4317d62db1ff 100644 (file)
@@ -2228,6 +2228,9 @@ get_dynamic_type (Filedata * filedata, unsigned long type)
     case DT_REL:       return "REL";
     case DT_RELSZ:     return "RELSZ";
     case DT_RELENT:    return "RELENT";
+    case DT_RELR:      return "RELR";
+    case DT_RELRSZ:    return "RELRSZ";
+    case DT_RELRENT:   return "RELRENT";
     case DT_PLTREL:    return "PLTREL";
     case DT_DEBUG:     return "DEBUG";
     case DT_TEXTREL:   return "TEXTREL";
@@ -4535,6 +4538,7 @@ get_section_type_name (Filedata * filedata, unsigned int sh_type)
     case SHT_SYMTAB:           return "SYMTAB";
     case SHT_STRTAB:           return "STRTAB";
     case SHT_RELA:             return "RELA";
+    case SHT_RELR:             return "RELR";
     case SHT_HASH:             return "HASH";
     case SHT_DYNAMIC:          return "DYNAMIC";
     case SHT_NOTE:             return "NOTE";
@@ -11385,6 +11389,8 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"));
        case DT_PLTPADSZ:
        case DT_MOVEENT :
        case DT_MOVESZ  :
+       case DT_RELRENT :
+       case DT_RELRSZ  :
        case DT_PREINIT_ARRAYSZ:
        case DT_INIT_ARRAYSZ:
        case DT_FINI_ARRAYSZ:
index 42dadbb25a23d28743a56f60a0db14006b3e59f5..4da28fa24a490e61e5be3876e205eabd919e7dc9 100644 (file)
 #define SHT_PREINIT_ARRAY 16           /* Array of ptrs to pre-init funcs */
 #define SHT_GROUP        17            /* Section contains a section group */
 #define SHT_SYMTAB_SHNDX  18           /* Indices for SHN_XINDEX entries */
+#define SHT_RELR         19            /* RELR relative relocations */
 
 #define SHT_LOOS       0x60000000      /* First of OS specific semantics */
 #define SHT_HIOS       0x6fffffff      /* Last of OS specific semantics */
 #define DT_PREINIT_ARRAY   32
 #define DT_PREINIT_ARRAYSZ 33
 #define DT_SYMTAB_SHNDX    34
+#define DT_RELRSZ      35
+#define DT_RELR                36
+#define DT_RELRENT     37
 
 /* Note, the Oct 4, 1999 draft of the ELF ABI changed the values
    for DT_LOOS and DT_HIOS.  Some implementations however, use