Skip to content

Question regarding AArch64 Dwarf CFI directives used along Pointer Authentication to enable unwinding #9264

@matlo607

Description

@matlo607

Question goal

Clarification about the current usage of the DWARF CFI directive DW_CFA_val_expression by the project for the purpose of unwinding on AArch64 with Pointer Authentication enabled (i.e. -march=<arch> -mbranch-protection=pac-ret).

References

Details

Today, DW_CFA_val_expression is supposedly only used for backtracing in the Cranelift project.
At the end in #4195, @akirilov-arm didn't use DW_CFA_val_expression to set the RA state register.
The code seems to have evolved since then and moved to https://github.com/bytecodealliance/wasmtime/blob/main/crates/fiber/src/unix/aarch64.rs.
This code uses .cfi_window_save, so no DW_CFA_val_expression are emitted.

Question

As a conclusion, the project doesn't seem to use the exotic setting of the RA state register that was requested in Bug 104689.
Is my understanding correct ?
Is it an issue for you if GCC's AArch64 backend removes the support for setting the RA state register with DW_CFA_val_expression ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions