Skip to content

test_c_stack_unwind fails on Linux LoongArch builds #152240

Closed

Description

@yzewei

Bug report

Bug description:

On the Linux LoongArch64 platform, the test_c_stack_unwind test fails because CPython's manually implemented frame-pointer unwinding mechanism fails to recognize the LoongArch stack frame layout (as it relies on the default FRAME_POINTER_NEXT_OFFSET and FRAME_POINTER_RETURN_OFFSET). This issue affects builds using both GCC and Clang.

In the LoongArch architecture, the frame pointer points to the caller's stack pointer; the previous frame pointer is stored at fp[-2], and the return address is stored at fp[-1].

Additionally, for CPython builds compiled with Clang, unexpected failures occur in test sections involving the GNU backtrace() function. By default, Clang/LoongArch generates .debug_frame sections but does not generate the .eh_frame unwinding tables required for runtime unwinding of CPython's C objects. Consequently, glibc's backtrace() returns only a single stack frame and cannot unwind through Python stack frames.

Reproducer

GCC build:

../cpython/configure --with-pydebug CC=gcc
make -j8
PYTHON_JIT=0 ./python -m test -v test_c_stack_unwind

clang build:

../cpython/configure --with-pydebug CC=clang
make -j8
PYTHON_JIT=0 ./python -m test -v test_c_stack_unwind

Environment

  • CPython main
  • Linux LoongArch64
  • GCC version: 15.3.0
  • Clang 20.1.8
  • glibc 2.42

CPython versions tested on:

CPython main branch

Operating systems tested on:

Linux

Linked PRs

Activity

  1. added
    type-bugAn unexpected behavior, bug, or error
    on Jun 26, 2026
  2. StanFromIreland commented on Jun 26, 2026

    @StanFromIreland
    Member

    Related issues:

  3. yzewei commented on Jun 29, 2026

    @yzewei
    ContributorAuthor

    Related issues:

    That's true; similar operations need to be performed for loongarch. Correct the offsets for obtaining sp and ra. #152241

  4. added 2 commits that reference this issue on Jun 29, 2026
  5. added a commit that references this issue on Jun 29, 2026
  6. added a commit that references this issue on Jun 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    OS-unsupportedtestsTests in the Lib/test dirtype-bugAn unexpected behavior, bug, or error

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions