summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/gtkorvo-dill/2.1-fix-clear_cache.patch
blob: cfab72341492cca988570b329a1d0d40f8f77f46 (plain) (blame)
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
138
139
140
141
142
143
144
145
146
147
148
diff -ur spack-src.org/CMakeLists.txt spack-src/CMakeLists.txt
--- spack-src.org/CMakeLists.txt	2020-03-26 16:38:53.358339744 +0900
+++ spack-src/CMakeLists.txt	2020-03-26 16:44:04.581014766 +0900
@@ -184,6 +184,9 @@
 CHECK_INCLUDE_FILES(malloc.h HAVE_MALLOC_H)
 CHECK_INCLUDE_FILES(memory.h HAVE_MEMORY_H)
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+include(CheckSymbolExists)
+check_symbol_exists(__clear_cache "" CLEAR_CACHE_DEFINED)
+message(STATUS "Clear cache defined is ${CLEAR_CACHE_DEFINED}")
 
 set (NO_DISASSEMBLER TRUE)
 if (ENABLE_DISASSEMBLY)
diff -ur spack-src.org/arm6.c spack-src/arm6.c
--- spack-src.org/arm6.c	2020-03-26 16:38:53.358339744 +0900
+++ spack-src/arm6.c	2020-03-26 16:45:20.428978615 +0900
@@ -1524,22 +1524,9 @@
 }
 
 
-/* Clear the instruction cache from `beg' to `end'.  This makes an
-   inline system call to SYS_cacheflush.  */
-#define CLEAR_INSN_CACHE(BEG, END)                                      \
-{                                                                       \
-  register unsigned long _beg __asm ("a1") = (unsigned long) (BEG);     \
-  register unsigned long _end __asm ("a2") = (unsigned long) (END);     \
-  register unsigned long _flg __asm ("a3") = 0;                         \
-  __asm __volatile ("swi 0x9f0002               @ sys_cacheflush"       \
-                    : "=r" (_beg)                                       \
-                    : "0" (_beg), "r" (_end), "r" (_flg));              \
-}
-/*
- *  Cache flush code grabbed from a Dec 1999 posting on libc-hacker 
- *  mailing list
- */
-extern void __clear_cache(char*, char *);
+#ifndef CLEAR_CACHE_DEFINED
+extern void __clear_cache(void *, void *);
+#endif
 
 static void
 arm6_flush(void *base, void *limit)
diff -ur spack-src.org/arm6_rt.c spack-src/arm6_rt.c
--- spack-src.org/arm6_rt.c	2020-03-26 16:38:53.358339744 +0900
+++ spack-src/arm6_rt.c	2020-03-26 16:48:18.927720543 +0900
@@ -109,22 +109,9 @@
     }
 }
 
-/* Clear the instruction cache from `beg' to `end'.  This makes an
-   inline system call to SYS_cacheflush.  */
-#define CLEAR_INSN_CACHE(BEG, END)                                      \
-{                                                                       \
-  register unsigned long _beg __asm ("a1") = (unsigned long) (BEG);     \
-  register unsigned long _end __asm ("a2") = (unsigned long) (END);     \
-  register unsigned long _flg __asm ("a3") = 0;                         \
-  __asm __volatile ("swi 0x9f0002               @ sys_cacheflush"       \
-                    : "=r" (_beg)                                       \
-                    : "0" (_beg), "r" (_end), "r" (_flg));              \
-}
-/*
- *  Cache flush code grabbed from a Dec 1999 posting on libc-hacker 
- *  mailing list
- */
-extern void __clear_cache(char*, char *);
+#ifndef CLEAR_CACHE_DEFINED
+extern void __clear_cache(void *, void *);
+#endif
 
 static void
 arm6_flush(void *base, void *limit)
diff -ur spack-src.org/arm8.c spack-src/arm8.c
--- spack-src.org/arm8.c	2020-03-26 16:38:53.358339744 +0900
+++ spack-src/arm8.c	2020-03-26 16:49:38.386063473 +0900
@@ -1524,22 +1524,9 @@
 }
 
 
-/* Clear the instruction cache from `beg' to `end'.  This makes an
-   inline system call to SYS_cacheflush.  */
-#define CLEAR_INSN_CACHE(BEG, END)                                      \
-{                                                                       \
-  register unsigned long _beg __asm ("a1") = (unsigned long) (BEG);     \
-  register unsigned long _end __asm ("a2") = (unsigned long) (END);     \
-  register unsigned long _flg __asm ("a3") = 0;                         \
-  __asm __volatile ("swi 0x9f0002               @ sys_cacheflush"       \
-                    : "=r" (_beg)                                       \
-                    : "0" (_beg), "r" (_end), "r" (_flg));              \
-}
-/*
- *  Cache flush code grabbed from a Dec 1999 posting on libc-hacker 
- *  mailing list
- */
-extern void __clear_cache(char*, char *);
+#ifndef CLEAR_CACHE_DEFINED
+extern void __clear_cache(void *, void *);
+#endif
 
 static void
 arm8_flush(void *base, void *limit)
diff -ur spack-src.org/arm8_rt.c spack-src/arm8_rt.c
--- spack-src.org/arm8_rt.c	2020-03-26 16:38:53.358339744 +0900
+++ spack-src/arm8_rt.c	2020-03-26 16:50:37.902312532 +0900
@@ -109,22 +109,9 @@
     }
 }
 
-/* Clear the instruction cache from `beg' to `end'.  This makes an
-   inline system call to SYS_cacheflush.  */
-#define CLEAR_INSN_CACHE(BEG, END)                                      \
-{                                                                       \
-  register unsigned long _beg __asm ("a1") = (unsigned long) (BEG);     \
-  register unsigned long _end __asm ("a2") = (unsigned long) (END);     \
-  register unsigned long _flg __asm ("a3") = 0;                         \
-  __asm __volatile ("swi 0x9f0002               @ sys_cacheflush"       \
-                    : "=r" (_beg)                                       \
-                    : "0" (_beg), "r" (_end), "r" (_flg));              \
-}
-/*
- *  Cache flush code grabbed from a Dec 1999 posting on libc-hacker 
- *  mailing list
- */
-extern void __clear_cache(char*, char *);
+#ifndef CLEAR_CACHE_DEFINED
+extern void __clear_cache(void *, void *);
+#endif
 
 static void
 arm8_flush(void *base, void *limit)
diff -ur spack-src.org/config.h.cmake spack-src/config.h.cmake
--- spack-src.org/config.h.cmake	2020-03-26 16:38:53.358339744 +0900
+++ spack-src/config.h.cmake	2020-03-26 16:52:52.256419382 +0900
@@ -13,10 +13,13 @@
 #cmakedefine HAVE_DIS_ASM_H
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
+#cmakedefine HAVE_DLFCN_H
 
 /* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
+#cmakedefine HAVE_INTTYPES_H
+
+/* Define to 1 if you have __clear_cache is defined  */
+#cmakedefine CLEAR_CACHE_DEFINED
 
 /* Define to 1 if you have the <malloc.h> header file. */
 #cmakedefine HAVE_MALLOC_H