Change how we handle R_MIPS_LO16.

Mips aligns PT_LOAD to 16 bits (0x10000). That means that the lower 16
bits are always the same, so we can, effectively, say that the
relocation is relative.

llvm-svn: 264761
This commit is contained in:
Rafael Espindola 2016-03-29 18:18:19 +00:00
parent ff6d0d8b2e
commit cba3e8b4b5
2 changed files with 0 additions and 10 deletions

View File

@ -1819,7 +1819,6 @@ bool MipsTargetInfo<ELFT>::isRelRelative(uint32_t Type) const {
case R_MIPS_32:
case R_MIPS_64:
case R_MIPS_HI16:
case R_MIPS_LO16:
case R_MIPS_TLS_DTPREL_HI16:
case R_MIPS_TLS_DTPREL_LO16:
case R_MIPS_TLS_TPREL_HI16:

View File

@ -432,15 +432,6 @@ void Writer<ELFT>::scanRelocs(InputSectionBase<ELFT> &C,
}
if (Config->EMachine == EM_MIPS) {
if (Type == R_MIPS_LO16)
// Ignore R_MIPS_LO16 relocation. If it is a pair for R_MIPS_GOT16 we
// already completed all required action (GOT entry allocation) when
// handle R_MIPS_GOT16a. If it is a pair for R_MIPS_HI16 against
// _gp_disp it does not require dynamic relocation. If its a pair for
// R_MIPS_HI16 against a regular symbol it does not require dynamic
// relocation too because that case is possible for executable file
// linking only.
continue;
if (&Body == Config->MipsGpDisp || &Body == Config->MipsLocalGp)
// MIPS _gp_disp designates offset between start of function and 'gp'
// pointer into GOT. __gnu_local_gp is equal to the current value of