From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <3G5qDYQcKCHAaOgYfOmUccUZS.QcaPWbihWZggcifQSkOfS.cfU@flex--maskray.bounces.google.com> Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by sourceware.org (Postfix) with ESMTPS id 07EA83858409 for ; Thu, 4 Nov 2021 08:30:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 07EA83858409 Received: by mail-yb1-xb49.google.com with SMTP id z65-20020a256544000000b005c21b35717dso7734159ybb.10 for ; Thu, 04 Nov 2021 01:30:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=lJmxJrV6FWOZh+R/XTSHadprM1ona2ofbQ+G38cILPY=; b=VFnVAaqHeUTxmHGWZn5PnCFhilZA9k4CQwhhoQEw/yAdF5hVR1Ih2BKF4GN570vdxr goDL6q6oNvGjn4IjuH8Z9onNP3ZDqF8KQGDFztS9sOZ6oKxYAbuUeDFffJlq7ynKXwTb zSi25rugcsQQtikcroGpPYysglxmUHtTNR0MGn+5sqYxZTUgefASLgD5z8ctbJ3y8JNq r3DGYp6fnM4tB55x9ZbCv8BoSNNSZfuXDM163lsWFbp67pDohNcfxsnRzZsLe45Y8dQV 0O/ej/b8+CHuFiP1V86anAs5QHPAmVCBPlgtVSuSGIWXnNGGoFnbOAn79+z+Wi2yRdK2 HgbQ== X-Gm-Message-State: AOAM530ezuJVxzxGrarPs04suYLvWuZsvLRt+Ya8zK6OMHWndtLMIPid QyMJqssMfq7bw69RIVessXZ+G41zOJy4dV+iotqzdPmnkTno9v6IsWaKI5RfOCysRYyui007wCx /JvnwfHb4ggYvZ+8zXnKELrQEtDptEJSliejkykZGjAQI8Lp7hG/d+TQY601+Zl3q3A== X-Google-Smtp-Source: ABdhPJxsnnojJ+CsrHRfa8YFtrmGFBeXPWQQwXyisvb+V7I3bf5QClfm15zymbiwbYpp+06k48RXjuhAy1sy X-Received: from maskray1.svl.corp.google.com ([2620:15c:2ce:200:3529:2588:7835:2c30]) (user=maskray job=sendgmr) by 2002:a25:c6c1:: with SMTP id k184mr33468933ybf.65.1636014619457; Thu, 04 Nov 2021 01:30:19 -0700 (PDT) Date: Thu, 4 Nov 2021 01:30:12 -0700 Message-Id: <20211104083012.3150444-1-maskray@google.com> Mime-Version: 1.0 Subject: [PATCH] readelf: Support RELR in -S and -d and output From: Fangrui Song To: binutils@sourceware.org, Alan Modra , Nick Clifton Cc: Fangrui Song Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-19.9 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Nov 2021 08:30:21 -0000 readelf -r dumping support is not added in this patch. 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. include/ * elf/common.h: Add SHT_RELR, DT_RELR{,SZ,ENT} --- bfd/elf.c | 3 +++ binutils/readelf.c | 6 ++++++ include/elf/common.h | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/bfd/elf.c b/bfd/elf.c index 4df144b04f0..79231e242bd 100644 --- 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; diff --git a/binutils/readelf.c b/binutils/readelf.c index 0fed82b63e3..567f81a7a77 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -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_INIT_ARRAYSZ: case DT_FINI_ARRAYSZ: case DT_GNU_CONFLICTSZ: diff --git a/include/elf/common.h b/include/elf/common.h index 42dadbb25a2..4da28fa24a4 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -523,6 +523,7 @@ #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 */ @@ -1105,6 +1106,9 @@ #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 -- 2.33.1.1089.g2158813163f-goog