From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from forward105j.mail.yandex.net (forward105j.mail.yandex.net [5.45.198.248]) by sourceware.org (Postfix) with ESMTPS id 65C403858D32 for ; Sun, 22 Jan 2023 18:07:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 65C403858D32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=yandex.ru Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=yandex.ru Received: from sas1-37da021029ee.qloud-c.yandex.net (sas1-37da021029ee.qloud-c.yandex.net [IPv6:2a02:6b8:c08:1612:0:640:37da:210]) by forward105j.mail.yandex.net (Yandex) with ESMTP id 44C5A4EC859C for ; Sun, 22 Jan 2023 21:07:43 +0300 (MSK) Received: by sas1-37da021029ee.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id e7ulkAvfGCg1-3oQie7wK; Sun, 22 Jan 2023 21:07:42 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1674410862; bh=BR0Vef77w0UTb/PyJhVkuQ2FN4FFqOIvjlXNaWKFPIM=; h=Message-Id:Date:Cc:Subject:To:From; b=UknUTAVsUgGR38bWQrU+9eo/4lH+n4zNo0sPdCt8wVH87W8RS2sO628xirx5TdQAq UGULzbMT/sHniPZiz8ZJ9TQFFPSLdB0WkocbrsNSPJjm0YTKZtpHmcsz6kXN/NFq4R o2472VVWFRwdHhgzh/mZDBkUvCz8m4zcFpnRlaN4= Authentication-Results: sas1-37da021029ee.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru From: Vladislav Khmelevsky To: binutils@sourceware.org Cc: Vladislav Khmelevsky Subject: [PATCH] objdump: Fix relocations objdumping for specific symbol Date: Sun, 22 Jan 2023 22:07:36 +0400 Message-Id: <20230122180736.55917-1-och95@yandex.ru> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: If objdump is used with both --disassemble=symbol and --reloc options skip relocations that are belonging to the addresses below the symbol address. --- binutils/objdump.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/binutils/objdump.c b/binutils/objdump.c index 61a18746fde..155461fc3cd 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -3909,6 +3909,13 @@ disassemble_section (bfd *abfd, asection *section, void *inf) { do_print = true; + /* Skip over the relocs belonging to addresses below the + symbol address. */ + const bfd_vma sym_offset = bfd_asymbol_value (sym) - section->vma; + while (rel_pp < rel_ppend && + (*rel_pp)->address - rel_offset < sym_offset) + ++rel_pp; + if (sym->flags & BSF_FUNCTION) { if (bfd_get_flavour (abfd) == bfd_target_elf_flavour -- 2.25.1