1 Successfully tested platforms
2 =============================
5 __PLATFORM_____________________________________SIGSEGV___OVERFLOW__VERSION__
7 alpha-dec-osf4.0d | yes | yes | 2.1
8 alpha-dec-osf4.0f | yes | yes | 2.1
9 alphaev56-dec-osf4.0d | yes | yes | 2.6
10 alphaev56-dec-osf4.0f | yes | yes | 2.8
11 alpha-dec-osf4.0g | yes | yes | 2.1
12 alpha-dec-osf5.1 | yes | yes | 2.1
13 alphaev67-dec-osf5.1 | yes | yes | 2.2
14 alphaev67-dec-osf5.1a | yes | yes | 2.6
15 alphaev56-dec-osf5.1b | yes | yes | 2.6
16 alphaev6-dec-osf5.1b | yes | yes | 2.6
17 alphaev68-dec-osf5.1b | yes | yes | 2.8
18 alpha-unknown-freebsd4.8 | yes | yes | 2.1
19 alpha-portbld-freebsd5.5 | yes | yes | 2.3
20 alphaev67-unknown-linux2.4.17-gnu-glibc2.1 | yes | yes | 1.95
21 alphaev6-unknown-linux2.2.19-gnu-glibc2.2 | yes | yes | 2.1
22 alphaev67-unknown-linux2.2.20-gnu-glibc2.2 | yes | yes | 2.1
23 alphaev67-unknown-linux2.4.4-gnu-glibc2.2 | yes | yes | 2.1
24 alphaev6-unknown-linux2.4.9-gnu-glibc2.2 | yes | yes | 2.1
25 alphaev67-unknown-linux2.4.9-gnu-glibc2.2 | yes | yes | 2.1
26 alphaev6-unknown-linux2.4.18-gnu-glibc2.2 | yes | yes | 2.1
27 alphaev67-unknown-linux2.4.18-gnu-glibc2.2 | yes | yes | 2.1
28 alpha-unknown-linux2.4.19-gnu-glibc2.3 | yes | yes | 2.6
29 alphaev68-unknown-linux2.6.11-gnu-glibc2.3 | yes | yes | 2.2
30 alphaev56-unknown-linux2.6.34-gnu-glibc2.11 | yes | yes | 2.8
31 alpha-unknown-openbsd3.7 | yes | yes | 2.2
32 alpha-unknown-openbsd4.5 | yes | yes | 2.6
33 alpha-unknown-netbsd1.6 | yes | yes | 2.1
34 armv4l-unknown-linux2.4.0-gnu-glibc2.2 | no | yes | 2.1
35 armv4l-unknown-linux2.4.3-gnu-glibc2.2 | yes | yes | 2.1
36 armv4l-unknown-linux2.4.9-gnu-glibc2.2 | no | yes | 2.0.1
37 armv5tel-unknown-linux2.4.20-gnu-glibc2.2 | yes | yes | 2.2
38 armv6l-unknown-linux2.6.18-gnu-glibc2.3 | yes | yes | 2.4
39 arm-angstrom-linux2.6.23-gnueabi-glibc2.4 | yes | yes | 2.5
40 hppa1.1-hp-hpux11.00 | yes | yes | 2.1
41 hppa2.0-hp-hpux10.20 | yes | yes | 2.2
42 hppa2.0w-hp-hpux11.00 | yes | yes | 2.6
43 hppa2.0w-hp-hpux11.11 | yes | yes | 2.6
44 hppa2.0w-hp-hpux11.31 | yes | yes | 2.6
45 hppa-unknown-linux2.4.19-gnu-glibc2.2 | yes | yes | 2.0.1
46 hppa64-unknown-linux2.4.17-gnu-glibc2.2 | yes | yes | 2.1
47 hppa2.0-unknown-linux2.6.20.1-gnu-glibc2.3 | yes | no | 2.4
48 i370-ibm-openedition | no | no | 2.6
49 i586-pc-beos | no | yes | 2.1
50 i686-pc-cygwin | yes | yes | 2.8
51 i386-apple-darwin8.6.1 | yes | yes | 2.3
52 i686-apple-darwin8.6.1 | yes | yes | 2.3
53 i386-apple-darwin8.8.1 | yes | yes | 2.4
54 i386-apple-darwin8.8.2 | yes | yes | 2.4
55 i386-apple-darwin8.8.3 | yes | yes | 2.4
56 i386-apple-darwin8.9.1 | yes | yes | 2.4
57 i386-apple-darwin8.10.1 | yes | yes | 2.4
58 i386-apple-darwin8.11.1 | yes | yes | 2.6
59 i386-apple-darwin9.0.0 | yes | yes | 2.5
60 i386-apple-darwin9.1.0 | yes | yes | 2.5
61 i386-apple-darwin9.2.2 | yes | yes | 2.5
62 i386-apple-darwin9.3.0 | yes | yes | 2.6
63 i386-apple-darwin9.4.0 | yes | yes | 2.5
64 i386-apple-darwin9.5.0 | yes | yes | 2.6
65 i386-apple-darwin9.6.0 | yes | yes | 2.6
66 i386-apple-darwin9.7.0 | yes | yes | 2.8
67 i386-apple-darwin9.8.0 | yes | yes | 2.8
68 i386-apple-darwin10.2.0 | yes | yes | 2.6
69 i386-apple-darwin10.3.0 | yes | yes | 2.6
70 i586-pc-linux2.2.14-gnu-glibc2.1 | yes | yes | 2.1
71 i686-pc-linux2.2.14-gnu-glibc2.1 | yes | yes | 2.0
72 i686-pc-linux2.2.19-gnu-glibc2.1 | yes | yes | 1.95
73 i486-pc-linux2.2.21-gnu-glibc2.1 | yes | yes | 2.0
74 i586-pc-linux2.4.18-gnu-glibc2.1 | yes | yes | 2.0
75 i686-pc-linux2.4.19-gnu-glibc2.1 | yes | yes | 2.2
76 i686-pc-linux2.2.16-gnu-glibc2.2 | yes | yes | 2.0
77 i686-pc-linux2.2.19-gnu-glibc2.2 | yes | yes | 2.0
78 i686-pc-linux2.4.7-gnu-glibc2.2 | yes | yes | 2.1
79 i586-pc-linux2.4.9-gnu-glibc2.2 | yes | yes | 2.0
80 i686-pc-linux2.4.9-gnu-glibc2.2 | yes | yes | 2.0
81 i386-pc-linux2.4.18-gnu-glibc2.2 | yes | yes | 2.0
82 i686-pc-linux2.4.18-gnu-glibc2.2 | yes | yes | 2.0
83 i586-pc-linux2.4.19-gnu-glibc2.2 | yes | yes | 2.0
84 i686-pc-linux2.4.19-gnu-glibc2.2 | yes | yes | 2.0
85 i686-pc-linux2.4.20-gnu-glibc2.2 | yes | yes | 2.0
86 i586-pc-linux2.2.19-gnu-glibc2.3 | yes | yes | 2.1
87 i686-pc-linux2.4.18-gnu-glibc2.3 | yes | yes | 1.97
88 i486-pc-linux2.4.20-gnu-glibc2.3 | yes | yes | 2.0
89 i586-pc-linux2.4.20-gnu-glibc2.3 | yes | yes | 2.0
90 i686-pc-linux2.4.20-gnu-glibc2.3 | yes | yes | 2.0
91 i686-pc-linux2.4.21-gnu-glibc2.3 | yes | yes | 2.6
92 i586-pc-linux2.4.22-gnu-glibc2.3 | yes | yes | 2.0
93 i386-pc-mingw32 | yes | yes | 2.4
94 i586-pc-mingw32 | yes | yes | 2.1
95 i686-pc-mingw32 | yes | yes | 2.6
96 i386-unknown-mirbsd10 | yes | yes | 2.8
97 i386-pc-os2-emx | no | no | 2.5
98 i386-pc-nto-qnx6.3.2 | yes | no | 2.6
99 i386-pc-solaris2.8 | yes | yes | 2.7
100 i386-pc-solaris2.9 | yes | yes | 2.2
101 i386-pc-solaris2.10 | yes | yes | 2.8
102 i386-pc-solaris2.11 | yes | yes | 2.2
103 i686-pc-win32-msvc6 | yes | yes | 1.96
104 i386-unknown-freebsd4.0 | yes | yes | 2.1
105 i386-unknown-freebsd4.0-gnu-glibc2.3 | yes | yes | 2.1
106 i386-unknown-freebsd4.6 | yes | yes | 1.95
107 i386-unknown-freebsd4.7 | yes | yes | 2.1
108 i386-unknown-freebsd4.8 | yes | yes | 2.1
109 i386-unknown-freebsd4.9 | yes | yes | 2.2
110 i386-unknown-freebsd4.10 | yes | yes | 2.2
111 i386-unknown-freebsd5.0 | yes | yes | 2.8
112 i386-portbld-freebsd6.0 | yes | yes | 2.3
113 i386-unknown-freebsd6.2 | yes | yes | 2.6
114 i386-unknown-freebsd6.4 | yes | yes | 2.6
115 i386-portbld-freebsd8.0 | yes | yes | 2.8
116 i686-unknown-kfreebsd6.2-gnu-glibc2.6 | yes | yes | 2.5+
117 i386-unknown-netbsdelf1.6 | no | no | 2.8
118 i386-unknown-netbsdelf2.0.2 | yes | yes | 2.4
119 i386-unknown-netbsdelf3.0 | yes | yes | 2.4
120 i386-unknown-netbsd | yes | no | 2.2
121 i386-unknown-openbsd3.2 | yes | yes | 2.3
122 i386-unknown-openbsd3.3 | yes | yes | 2.1
123 i386-unknown-openbsd3.4 | yes | yes | 2.2
124 i386-unknown-openbsd3.6 | yes | yes | 2.1
125 i386-unknown-openbsd3.8 | yes | yes | 2.4
126 i386-unknown-openbsd3.9 | yes | yes | 2.8
127 i386-unknown-openbsd4.0 | yes | yes | 2.6
128 ia64-portbld-freebsd7.0 | yes | no | 2.3
129 ia64-hp-hpux11.22 | yes | no | 2.1
130 ia64-hp-hpux11.23 | yes | no | 2.2
131 ia64-hp-hpux11.31 | yes | no | 2.8
132 ia64-unknown-linux2.4.18-gnu-glibc2.2 | yes | yes | 2.4
133 ia64-unknown-linux2.4.21-gnu-glibc2.3 | yes | yes | 2.6
134 ia64-unknown-linux2.6.9-gnu-glibc2.3 | yes | yes | 2.6
135 ia64-unknown-linux2.6.16.27-gnu-glibc2.4 | yes | yes | 2.6
136 ia64-unknown-linux2.6.18-gnu-glibc2.3 | yes | yes | 2.6
137 mips-sgi-irix5.3 | yes | yes | 2.6+
138 mips-sgi-irix6.2 | yes | yes | 2.6+
139 mips-sgi-irix6.5 | yes | yes | 2.8
140 mips-unknown-linux2.4.27-gnu-glibc2.3 | yes | yes | 2.6
141 nsr-tandem-nsk | no | no | 2.1
142 rs6000-ibm-aix3.2.5 | yes | no | 2.2
143 rs6000-ibm-aix4.2.0.0 | yes | yes | 2.2
144 rs6000-ibm-aix4.2.1.0 | yes | yes | 2.1
145 powerpc-ibm-aix4.3.2.0 | yes | yes | 2.6
146 powerpc-ibm-aix4.3.3.0 | yes | yes | 1.95
147 powerpc-ibm-aix5.1.0.0 | yes | yes | 2.8
148 powerpc-ibm-aix5.2.0.0 | yes | yes | 2.5
149 powerpc-ibm-aix5.3.0.0 | yes | yes | 2.8
150 powerpc-ibm-aix6.1.0.0 | yes | yes | 2.6
151 powerpc-apple-darwin5.5 | yes | yes | 2.2
152 powerpc-apple-darwin6.0 | yes | yes | 2.4
153 powerpc-apple-darwin6.8 | yes | yes | 2.2
154 powerpc-apple-darwin7.7.0 | yes | yes | 2.2
155 powerpc-apple-darwin7.8.0 | yes | yes | 2.2
156 powerpc-apple-darwin7.9.0 | yes | yes | 2.6
157 powerpc-apple-darwin8.1.0 | yes | yes | 2.2
158 powerpc-apple-darwin8.3.0 | yes | yes | 2.2
159 powerpc-apple-darwin8.4.0 | yes | yes | 2.2
160 powerpc-apple-darwin8.7.0 | yes | yes | 2.4
161 powerpc-apple-darwin8.8.0 | yes | yes | 2.4
162 powerpc-apple-darwin8.9.0 | yes | yes | 2.4
163 powerpc-apple-darwin8.10.0 | yes | yes | 2.5
164 powerpc-apple-darwin8.11.0 | yes | yes | 2.6
165 powerpc-apple-darwin8.11.1 | yes | yes | 2.5
166 powerpc-apple-darwin9.2.0 | yes | yes | 2.5
167 powerpc-apple-darwin9.6.0 | yes | yes | 2.6
168 powerpc-apple-darwin9.8.0 | yes | yes | 2.8
169 powerpc-unknown-linux2.2.17-gnu-glibc2.1 | no | yes | 1.95
170 powerpc-unknown-linux2.2.17-gnu-glibc2.2 | yes | yes | 2.0.1
171 powerpc-unknown-linux2.4.12-gnu-glibc2.2 | yes | yes | 2.6
172 powerpc-unknown-linux2.4.19-gnu-glibc2.2 | yes | yes | 2.4
173 powerpc-unknown-linux2.4.28-gnu-glibc2.2 | yes | yes | 2.1
174 powerpc-unknown-linux2.4.26-gnu-glibc2.3 | yes | yes | 2.1
175 powerpc-unknown-linux2.6.10-gnu-glibc2.3 | yes | yes | 2.2
176 powerpc-unknown-linux2.6.12-gnu-glibc2.3 | yes | yes | 2.7
177 powerpc-unknown-linux2.6.16-gnu-glibc2.3 | yes | yes | 2.4
178 powerpc-unknown-linux2.6.16-gnu-glibc2.4 | yes | yes | 2.6
179 powerpc-unknown-netbsd2.0 | yes | no | 2.1
180 powerpc-unknown-netbsd3.99.23 | yes | yes | 2.4
181 powerpc-unknown-openbsd4.0 | yes | yes | 2.4
182 powerpc-unknown-openbsd4.1 | yes | yes | 2.4
183 powerpc64-unknown-linux2.6.5-gnu-glibc2.3 | yes | yes | 2.4
184 powerpc64-unknown-linux2.6.16.27-gnu-glibc2.4 | yes | yes | 2.4
185 sh-unknown-openbsd4.6 | yes | yes | 2.5
186 s390x-ibm-linux2.6.16.46-gnu-glibc2.4 | no | yes | 2.5
187 sparc-unknown-linux2.4.32-gnu-glibc2.3 | yes | no | 2.1
188 sparc-unknown-openbsd3.9 | yes | no | 2.4
189 sparc-sun-solaris2.5.1 | yes | yes | 2.2
190 sparc-sun-solaris2.6 | yes | yes | 2.8
191 sparc-sun-solaris2.7 | yes | yes | 2.8
192 sparc-sun-solaris2.8 | yes | yes | 2.8
193 sparc-sun-solaris2.9 | yes | yes | 2.6
194 sparc-sun-solaris2.10 | yes | yes | 2.8
195 sparc-sun-solaris2.11 | yes | yes | 2.4
196 sparc64-unknown-linux2.2.18-gnu-glibc2.1 | no | no | 1.95
197 sparc64-unknown-linux2.4.28-gnu-glibc2.3 | yes | no | 2.8
198 sparc64-unknown-openbsd3.6 | no | no | 2.2
199 x86_64-apple-darwin10.3.0 | yes | yes | 2.8
200 x86_64-apple-darwin10.4.0 | yes | yes | 2.8
201 x86_64-unknown-kfreebsd6.2-gnu-glibc2.6 | yes | yes | 2.5+
202 x86_64-unknown-linux2.4.21-gnu-glibc2.2 | yes | yes | 2.1
203 x86_64-unknown-linux2.4.21-gnu-glibc2.3 | yes | yes | 2.1
204 x86_64-unknown-linux2.6.3-gnu-glibc2.3 | yes | yes | 2.1
205 x86_64-unknown-linux2.6.9-gnu-glibc2.3 | yes | yes | 2.4
206 x86_64-unknown-linux2.6.11.4-gnu-glibc2.3 | yes | yes | 2.4
207 x86_64-unknown-linux2.6.13-gnu-glibc2.3 | yes | yes | 2.4
208 x86_64-unknown-linux2.6.16-gnu-glibc2.4 | yes | yes | 2.4
209 x86_64-unknown-linux2.6.16.13-gnu-glibc2.4 | yes | yes | 2.4
210 x86_64-unknown-linux2.6.16.21-gnu-glibc2.4 | yes | yes | 2.4
211 x86_64-unknown-linux2.6.16.27-gnu-glibc2.4 | yes | yes | 2.6
212 x86_64-unknown-linux2.6.17-gnu-glibc2.4 | yes | yes | 2.4
213 x86_64-unknown-linux2.6.20-gnu-glibc2.4 | yes | yes | 2.4
214 x86_64-unknown-linux2.6.20-gnu-glibc2.5 | yes | yes | 2.4
215 x86_64-unknown-linux2.6.20.1-gnu-glibc2.5 | yes | yes | 2.4
216 x86_64-unknown-linux2.6.21-gnu-glibc2.6 | yes | yes | 2.4
217 x86_64-unknown-netbsd3.0 | yes | yes | 2.4
218 x86_64-unknown-netbsd4.99.72 | yes | yes | 2.5
219 x86_64-pc-solaris2.11 | yes | yes | 2.5
220 amd64-portbld-freebsd5.4 | yes | yes | 2.2
221 amd64-portbld-freebsd6.0 | yes | yes | 2.3
222 amd64-portbld-freebsd7.0 | yes | yes | 2.3
225 On FreeBSD 5.2, libsigsegv works best if the /proc filesystem is mounted.
226 (It is not mounted by default.)
229 Porting to new platforms
230 ========================
232 On Unix systems, where faults are notified to the program through a signal
233 handler, the core routines in handler-unix.c can be used without
234 modifications. But they need the following bits of information. Each of
235 them is stored in a platform dependent file; the file is chosen in configure.
237 * List of signals that are sent when an invalid virtual memory address
238 is accessed, or when the stack overflows.
239 This is a file among signals-*.h.
240 configure chooses and sets the variable CFG_SIGNALS.
242 * What arguments are passed to a fault handler.
243 This is a file among fault-*.h.
244 configure chooses and sets the variable CFG_FAULT.
246 * How to determine the stack's virtual memory area.
247 This is a file among stackvma-*.c.
248 configure chooses and sets the variable CFG_STACKVMA.
250 * How to leave a signal handler that is executing on the alternate
252 This is a file among leave-*.c.
253 configure chooses and sets the variable CFG_LEAVE.
255 For each of these, the approach should be:
257 - Find a way to implement the needed functionality. This might involve
258 study of the system include files (in particular <signal.h> and
259 <ucontext.h>) and of the kernel sources.
260 For CFG_FAULT, the best starting point is to run the tests/sigsegv1
261 program with a breakpoint set at 'sigsegv_handler'.
263 - Add to configure.in a test whether your new code works. This will
264 help portability to platforms similar to yours.
265 Then regenerate the configure script (run "autoconf") and verify
266 that the test says "yes" on your platform.
268 - Create a platform dependent file (e.g. fault-<os>-<cpu>.h) and change
269 configure.in to choose this particular file when your test says "yes".
270 Then regenerate the configure script (run "autoconf").
272 - Verify that "make" and "make check" pass.
274 For non-Unix systems, a separate handler-<os>.c is likely to be needed.