aboutsummaryrefslogtreecommitdiff
path: root/util/crossgcc/patches/gcc-6.3.0_ada-musl_workaround.patch
blob: 5683fd058d51597975f76a2679df73b8f479a5bc (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
diff -urp gcc-6.3.0.bak/gcc/ada/adaint.c gcc-6.3.0/gcc/ada/adaint.c
--- gcc-6.3.0.bak/gcc/ada/adaint.c	2017-12-08 20:39:08.024709803 +0000
+++ gcc-6.3.0/gcc/ada/adaint.c	2017-12-08 20:06:13.674636566 +0000
@@ -103,6 +103,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"
@@ -3096,7 +3105,7 @@ __gnat_lwp_self (void)
 
 /* Dynamic cpu sets */
 
-cpu_set_t *
+void *
 __gnat_cpu_alloc (size_t count)
 {
   return CPU_ALLOC (count);
@@ -3109,33 +3118,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
@@ -3145,23 +3154,23 @@ __gnat_cpu_alloc_size (size_t count ATTR
 }
 
 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 -urp gcc-6.3.0.bak/gcc/ada/adaint.h gcc-6.3.0/gcc/ada/adaint.h
--- gcc-6.3.0.bak/gcc/ada/adaint.h	2017-12-08 20:39:08.024709803 +0000
+++ gcc-6.3.0/gcc/ada/adaint.h	2017-12-08 19:52:31.627939406 +0000
@@ -287,13 +287,11 @@ extern void   *__gnat_lwp_self			   (voi
 
 /* 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)