Skip to content

CREL relocation table contains addends even for RELA-type psABIs #131705

Open
@rui314

Description

@rui314

It looks like CREL relocation tables contain addends even for ARM32 and i386. This deviates from their psABIs, where addends are typically stored at relocated places.

For REL-type psABIs, can LLVM store addends at relocated places instead of in CREL tables?

I see two reasons for doing so:

  1. It aligns more closely with the baseline psABI and simplifies support for other tools that expect addends to be at relocated places rather than in the relocation table. This is our motivation (crel fails on i686 and armv7l since commit bf1ec5ac rui314/mold#1430).
  2. Since CREL was designed to save disk space, storing addends in CREL isn't ideal for these targets. Eliminating addends could save more bytes per relocation.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions