Rewrite our relocation processing.
Audit RequiredrL322047

Description

Rewrite our relocation processing.

This splits relocation processing in two steps.

First, analyze what needs to be done at the relocation spot. This can
be a constant (non preemptible symbol, relative got reference, etc) or
require a dynamic relocation. At this step we also consider creating
copy relocations.

Once that is done we decide if we need a got or a plt entry.

The code is simpler IMHO. For example:

  • There is a single call to isPicRel since the logic is not split among adjustExpr and the caller.
  • R_MIPS_GOTREL is simple to handle now.
  • The tracking of what is preemptible or not is much simpler now.

This also fixes a regression with symbols being both in a got and copy
relocated. They had regressed in r268668 and r268149.

The other test changes are because of error messages changes or the
order of two relocations in the output.

Details

Auditors
Bigcheese
Committed
rafaelJan 8 2018, 4:13 PM
Parents
rL322046: [CMake] Support for cross-compilation when build runtimes
Branches
Unknown
Tags
Unknown