summaryrefslogtreecommitdiffstats
path: root/main/gcc/ada-musl.patch
blob: a44056a4cb727a82a12ea3af9ab4dc2620209ec3 (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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
diff -rup gcc-5.1.0/gcc.orig/ada/adaint.c gcc-5.1.0/gcc/ada/adaint.c
--- gcc-5.1.0/gcc.orig/ada/adaint.c	2015-02-20 11:48:57.000000000 +0000
+++ gcc-5.1.0/gcc/ada/adaint.c	2015-06-02 10:47:51.672767476 +0000
@@ -70,6 +70,11 @@
 #include <sys/param.h>
 #include <sys/pstat.h>
 #endif
+ 
+#if defined (linux)
+#define _GNU_SOURCE 1
+#include <sched.h>
+#endif
 
 #ifdef __PikeOS__
 #define __BSD_VISIBLE 1
@@ -3057,8 +3062,6 @@ __gnat_lwp_self (void)
    return (void *) syscall (__NR_gettid);
 }
 
-#include <sched.h>
-
 /* glibc versions earlier than 2.7 do not define the routines to handle
    dynamically allocated CPU sets. For these targets, we use the static
    versions. */
@@ -3067,7 +3070,7 @@ __gnat_lwp_self (void)
 
 /* Dynamic cpu sets */
 
-cpu_set_t *
+void *
 __gnat_cpu_alloc (size_t count)
 {
   return CPU_ALLOC (count);
@@ -3080,33 +3083,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);
+  CPU_ZERO_S (count, (cpu_set_t *) 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
@@ -3116,23 +3119,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);
+  CPU_ZERO ((cpu_set_t *) 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 -rup gcc-5.1.0/gcc.orig/ada/adaint.h gcc-5.1.0/gcc/ada/adaint.h
--- gcc-5.1.0/gcc.orig/ada/adaint.h	2015-01-27 17:20:27.000000000 +0000
+++ gcc-5.1.0/gcc/ada/adaint.h	2015-06-02 10:47:23.188910894 +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)
diff -rup gcc-5.1.0/gcc.orig/ada/gcc-interface/Makefile.in gcc-5.1.0/gcc/ada/gcc-interface/Makefile.in
--- gcc-5.1.0/gcc.orig/ada/gcc-interface/Makefile.in	2015-04-09 20:29:28.000000000 +0000
+++ gcc-5.1.0/gcc/ada/gcc-interface/Makefile.in	2015-06-02 10:47:23.188910894 +0000
@@ -1910,7 +1910,7 @@ ifeq ($(strip $(filter-out powerpc% linu
 endif
 
 # ARM linux, GNU eabi
-ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
+ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-muslgnueabi%,$(target_cpu) $(target_os))),)
   LIBGNAT_TARGET_PAIRS = \
   a-intnam.ads<a-intnam-linux.ads \
   s-inmaop.adb<s-inmaop-posix.adb \