summaryrefslogtreecommitdiff
blob: 4fb1c4eba7348b36f71bf461c473781e89342cd8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Fix build fauilure on ia64.

Build fails due to bitrot: some definitions
moved off from <sys/pthrace.h> to <asm/ptrace.h>
(similar to other arches).

fetch.c:39:26: error: field 'regs' has incomplete type
  struct pt_all_user_regs regs;
                          ^~~~
fetch.c:209:25: warning: 'struct ia64_fpreg' declared inside parameter list will not be visible outside of this definition or declaration
 fpreg_to_double (struct ia64_fpreg *fp) {
                         ^~~~~~~~~~
fetch.c: In function 'fpreg_to_double':
fetch.c:211:45: error: dereferencing pointer to incomplete type 'struct ia64_fpreg'
  asm ("ldf.fill %0=%1" : "=f"(result) : "m"(*fp));
                                             ^~~

diff --git a/sysdeps/linux-gnu/ia64/fetch.c b/sysdeps/linux-gnu/ia64/fetch.c
index 54dc5b8..b3b9a9a 100644
--- a/sysdeps/linux-gnu/ia64/fetch.c
+++ b/sysdeps/linux-gnu/ia64/fetch.c
@@ -134,9 +134,4 @@ allocate_reg(struct fetch_context *ctx, struct Process *proc,
 		return 0;
 
-	/* This would normally be brought over from asm/ptrace.h, but
-	 * when we do, we get namespace conflicts between asm/fpu.h
-	 * and libunwind.  */
-	enum { PT_AUR_BSP = 17 };
-
 	union cfm_t cfm = { .value = ctx->regs.cfm };
 	unsigned long *bsp = (unsigned long *)ctx->regs.ar[PT_AUR_BSP];
diff --git a/sysdeps/linux-gnu/ia64/ptrace.h b/sysdeps/linux-gnu/ia64/ptrace.h
index ef63b4f..8b131f1 100644
--- a/sysdeps/linux-gnu/ia64/ptrace.h
+++ b/sysdeps/linux-gnu/ia64/ptrace.h
@@ -20,2 +20,3 @@
 
 #include <sys/ptrace.h>
+#include <asm/ptrace.h>