summaryrefslogtreecommitdiff
path: root/util/crossgcc/patches/gcc-11.3.0_ada-musl_workaround.patch
blob: 1f504a4b5ebb44a8750591361ee70f3a0f7f8994 (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
index 3b0aea92c05..998f2c66289 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -107,6 +107,15 @@
 #define xmalloc(S) malloc (S)
 #define xrealloc(V,S) realloc (V,S)
 #else
+#if !defined(__ANDROID__) && defined(__linux__)
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <sched.h>
+#ifdef __cplusplus
+}
+#endif
+#endif
 #include "config.h"
 #include "system.h"
 #include "version.h"
@@ -3265,7 +3274,7 @@ __gnat_lwp_self (void)
 
 /* Dynamic cpu sets */
 
-cpu_set_t *
+void *
 __gnat_cpu_alloc (size_t count)
 {
   return CPU_ALLOC (count);
@@ -3278,33 +3287,33 @@ __gnat_cpu_alloc_size (size_t count)
 }
 
 void
-__gnat_cpu_free (cpu_set_t *set)
+__gnat_cpu_free (void *set)
 {
-  CPU_FREE (set);
+  CPU_FREE ((cpu_set_t *)set);
 }
 
 void
-__gnat_cpu_zero (size_t count, cpu_set_t *set)
+__gnat_cpu_zero (size_t count, void *set)
 {
   CPU_ZERO_S (count, set);
 }
 
 void
-__gnat_cpu_set (int cpu, size_t count, cpu_set_t *set)
+__gnat_cpu_set (int cpu, size_t count, void *set)
 {
   /* Ada handles CPU numbers starting from 1, while C identifies the first
      CPU by a 0, so we need to adjust. */
-  CPU_SET_S (cpu - 1, count, set);
+  CPU_SET_S (cpu - 1, count, (cpu_set_t *)set);
 }
 
 #else /* !CPU_ALLOC */
 
 /* Static cpu sets */
 
-cpu_set_t *
+void *
 __gnat_cpu_alloc (size_t count ATTRIBUTE_UNUSED)
 {
-  return (cpu_set_t *) xmalloc (sizeof (cpu_set_t));
+  return xmalloc (sizeof (cpu_set_t));
 }
 
 size_t
@@ -3314,23 +3323,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
 }
 
 void
-__gnat_cpu_free (cpu_set_t *set)
+__gnat_cpu_free (void *set)
 {
   free (set);
 }
 
 void
-__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, cpu_set_t *set)
+__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, void *set)
 {
   CPU_ZERO (set);
 }
 
 void
-__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, cpu_set_t *set)
+__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, void *set)
 {
   /* Ada handles CPU numbers starting from 1, while C identifies the first
      CPU by a 0, so we need to adjust. */
-  CPU_SET (cpu - 1, set);
+  CPU_SET (cpu - 1, (cpu_set_t *)set);
 }
 #endif /* !CPU_ALLOC */
 #endif /* __linux__ */
diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
index 0d12f7e9020..7b3def03fb0 100644
--- a/gcc/ada/adaint.h
+++ b/gcc/ada/adaint.h
@@ -316,13 +316,11 @@ extern void   *__gnat_lwp_self			   (void);
 
 /* Routines for interface to required CPU set primitives */
 
-#include <sched.h>
-
-extern cpu_set_t *__gnat_cpu_alloc                 (size_t);
+extern void *__gnat_cpu_alloc                 (size_t);
 extern size_t __gnat_cpu_alloc_size                (size_t);
-extern void   __gnat_cpu_free                  (cpu_set_t *);
-extern void   __gnat_cpu_zero                      (size_t, cpu_set_t *);
-extern void   __gnat_cpu_set                       (int, size_t, cpu_set_t *);
+extern void   __gnat_cpu_free                  (void *);
+extern void   __gnat_cpu_zero                      (size_t, void *);
+extern void   __gnat_cpu_set                       (int, size_t, void *);
 #endif
 
 #if defined (_WIN32)