Skip to content

Cranelift: AArch64 backend uses absolute relocations instead of GOT-relative relocations when using is_pic #5544

@bjorn3

Description

@bjorn3

.clif Test Case

Any code which uses global_value or a call to a function not marked as colocated.

Steps to Reproduce

  • Compile with is_pic for AArch64

Expected Results

Object file has a GOT relocation and loads the address from the GOT.

Actual Results

Object file has an absolute relocation in a text section. This causes the dynamic linker to crash on macOS as the text segment is read-only.

Versions and Environment

Cranelift version or commit: 4491382

Operating system: macOS

Architecture: AArch64

Extra Info

Likely the root cause of https://bytecodealliance.zulipchat.com/#narrow/stream/217117-cranelift/topic/Tricks.20with.20linkage.20internal.20.2F.20module.20external.20functions.3F

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIncorrect behavior in the current implementation that needs fixingcraneliftIssues related to the Cranelift code generator

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions