GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — python3/python3-test-unwind-x32.patch at master · pld-linux/python3 Expand file tree/ Copy pathpython3-test-unwind-x32.patchMore file actions 17 lines (16 loc) · 915 Bytes / Copy pathpython3-test-unwind-x32.patchFile metadata and controls17 lines (16 loc) · 915 Bytes 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 test_c_stack_unwind: on x32 the manual unwinder read the upper half of the saved rbp as the return address (always 0) and found no Python frames. --- Python-3.15.0.orig/Modules/_testinternalcapi.c 2026-10-09 23:24:21.282818226 +0200 +++ Python-3.15.0/Modules/_testinternalcapi.c 2026-10-09 23:24:21.359484893 +0200 @@ -103,6 +103,11 @@ static const uintptr_t min_frame_pointer // See: https://riscv-non-isa.github.io/riscv-elf-psabi-doc/#_frame_pointer_convention # define FRAME_POINTER_NEXT_OFFSET -2 # define FRAME_POINTER_RETURN_OFFSET -1 +#elif defined(__x86_64__) && defined(__ILP32__) +// x32 pushes the saved rbp and the return address as 8-byte slots while +// uintptr_t is 4 bytes, so the (little-endian) return address is at fp[2]. +# define FRAME_POINTER_NEXT_OFFSET 0 +# define FRAME_POINTER_RETURN_OFFSET 2 #else # define FRAME_POINTER_NEXT_OFFSET 0 # define FRAME_POINTER_RETURN_OFFSET 1 |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |