qemu: add patches to fix build on ppc64(le)-musl
The musl headers are laid out differently, so it needs a couple workarounds to get access to all the definitions. This also fixes qemu-user-static. [ci skip] Closes: #11373 [via git-merge-pr]
This commit is contained in:
parent
7a08534cbf
commit
bd05206403
2 changed files with 28 additions and 0 deletions
12
srcpkgs/qemu/patches/musl-ppc64-pt_nip.patch
Normal file
12
srcpkgs/qemu/patches/musl-ppc64-pt_nip.patch
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
This include is necessary to get PT_NIP on musl.
|
||||||
|
--- linux-user/host/ppc64/hostdep.h
|
||||||
|
+++ linux-user/host/ppc64/hostdep.h
|
||||||
|
@@ -17,6 +17,8 @@
|
||||||
|
|
||||||
|
#ifndef __ASSEMBLER__
|
||||||
|
|
||||||
|
+#include <asm/ptrace.h>
|
||||||
|
+
|
||||||
|
/* These are defined by the safe-syscall.inc.S file */
|
||||||
|
extern char safe_syscall_start[];
|
||||||
|
extern char safe_syscall_end[];
|
16
srcpkgs/qemu/patches/musl-ppc64-pt_regs.patch
Normal file
16
srcpkgs/qemu/patches/musl-ppc64-pt_regs.patch
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
On musl, the regs field in uc_mcontext is void * so it is necessary to
|
||||||
|
cast it. The sys/user.h include is to get access to definition of pt_regs.
|
||||||
|
--- accel/tcg/user-exec.c
|
||||||
|
+++ accel/tcg/user-exec.c
|
||||||
|
@@ -285,9 +285,10 @@ int cpu_signal_handler(int host_signum, void *pinfo,
|
||||||
|
* From Wine
|
||||||
|
*/
|
||||||
|
#ifdef linux
|
||||||
|
+#include <sys/user.h>
|
||||||
|
/* All Registers access - only for local access */
|
||||||
|
#define REG_sig(reg_name, context) \
|
||||||
|
- ((context)->uc_mcontext.regs->reg_name)
|
||||||
|
+ (((struct pt_regs *)(context)->uc_mcontext.regs)->reg_name)
|
||||||
|
/* Gpr Registers access */
|
||||||
|
#define GPR_sig(reg_num, context) REG_sig(gpr[reg_num], context)
|
||||||
|
/* Program counter */
|
Loading…
Add table
Add a link
Reference in a new issue