The patch adds two new arguments to the Target::relocateOne routine and passes pointers to InputFile and SymbolBody. For all targets except MIPS at least for now it just increases amount of useless relocateOne's arguments. For MIPS it allows to cleanup InputSectionBase::relocate code and remove almost all if (EMachine == EM_MIPS) statements from it.
I have an idea how to remove the last if (EMachine == EM_MIPS) statement from the InputSectionBase::relocate, but it is for a separate patch.