Source: libunwind
Version: 1.2.1-9
Severity: grave
Tags: patch
Justification: renders package unusable
Dear Maintainer,
* What led up to the situation?
I was running i-g-t on MIPS and hit a segfault during a stack
trace dump.
I then built the package from source to reproduce it, and found a
fix upstream for it (patch attached).
Discussion on the igt-dev mailing list:
https://lists.freedesktop.org/archives/igt-dev/2019-July/015029.html
-- System Information:
Debian Release: 10.0
APT prefers stable
APT policy: (500, 'stable'), (500, 'oldstable')
Architecture: mips
Kernel: Linux 4.19.0-5-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_WARN, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8),
LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: unable to detect
>From 23ed1a35645e9e83beb2d4de0bd682c18d9fd58f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=9A=D0=BE=D1=80=D0=BE=D0=BB=D0=B5=D0=B2=20=D0=A1=D0=B5?=
=?UTF-8?q?=D1=80=D0=B3=D0=B5=D0=B9?= <[email protected]>
Date: Wed, 22 Jun 2016 19:53:02 +0300
Subject: [PATCH] tdep_uc_addr: use +4 offset for UNW_MIPS_PC on MIPS (be)
According to mcontext_t definition its "pc" field
is also 64 bit wide and thus requires 4 byte offset
on MIPS32 (be).
---
src/mips/Ginit.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mips/Ginit.c b/src/mips/Ginit.c
index 8290c408..83b100fb 100644
--- a/src/mips/Ginit.c
+++ b/src/mips/Ginit.c
@@ -59,7 +59,7 @@ tdep_uc_addr (ucontext_t *uc, int reg)
{
char *addr = uc_addr (uc, reg);
- if (reg >= UNW_MIPS_R0 && reg <= UNW_MIPS_R31
+ if (((reg >= UNW_MIPS_R0 && reg <= UNW_MIPS_R31) || reg == UNW_MIPS_PC)
&& tdep_big_endian (unw_local_addr_space)
&& unw_local_addr_space->abi == UNW_MIPS_ABI_O32)
addr += 4;
--
2.20.1