Browse Source

PR28098 Skip R_*_NONE relocation entries with zero r_sym without counting

PR gold/28098
	* reloc.cc (Track_relocs::advance): Skip R_*_NONE relocation entries
	with r_sym of zero without counting in advance method.
users/ARM/efi-aarch64-support-binutils
Michael Krasnyk 5 years ago
committed by Alan Modra
parent
commit
7c6ff8af98
  1. 6
      gold/ChangeLog
  2. 5
      gold/reloc.cc
  3. 2
      gold/reloc.h

6
gold/ChangeLog

@ -1,3 +1,9 @@
2021-07-17 Michael Krasnyk <michael.krasnyk@gmail.com>
PR gold/28098
* reloc.cc (Track_relocs::advance): Skip R_*_NONE relocation entries
with r_sym of zero without counting in advance method.
2021-07-03 Nick Clifton <nickc@redhat.com>
* po/gold.pot: Regenerate.

5
gold/reloc.cc

@ -1602,7 +1602,10 @@ Track_relocs<size, big_endian>::advance(off_t offset)
elfcpp::Rel<size, big_endian> rel(this->prelocs_ + this->pos_);
if (static_cast<off_t>(rel.get_r_offset()) >= offset)
break;
++ret;
// Skip R_*_NONE relocation entries with r_sym of zero
// without counting.
if (rel.get_r_info() != 0)
++ret;
this->pos_ += this->reloc_size_;
}
return ret;

2
gold/reloc.h

@ -1171,7 +1171,7 @@ class Track_relocs
next_addend() const;
// Advance to OFFSET within the data section, and return the number
// of relocs which would be skipped.
// of relocs which would be skipped, excluding r_info==0 relocs.
int
advance(off_t offset);

Loading…
Cancel
Save