resetting manifest requested domain to floor
[platform/upstream/pth.git] / PORTING
1    ____  _   _
2   |  _ \| |_| |__                  ``A good magician never reveals
3   | |_) | __| '_ \                   his secret; the unbelievable trick
4   |  __/| |_| | | |                  becomes simple and obvious once it is
5   |_|    \__|_| |_|                  explained. So too with UNIX.''
6
7   GNU Pth - The GNU Portable Threads
8
9   PORTING
10   =======
11
12   SUCCESSFULLY TESTED PLATFORMS
13
14   The Pth package was successfully tested on the following platforms
15   (and should automatically adjust to other platforms, of course):
16
17   __PLATFORM_ID_________________________ __MACHINE_CONTEXT__ _STACK_ _VERSION_
18   i386-unknown-freebsd6.1               | mcsc/sc/mc        | down  | 2.0.6
19   i386-unknown-freebsd5.3               | mcsc/sc/mc        | down  | 2.0.3
20   i386-unknown-freebsd4.10              | sjlj/ssjlj/sas    | down  | 2.0.1
21   i386-unknown-freebsd4.7               | sjlj/ssjlj/sas    | down  | 2.0b0
22   i386-pc-solaris2.8                    | mcsc/sc/mc        | down  | 1.4.1
23   i686-gnu-linux-gnu2.2glibc2.2         | sjlj/ssjlj/sas    | down  | 1.4.1
24   i386-pc-sysv4.2uw2.1.2                | mcsc/sc/mc        | down  | 1.4.1
25   alpha-portbld-freebsd4.6.2            | sjlj/ssjlj/sas    | down  | 1.4.1
26   i586-pc-freebsd4.6                    | sjlj/ssjlj/sas    | down  | 1.4.1
27   m68k--netbsdelf                       | sjlj/ssjlj/sas    | down  | 1.4.1
28   alpha-unknown-freebsd4.6              | sjlj/ssjlj/sas    | down  | 1.4.1
29   powerpc-apple-darwin6.1               | sjlj/ssjlj/sas    | down  | 1.4.1
30   powerpc-apple-netbsd1.5.2             | sjlj/ssjlj/sas    | down  | 1.4.1
31   i386-pclocal-interix                  | sjlj/sjljisc/none | down  | 1.4.1
32   powerpc-ibm-aix4.3.1.0                | mcsc/sc/mc        | down  | 1.4.1
33   alpha-unknown-netbsd1.5.3.            | sjlj/ssjlj/sas    | down  | 1.4.1
34   alphaev56-dec-osf4.0a                 | mcsc/sc/mc        | down  | 1.4.1
35   i686-redhat-linux-gnu2.2glibc1        | sjlj/ssjlj/sas    | down  | 1.4.1
36   i386-portbld-freebsd4.4               | sjlj/ssjlj/sas    | down  | 1.4.1
37   i686-pc-sco3.2v5.0.6                  | sjlj/ssjlj/sas    | down  | 1.4.1
38   i386-portbld-freebsd4.5               | sjlj/ssjlj/sas    | down  | 1.4.1
39   i386-portbld-freebsd4.6               | sjlj/ssjlj/sas    | down  | 1.4.1
40   i686-pc-freebsd4.6                    | sjlj/ssjlj/sas    | down  | 1.4.1
41   i686-pc-freebsd4.5                    | sjlj/ssjlj/sas    | down  | 1.4.1
42   i386-portbld-freebsd4.7               | sjlj/ssjlj/sas    | down  | 1.4.1
43   rs6000-ibm-aix5.1.0.0                 | mcsc/sc/mc        | down  | 1.4.1
44   i386-unknown-gnu0.2                   | sjlj/sjljlx/none  | down  | 1.4.1
45   sparc--netbsdelf                      | sjlj/ssjlj/sas    | down  | 1.4.1
46   sparc-sun-solaris2.9                  | mcsc/sc/mc        | down  | 1.4.1
47   sparc-unknown-netbsd1.5.2             | sjlj/ssjlj/sas    | down  | 1.4.1
48   sparc-unknown-netbsd1.6               | sjlj/ssjlj/sas    | down  | 1.4.1
49   i586-pc-freebsd4.5                    | sjlj/ssjlj/sas    | down  | 1.4.1
50   vax--netbsdelf                        | sjlj/ssjlj/sas    | down  | 1.4.1
51   i386-unknown-netbsd1.5.2              | sjlj/ssjlj/sas    | down  | 1.4.1
52   i386-unknown-netbsd1.5ZA              | sjlj/ssjlj/sas    | down  | 1.4.1
53   i386-unknown-netbsd1.6                | sjlj/ssjlj/sas    | down  | 1.4.1
54   i386-unknown-netbsd1.6.               | sjlj/ssjlj/sas    | down  | 1.4.1
55   i386--netbsdelf                       | sjlj/ssjlj/sas    | down  | 1.4.1
56   i686-debian-linux-gnu2.4glibc2.1      | sjlj/ssjlj/sas    | down  | 1.4.1
57   i586-debian-linux-gnu2.2glibs2.2      | mcsc/sc/mc        | down  | 1.4.1
58   i586-gnu-linux-gnu2.4glibc2.2         | mcsc/sc/mc        | down  | 1.4.1
59   i586-sco-sysv5                        | mcsc/sc/mc        | down  | 1.4.1
60   i586-redhat-linux-gnu2.4glibc2.3      | mcsc/sc/mc        | down  | 1.4.1
61   i386-pc-freebsd4.0-gnu                | mcsc/sc/mc        | down  | 1.4.1
62   i386-pc-freebsd4.3                    | sjlj/ssjlj/sas    | down  | 1.4.1
63   i386-pc-freebsd4.5                    | sjlj/ssjlj/sas    | down  | 1.4.1
64   i686-suse-linux-gnu2.4glibc2.2        | mcsc/sc/mc        | down  | 1.4.1
65   m68k--netbsd                          | sjlj/ssjlj/sas    | down  | 1.4.1
66   i686-gnu-linux-gnu2.4glibc2.2         | mcsc/sc/mc        | down  | 1.4.1
67   i386-pc-sco3.2v5.0.6                  | sjlj/ssjlj/sas    | down  | 1.4.1
68   i386--freebsd4.4                      | sjlj/ssjlj/sas    | down  | 1.4.0
69   i386--freebsd4.5                      | sjlj/ssjlj/sas    | down  | 1.4.0
70   powerpc-yellowdog-linux-gnu2.4glibc2. | sjlj/ssjlj/sas    | down  | 1.4.0
71   i586-pc-cygwin                        | sjlj/sjljw32/none | down  | 1.4.0
72   i586-redhat-linux-gnu2.4glibc2.2      | mcsc/sc/mc        | down  | 1.4.0
73   mips-debian-linux-gnu2.4glibc2.2      | sjlj/ssjlj/sas    | down  | 1.4.0
74   i386-portbld-freebsd4.3               | sjlj/ssjlj/sas    | down  | 1.4.0
75   powerpc-yellowdog-linux-gnu2.4glibc2. | sjlj/ssjlj/sas    | down  | 1.4.0
76   powerpc-apple-darwin6.0               | sjlj/ssjlj/sas    | down  | 1.4.0
77   i686-debian-linux-gnu2.2glibc2.2      | mcsc/sc/mc        | down  | 1.4.0
78   i386-unknown-openbsd3.0               | sjlj/ssjlj/sas    | down  | 1.4.0
79   sparc-unknown-openbsd2.9              | sjlj/ssjlj/sas    | down  | 1.4.0
80   arm-redhat-linux-gnu2.2glibc2.1       | sjlj/ssjlj/sas    | down  | 1.4.0
81   i686-debian-linux-gnu2.4glibc2.2      | mcsc/sc/mc        | down  | 1.4.0
82   i586-debian-linux-gnu2.2glibc2.2      | sjlj/ssjlj/sas    | down  | 1.4.0
83   i686-pc-freebsd4.3                    | sjlj/ssjlj/sas    | down  | 1.4a4
84   i686-pc-freebsd4.1                    | sjlj/ssjlj/sas    | down  | 1.4a3
85   i386-unknown-netbsd1.4.2              | sjlj/ssjlj/sas    | down  | 1.4a2
86   i686-pc-freebsd3.5                    | sjlj/ssjlj/sas    | down  | 1.4a2
87   alpha-unknown-netbsd1.5.1             | sjlj/ssjlj/sas    | down  | 1.4a2
88   hppa2.0w-hp-hpux11.00                 | mcsc/sc/mc        | up    | 1.4a1
89   i586-redhat-linux-gnu2.2glibc1        | sjlj/ssjlj/sas    | down  | 1.3.7
90   i686-redhat-linux-gnu2.4glibc2.2      | sjlj/ssjlj/sas    | down  | 1.3.7
91   i686-redhat-linux-gnu2.2glibc2.2      | sjlj/ssjlj/sas    | down  | 1.3.7
92   i586-gnu-linux-gnu2.4glibc2.1         | sjlj/ssjlj/sas    | down  | 1.3.7
93   i386-unknown-openbsd2.7               | sjlj/ssjlj/sas    | down  | 1.3.7
94   i586-suse-linux-gnu2.2glibc2.0        | sjlj/sjljlx/none  | down  | 1.3.7
95   i386-unknown-openbsd2.8               | sjlj/ssjlj/sas    | down  | 1.3.7
96   i486-gnu-linux-gnu2.0glibc1           | sjlj/sjljlx/none  | down  | 1.3.7
97   m68k-apple-netbsd1.3.3                | sjlj/ssjlj/sas    | down  | 1.3.7
98   mips-compaq-nonstopux                 | sjlj/ssjlj/sas    | down  | 1.3.7
99   mips-dec-netbsd1.5                    | sjlj/ssjlj/sas    | down  | 1.3.7
100   hppa1.1-hp-hpux10.10                  | sjlj/ssjlj/sas    | up    | 1.3.7
101   i586-pc-freebsd4.1                    | sjlj/ssjlj/sas    | down  | 1.3.7
102   i686-pc-freebsd4.2                    | sjlj/ssjlj/sas    | down  | 1.3.7
103   mips-sgi-irix6.3                      | mcsc/sc/mc        | down  | 1.3.7
104   i686-pc-freebsd4.1.1                  | sjlj/ssjlj/sas    | down  | 1.3.7
105   powerpc-redhat-linux-gnu2.2glibc2.1   | sjlj/ssjlj/sas    | down  | 1.3.7
106   i386-pc-bsdi4.1                       | sjlj/ssjlj/sas    | down  | 1.3.7
107   i386-pc-freebsd3.2                    | sjlj/ssjlj/sas    | down  | 1.3.7
108   rs6000-ibm-aix4.2.0.0                 | mcsc/sc/mc        | down  | 1.3.7
109   sparc--netbsd                         | sjlj/ssjlj/sas    | down  | 1.3.7
110   i586-redhat-linux-gnu2.2glibc2.2      | sjlj/ssjlj/sas    | down  | 1.3.7
111   i686-pc-cygwin                        | sjlj/sjljw32/none | down  | 1.3.6
112   i586-debian-linux-gnu2.4glibc2.1      | sjlj/ssjlj/sas    | down  | 1.3.6
113   powerpc-apple-netbsd1.4.2             | sjlj/ssjlj/sas    | down  | 1.3.5
114   alpha-redhat-linux-gnu2.2glibc2.1     | sjlj/ssjlj/sas    | down  | 1.3.5
115   alpha-unknown-freebsd5.0              | sjlj/ssjlj/sas    | down  | 1.3.5
116   i486-redhat-linux-gnu2.2glibc2.1      | sjlj/ssjlj/sas    | down  | 1.3.5
117   powerpc-debian-linux-gnu2.2glibc2.1   | sjlj/ssjlj/sas    | down  | 1.3.5
118   powerpc-ibm-aix4.3.3.0                | mcsc/sc/mc        | down  | 1.3.5
119   i686-pc-sco3.2v5.0.4                  | sjlj/ssjlj/sas    | down  | 1.3.5
120   alphaev6-dec-osf4.0f                  | mcsc/sc/mc        | down  | 1.3.5
121   i686-gnu-linux-gnu2.2glibc2.1         | sjlj/ssjlj/sas    | down  | 1.3.5
122   rs6000-ibm-aix4.1.5.0                 | sjlj/ssjlj/ss     | down  | 1.3.5
123   rs6000-ibm-aix4.3.3.0                 | mcsc/sc/mc        | down  | 1.3.5
124   i686-pc-freebsd3.2                    | sjlj/ssjlj/sas    | down  | 1.3.5
125   i386-pc-interix                       | sjlj/sjljisc/none | down  | 1.3.5
126   i386-unknown-netbsd1.4T               | sjlj/ssjlj/sas    | down  | 1.3.5
127   i386-pc-sysv5uw7.1.0                  | mcsc/sc/mc        | down  | 1.3.5
128   m68k-cbm-amigaos                      | sjlj/ssjlj/ss     | down  | 1.3.5
129   i686-gnu-linux-gnu2.0glibc1           | sjlj/sjljlx/none  | down  | 1.3.5
130   sparc64-redhat-linux-gnu2.2glibc2.1   | sjlj/ssjlj/sas    | down  | 1.3.5
131   mipsel-unknown-netbsd1.4.2            | sjlj/ssjlj/sas    | down  | 1.3.5
132   i686-gnu-linux-gnu2.2glibc1           | sjlj/sjljlx/none  | down  | 1.3.5
133   i686-debian-linux-gnu2.2glibc2.1      | sjlj/ssjlj/sas    | down  | 1.3.5
134   alphaev56-dec-osf4.0e                 | mcsc/sc/mc        | down  | 1.3.4
135   i586-pc-freebsd5.0                    | sjlj/ssjlj/sas    | down  | 1.3.4
136   i686-redhat-linux-gnu2.2glibc2.1      | sjlj/ssjlj/sas    | down  | 1.3.3
137   i686-va-linux-gnu2.2glibc2.1          | sjlj/ssjlj/sas    | down  | 1.3.3
138   hppa1.1-hp-hpux10.01                  | sjlj/ssjlj/ss     | up    | 1.3.3
139   sparc-redhat-linux-gnu2.2glibc2.1     | sjlj/ssjlj/sas    | down  | 1.3.3
140   i386-pc-bsdi4.0                       | sjlj/ssjlj/sas    | down  | 1.3.3
141   i586-pc-freebsd3.1                    | sjlj/ssjlj/sas    | down  | 1.3.3
142   i586-gnu-linux-gnu2.2glibc2.0         | sjlj/sjljlx/none  | down  | 1.3.3
143   alpha-dec-osf4.0e                     | mcsc/sc/mc        | down  | 1.3.3
144   i386-pc-sysv5uw7.1.1                  | mcsc/sc/mc        | down  | 1.3.3
145   i586-debian-linux-gnu2.3glibc2.1      | sjlj/ssjlj/sas    | down  | 1.3.3
146   powerpc-ibm-aix4.1.3.0                | sjlj/ssjlj/ss     | down  | 1.3.3
147   powerpc-apple-macosX                  | sjlj/ssjlj/sas    | down  | 1.3.2
148   i586-suse-linux-gnu2.2glibc2.1        | sjlj/ssjlj/sas    | down  | 1.3.2
149   powerpc-unknown-netbsd                | sjlj/ssjlj/sas    | down  | 1.3.2
150   sparc-sun-solaris2.8                  | mcsc/sc/mc        | down  | 1.3.2
151   alpha-unknown-netbsd1.4.1             | sjlj/ssjlj/sas    | down  | 1.3.2
152   i686-suse-linux-gnu2.2glibc2.1        | sjlj/ssjlj/sas    | down  | 1.3.2
153   i586-pc-sco3.2v5.0.2                  | sjlj/ssjlj/sas    | down  | 1.3.2
154   i586-redhat-linux-gnu2.2glibc2.1      | sjlj/ssjlj/sas    | down  | 1.3.1
155   i586-gnu-linux-gnu2.0glibc1           | sjlj/sjljlx/none  | down  | 1.3.1
156   i686-suse-linux-gnu2.2glibc2.0        | sjlj/sjljlx/none  | down  | 1.3.1
157   hppa1.1-stratus-sysv4                 | mcsc/sc/mc        | up    | 1.3.1
158   i586-gnu-linux-gnu2.2glibc1           | sjlj/sjljlx/none  | down  | 1.3.1
159   i686-pc-freebsd4.0                    | sjlj/ssjlj/sas    | down  | 1.3.0
160   i686-slackware-linux-gnu              | sjlj/ssjlj/sas    | down  | 1.3.0
161   alpha-unknown-freebsd4.0              | sjlj/ssjlj/sas    | down  | 1.3.0
162   hppa1.1-hp-hpux10.20                  | sjlj/ssjlj/sas    | up    | 1.3.0
163   hppa2.0-hp-hpux10.20                  | sjlj/ssjlj/sas    | up    | 1.3.0
164   i386-pc-sysv4.2uw2.1.3                | mcsc/sc/mc        | down  | 1.3.0
165   i386-pc-sysv5uw7                      | mcsc/sc/mc        | down  | 1.3.0
166   sparc-sun-solaris2.6                  | mcsc/sc/mc        | down  | 1.3.0
167   i386-unknown-netbsd1.4                | sjlj/ssjlj/sas    | down  | 1.3.0
168   i386-unknown-netbsd1.4.1              | sjlj/ssjlj/sas    | down  | 1.3.0
169   i586-debian-linux-gnu2.2glibc2.0      | sjlj/sjljlx/none  | down  | 1.3.0
170   i586-gnu-linux-gnu2.2glibc2.1         | sjlj/ssjlj/sas    | down  | 1.3.0
171   i586-redhat-linux-gnu2.0glibc2.0      | sjlj/sjljlx/none  | down  | 1.3.0
172   i686-pc-freebsd3.1                    | sjlj/ssjlj/sas    | down  | 1.3.0
173   i686-pc-freebsd3.4                    | sjlj/ssjlj/sas    | down  | 1.3.0
174   i586-pc-freebsd4.0                    | sjlj/ssjlj/sas    | down  | 1.3b2
175   i586-pc-freebsd3.3                    | sjlj/ssjlj/sas    | down  | 1.3a5
176   m68k-cbm-netbsd1.4.1                  | sjlj/ssjlj/sas    | down  | 1.3a5
177   i686-redhat-linux-gnu2.3glibc2.0      | sjlj/sjljlx/none  | down  | 1.3a4
178   i386--netbsd                          | sjlj/ssjlj/sas    | down  | 1.3a2
179   i386-pc-freebsd3.4                    | sjlj/ssjlj/sas    | down  | 1.3a2
180   i586-redhat-linux-gnu2.2glibc2.0      | sjlj/sjljlx/none  | down  | 1.3a2
181   i686-redhat-linux-gnu2.2glibc2.0      | sjlj/sjljlx/none  | down  | 1.3a1
182   i386-redhat-linux-gnu                 | sjlj/sjljlx/none  | down  | 1.3a1
183   sparc-unknown-linux-gnu               | sjlj/ssjlj/sas    | down  | 1.2.3
184   hppa1.1-hp-hpux11.00                  | mcsc/sc/mc        | up    | 1.2.3
185   mips-sni-sysv4                        | mcsc/sc/mc        | down  | 1.2.3
186   i586-pc-freebsd3.4                    | sjlj/ssjlj/sas    | down  | 1.2.2
187   mips-sgi-irix5.3                      | sjlj/ssjlj/sas    | down  | 1.2.2
188   i386-pc-sco3.2v5.0.5                  | sjlj/ssjlj/sas    | down  | 1.2.2
189   powerpc-apple-netbsd1.4.1             | sjlj/ssjlj/sas    | down  | 1.2.1
190   i586-ncr-sysv4.3.03                   | mcsc/sc/mc        | down  | 1.2.1
191   i486-pc-linux-gnulibc1                | sjlj/sjljlx/none  | down  | 1.2.1
192   i486-pc-linux-gnu                     | sjlj/sjljlx/none  | down  | 1.2.1
193   i386-pc-freebsd3.3                    | sjlj/ssjlj/sas    | down  | 1.2.1
194   i486-pc-freebsd3.3                    | sjlj/ssjlj/sas    | down  | 1.2.1
195   powerpc-ibm-aix4.3.2.0                | mcsc/sc/mc        | down  | 1.2.1
196   m68k-unknown-amigaos                  | sjlj/ssjlj/ss     | down  | 1.2.1
197   i386-unknown-openbsd2.6               | sjlj/ssjlj/sas    | down  | 1.2.1
198   hppa2.0n-hp-hpux11.00                 | mcsc/sc/mc        | up    | 1.2.1
199   i686-pc-sco3.2v5.0.5                  | sjlj/ssjlj/sas    | down  | 1.2.1
200   alpha-dec-osf5.0                      | mcsc/sc/mc        | down  | 1.2.1
201   alpha-dec-osf4.0f                     | mcsc/sc/mc        | down  | 1.2.1
202   i586-pc-linux-gnu                     | sjlj/sjljlx/none  | down  | 1.2.1
203   i586-pc-freebsd3.2                    | sjlj/ssjlj/sas    | down  | 1.2.0
204   i586-pc-linux-gnulibc1                | sjlj/sjljlx/none  | down  | 1.2.0
205   m68k-hp-hpux9.10                      | sjlj/ssjlj/ss     | down  | 1.2.0
206   alphaev56-dec-osf4.0f                 | mcsc/sc/mc        | down  | 1.2.0
207   sparc-sun-solaris2.5.1                | mcsc/sc/mc        | down  | 1.2.0
208   sparc-sun-solaris2.7                  | mcsc/sc/mc        | down  | 1.2.0
209   powerpc-unknown-linux-gnu             | sjls/ssjlj/sas    | down  | 1.2.0
210   sparc-unknown-openbsd2.6              | sjlj/ssjlj/sas    | down  | 1.2.0
211   alphaev6-unknown-linux-gnu            | sjlj/ssjlj/sas    | down  | 1.2.0
212   alphaev6-dec-osf5.0                   | mcsc/sc/mc        | down  | 1.2.0
213   i686-pc-linux-gnu                     | sjlj/sjljlx/none  | down  | 1.2.0
214   i686-pc-freebsd3.3                    | sjlj/ssjlj/sas    | down  | 1.2.0
215   i586-pc-sco3.2v5.0.4                  | sjlj/ssjlj/sas    | down  | 1.2.0
216   i686-pc-linux-gnulibc1                | sjlj/sjljlx/none  | down  | 1.2.0
217   alphaev56-unknown-linux-gnu           | sjlj/ssjlj/sas    | down  | 1.2.0
218   armv4l-unknown-linux-gnu              | sjlj/ssjlj/sas    | down  | 1.2b8
219   sparc-unknown-netbsd1.4.1             | sjlj/ssjlj/sas    | down  | 1.2b8
220   alphaev56-dec-osf4.0d                 | mcsc/sc/mc        | down  | 1.2b6
221   m68k-apple-netbsd1.4.1                | sjlj/ssjlj/sas    | down  | 1.2b5
222   i386-unknown-openbsd2.5               | sjlj/ssjlj/sas    | down  | 1.2b5
223   powerpc-apple-rhapsody5.5             | sjlj/ssjlj/sas    | down  | 1.2b3
224   i386-pc-isc4.0                        | sjlj/sjljisc/none | down  | 1.2b2
225   mips-sgi-irix6.5                      | mcsc/sc/mc        | down  | 1.2b1
226   i386-pc-sysv4.2uw2.1                  | mcsc/sc/mc        | down  | 1.1.6
227   sparc-sun-sunos4.1.4                  | sjlj/ssjlj/ss     | down  | 1.1.6
228   powerpc-ibm-aix4.1.4.0                | mcsc/sc/mc        | down  | 1.1.6
229   powerpc-ibm-aix4.2.1.0                | mcsc/sc/mc        | down  | 1.1.6
230   rs6000-ibm-aix4.3.2.0                 | mcsc/sc/mc        | down  | 1.1.5
231   rs6000-ibm-aix4.2.1.0                 | mcsc/sc/mc        | down  | 1.1.5
232   i386-unknown-netbsd1.3.3              | sjlj/ssjlj/sas    | down  | 1.1.5
233   powerpc-ibm-aix4.1.5.0                | mcsc/sc/mc        | down  | 1.1.5
234   sparc-sun-sunos4.1.3_U1               | sjlj/ssjlj/ss     | down  | 1.1.4
235   sparc-sun-solaris2.5                  | mcsc/sc/mc        | down  | 1.1.4
236   alpha-unknown-netbsd1.3.3             | sjlj/ssjlj/sas    | down  | 1.1.4
237
238   HINTS FOR PORTING TO NEW PLATFORMS
239
240   In case you're not able to use Pth on a new and esoteric platform,
241   here are a few hints.
242
243   Pth has only one part which perhaps has to be ported to new platforms: the
244   machine context initialization, i.e. the function pth_mctx_set() in
245   pth_mctx.c.  The exercise is to write a pth_mctx_set() function which
246   initializes a `jmp_buf' (see setjmp(3)) with a given function and stack, so
247   when the next longjmp(3) is done on this `jmp_buf', the function starts
248   executing on the given stack.
249
250   By default, Pth uses a very tricky sigstack/sigaltstack() based approach for
251   establishing this `jmp_buf' which is mostly portable to all major Unix
252   platforms which support the involved POSIX functions (see rse-pmt.ps for a
253   detailed description of the trick). So the chance is very high that this
254   approach also works for forthcoming platforms and no real porting is
255   required.
256
257   When this approach should not work (for instance brain-dead achient
258   GNU/Linux versions have a dummy sigstack/sigaltstack(), so we've no chance
259   this way), then you've to provide an alternative implementation. This
260   usually is done be fiddling around with the ingredients of a `jmp_buf'
261   structure. For this look inside your /usr/include/setjmp.h (plus files it
262   includes) and there especially for things like _pc or JB_PC (the program
263   counter) and _sp or JB_SP (the stack pointer). Then write an alternative
264   pth_mctx_set() function in pth_mctx.c.
265
266   Currently, as mentioned, Pth requires such an alternative only under
267   GNU/Linux where sigstack/sigaltstack() are dummy functions. Look at the
268   GNU/Linux pth_mctx_set() variant in pth_mctx.c to get an impression what
269   type of `jmp_buf' fiddling you perhaps have to do for esoteric platforms.
270   Don't be confused by the fact that such specialized pth_mctx_set() functions
271   are just a few lines long while the standard function is very large. That's
272   all just needed for maximum portability.  The goal nevertheless only is to
273   initialize a `jmp_buf' with PC and SP. That's all...
274
275   Additionally see the INSTALL document for the --enable-mctx-XXX options.
276   These can be used to easily try out mctx combinations on a platform, too.
277