Skip to content

[llvm-readelf] - Relocation addends printed style does not match GNU readelf #44580

Open
@llvmbot

Description

@llvmbot
Bugzilla Link 45235
Version trunk
OS Windows NT
Reporter LLVM Bugzilla Contributor
CC @jh7370

Extended Description

This is based on the test case from D75671.

Imagine we have an object with relocations:

(A piece of YAML)
Relocations:

Addend == first negative int64 == -1.

  - Addend: 0xffffffffffffffff
    Type:   R_X86_64_NONE

Addend == min possible int64 == 0x8000000000000000.

  - Addend: 0x8000000000000000
    Type:   R_X86_64_NONE

Addend == an arbitrary negative number.

  - Addend: 0xFFFFFFFFFFFFCFC7 ## -12345
    Type:   R_X86_64_NONE

Currently, we print:

Type Symbol's Value Symbol's Name + Addend
R_X86_64_NONE ffffffffffffffff{{$}}
R_X86_64_NONE 8000000000000000{{$}}
R_X86_64_NONE ffffffffffffcfc7{{$}}

But it does not match to the GNU readelf which prints addends differently:
Type Symbol's Value Symbol's Name + Addend
R_X86_64_NONE -1
R_X86_64_NONE -8000000000000000
R_X86_64_NONE -3039

Probably we want to be more compatible with GNU.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions