aboutsummaryrefslogtreecommitdiffstats
path: root/libsigsegv/PORTING
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2010-07-16 14:52:31 +0300
committerArnold D. Robbins <arnold@skeeve.com>2010-07-16 14:52:31 +0300
commit3ba50a15ebd976f7a88393e2e45dc14b6478b9a9 (patch)
tree6a6bbe6bed1141051fefe94b2d39eacd4854235a /libsigsegv/PORTING
parent6a2caf2157d87b4b582b2494bdd7d6a688dd0b1f (diff)
downloadegawk-3ba50a15ebd976f7a88393e2e45dc14b6478b9a9.tar.gz
egawk-3ba50a15ebd976f7a88393e2e45dc14b6478b9a9.tar.bz2
egawk-3ba50a15ebd976f7a88393e2e45dc14b6478b9a9.zip
Move to gawk-3.1.7.
Diffstat (limited to 'libsigsegv/PORTING')
-rw-r--r--libsigsegv/PORTING249
1 files changed, 249 insertions, 0 deletions
diff --git a/libsigsegv/PORTING b/libsigsegv/PORTING
new file mode 100644
index 00000000..0132ce77
--- /dev/null
+++ b/libsigsegv/PORTING
@@ -0,0 +1,249 @@
+Successfully tested platforms
+=============================
+
+__PLATFORM__________________________________SIGSEGV__STACK_OVERFLOW__VERSION___
+ | | |
+alpha-dec-osf4.0d | yes | yes | 2.1
+alpha-dec-osf4.0f | yes | yes | 2.1
+alphaev56-dec-osf4.0d | yes | yes | 2.6
+alphaev56-dec-osf4.0f | yes | yes | 2.6
+alpha-dec-osf4.0g | yes | yes | 2.1
+alpha-dec-osf5.1 | yes | yes | 2.1
+alphaev67-dec-osf5.1 | yes | yes | 2.2
+alphaev67-dec-osf5.1a | yes | yes | 2.6
+alphaev6-dec-osf5.1b | yes | yes | 2.6
+alpha-unknown-freebsd4.8 | yes | yes | 2.1
+alpha-portbld-freebsd5.5 | yes | yes | 2.3
+alphaev67-unknown-linux2.4.17-gnu-glibc2.1 | yes | yes | 1.95
+alphaev6-unknown-linux2.2.19-gnu-glibc2.2 | yes | yes | 2.1
+alphaev67-unknown-linux2.2.20-gnu-glibc2.2 | yes | yes | 2.1
+alphaev67-unknown-linux2.4.4-gnu-glibc2.2 | yes | yes | 2.1
+alphaev6-unknown-linux2.4.9-gnu-glibc2.2 | yes | yes | 2.1
+alphaev67-unknown-linux2.4.9-gnu-glibc2.2 | yes | yes | 2.1
+alphaev6-unknown-linux2.4.18-gnu-glibc2.2 | yes | yes | 2.1
+alphaev67-unknown-linux2.4.18-gnu-glibc2.2 | yes | yes | 2.1
+alpha-unknown-linux2.4.19-gnu-glibc2.3 | yes | yes | 2.6
+alphaev68-unknown-linux2.6.11-gnu-glibc2.3 | yes | yes | 2.2
+alpha-unknown-openbsd3.7 | yes | yes | 2.2
+alpha-unknown-netbsd1.6 | yes | yes | 2.1
+armv4l-unknown-linux2.4.0-gnu-glibc2.2 | no | yes | 2.1
+armv4l-unknown-linux2.4.3-gnu-glibc2.2 | yes | yes | 2.1
+armv4l-unknown-linux2.4.9-gnu-glibc2.2 | no | yes | 2.0.1
+armv5tel-unknown-linux2.4.20-gnu-glibc2.2 | yes | yes | 2.2
+armv6l-unknown-linux2.6.18-gnu-glibc2.3 | yes | yes | 2.4
+arm-angstrom-linux2.6.23-gnueabi-glibc2.4 | yes | yes | 2.5
+hppa1.1-hp-hpux11.00 | yes | yes | 2.1
+hppa2.0-hp-hpux10.20 | yes | yes | 2.2
+hppa2.0w-hp-hpux11.00 | yes | yes | 2.6
+hppa2.0w-hp-hpux11.11 | yes | yes | 2.6
+hppa2.0w-hp-hpux11.31 | yes | yes | 2.6
+hppa-unknown-linux2.4.19-gnu-glibc2.2 | yes | yes | 2.0.1
+hppa64-unknown-linux2.4.17-gnu-glibc2.2 | yes | yes | 2.1
+hppa2.0-unknown-linux2.6.20.1-gnu-glibc2.3 | yes | no | 2.4
+i370-ibm-openedition | no | no | 2.6
+i586-pc-beos | no | yes | 2.1
+i686-pc-cygwin | yes | yes | 2.02
+i686-pc-cygwin | yes | yes | 2.4
+i386-apple-darwin8.6.1 | yes | yes | 2.3
+i686-apple-darwin8.6.1 | yes | yes | 2.3
+i386-apple-darwin8.8.1 | yes | yes | 2.4
+i386-apple-darwin8.8.2 | yes | yes | 2.4
+i386-apple-darwin8.8.3 | yes | yes | 2.4
+i386-apple-darwin8.9.1 | yes | yes | 2.4
+i386-apple-darwin8.10.1 | yes | yes | 2.4
+i386-apple-darwin8.11.1 | yes | yes | 2.6
+i386-apple-darwin9.0.0 | yes | yes | 2.5
+i386-apple-darwin9.1.0 | yes | yes | 2.5
+i386-apple-darwin9.2.2 | yes | yes | 2.5
+i386-apple-darwin9.3.0 | yes | yes | 2.6
+i386-apple-darwin9.4.0 | yes | yes | 2.5
+i386-apple-darwin9.5.0 | yes | yes | 2.5
+i586-pc-linux2.2.14-gnu-glibc2.1 | yes | yes | 2.1
+i686-pc-linux2.2.14-gnu-glibc2.1 | yes | yes | 2.0
+i686-pc-linux2.2.19-gnu-glibc2.1 | yes | yes | 1.95
+i486-pc-linux2.2.21-gnu-glibc2.1 | yes | yes | 2.0
+i586-pc-linux2.4.18-gnu-glibc2.1 | yes | yes | 2.0
+i686-pc-linux2.4.19-gnu-glibc2.1 | yes | yes | 2.2
+i686-pc-linux2.2.16-gnu-glibc2.2 | yes | yes | 2.0
+i686-pc-linux2.2.19-gnu-glibc2.2 | yes | yes | 2.0
+i686-pc-linux2.4.7-gnu-glibc2.2 | yes | yes | 2.1
+i586-pc-linux2.4.9-gnu-glibc2.2 | yes | yes | 2.0
+i686-pc-linux2.4.9-gnu-glibc2.2 | yes | yes | 2.0
+i386-pc-linux2.4.18-gnu-glibc2.2 | yes | yes | 2.0
+i686-pc-linux2.4.18-gnu-glibc2.2 | yes | yes | 2.0
+i586-pc-linux2.4.19-gnu-glibc2.2 | yes | yes | 2.0
+i686-pc-linux2.4.19-gnu-glibc2.2 | yes | yes | 2.0
+i686-pc-linux2.4.20-gnu-glibc2.2 | yes | yes | 2.0
+i586-pc-linux2.2.19-gnu-glibc2.3 | yes | yes | 2.1
+i686-pc-linux2.4.18-gnu-glibc2.3 | yes | yes | 1.97
+i486-pc-linux2.4.20-gnu-glibc2.3 | yes | yes | 2.0
+i586-pc-linux2.4.20-gnu-glibc2.3 | yes | yes | 2.0
+i686-pc-linux2.4.20-gnu-glibc2.3 | yes | yes | 2.0
+i686-pc-linux2.4.21-gnu-glibc2.3 | yes | yes | 2.6
+i586-pc-linux2.4.22-gnu-glibc2.3 | yes | yes | 2.0
+i386-pc-mingw32 | yes | yes | 2.4
+i586-pc-mingw32 | yes | yes | 2.1
+i686-pc-mingw32 | yes | yes | 2.6
+i386-unknown-mirbsd10 | yes | yes | 2.7
+i386-pc-os2-emx | no | no | 2.5
+i386-pc-solaris2.9 | yes | yes | 2.2
+i386-pc-solaris2.10 | yes | yes | 2.6
+i386-pc-solaris2.11 | yes | yes | 2.2
+i686-pc-win32-msvc6 | yes | yes | 1.96
+i386-unknown-freebsd4.0 | yes | yes | 2.1
+i386-unknown-freebsd4.0-gnu-glibc2.3 | yes | yes | 2.1
+i386-unknown-freebsd4.6 | yes | yes | 1.95
+i386-unknown-freebsd4.7 | yes | yes | 2.1
+i386-unknown-freebsd4.8 | yes | yes | 2.1
+i386-unknown-freebsd4.9 | yes | yes | 2.2
+i386-unknown-freebsd4.10 | yes | yes | 2.2
+i386-unknown-freebsd5.0 | yes | yes | 2.6
+i386-portbld-freebsd6.0 | yes | yes | 2.3
+i386-unknown-freebsd6.2 | yes | yes | 2.6
+i686-unknown-kfreebsd6.2-gnu-glibc2.6 | yes | yes | 2.5+
+i386-unknown-netbsdelf1.6 | no | no | 2.6
+i386-unknown-netbsdelf2.0.2 | yes | yes | 2.4
+i386-unknown-netbsdelf3.0 | yes | yes | 2.4
+i386-unknown-netbsd | yes | no | 2.2
+i386-unknown-openbsd3.2 | yes | yes | 2.3
+i386-unknown-openbsd3.3 | yes | yes | 2.1
+i386-unknown-openbsd3.4 | yes | yes | 2.2
+i386-unknown-openbsd3.6 | yes | yes | 2.1
+i386-unknown-openbsd3.8 | yes | yes | 2.4
+i386-unknown-openbsd3.9 | yes | yes | 2.6
+i386-unknown-openbsd4.0 | yes | yes | 2.6
+ia64-portbld-freebsd7.0 | yes | no | 2.3
+ia64-hp-hpux11.22 | yes | no | 2.1
+ia64-hp-hpux11.23 | yes | no | 2.2
+ia64-hp-hpux11.31 | yes | no | 2.6
+ia64-unknown-linux2.4.18-gnu-glibc2.2 | yes | yes | 2.4
+ia64-unknown-linux2.4.21-gnu-glibc2.3 | yes | yes | 2.6
+ia64-unknown-linux2.6.9-gnu-glibc2.3 | yes | yes | 2.6
+ia64-unknown-linux2.6.16.27-gnu-glibc2.4 | yes | yes | 2.6
+mips-sgi-irix5.3 | yes | yes | 2.6+
+mips-sgi-irix6.2 | yes | yes | 2.6+
+mips-sgi-irix6.5 | yes | yes | 2.6+
+mips-unknown-linux2.4.27-gnu-glibc2.3 | yes | yes | 2.6
+nsr-tandem-nsk | no | no | 2.1
+rs6000-ibm-aix3.2.5 | yes | no | 2.2
+rs6000-ibm-aix4.2.0.0 | yes | yes | 2.2
+rs6000-ibm-aix4.2.1.0 | yes | yes | 2.1
+powerpc-ibm-aix4.3.2.0 | yes | yes | 2.6
+powerpc-ibm-aix4.3.3.0 | yes | yes | 1.95
+powerpc-ibm-aix5.1.0.0 | yes | yes | 2.6
+powerpc-ibm-aix5.2.0.0 | yes | yes | 2.5
+powerpc-ibm-aix5.3.0.0 | yes | yes | 2.5
+powerpc-apple-darwin5.5 | yes | yes | 2.2
+powerpc-apple-darwin6.0 | yes | yes | 2.4
+powerpc-apple-darwin6.8 | yes | yes | 2.2
+powerpc-apple-darwin7.7.0 | yes | yes | 2.2
+powerpc-apple-darwin7.8.0 | yes | yes | 2.2
+powerpc-apple-darwin7.9.0 | yes | yes | 2.6
+powerpc-apple-darwin8.1.0 | yes | yes | 2.2
+powerpc-apple-darwin8.3.0 | yes | yes | 2.2
+powerpc-apple-darwin8.4.0 | yes | yes | 2.2
+powerpc-apple-darwin8.7.0 | yes | yes | 2.4
+powerpc-apple-darwin8.8.0 | yes | yes | 2.4
+powerpc-apple-darwin8.9.0 | yes | yes | 2.4
+powerpc-apple-darwin8.10.0 | yes | yes | 2.5
+powerpc-apple-darwin8.11.0 | yes | yes | 2.6
+powerpc-apple-darwin8.11.1 | yes | yes | 2.5
+powerpc-apple-darwin9.2.0 | yes | yes | 2.5
+powerpc-unknown-linux2.2.17-gnu-glibc2.1 | no | yes | 1.95
+powerpc-unknown-linux2.2.17-gnu-glibc2.2 | yes | yes | 2.0.1
+powerpc-unknown-linux2.4.19-gnu-glibc2.2 | yes | yes | 2.4
+powerpc-unknown-linux2.4.28-gnu-glibc2.2 | yes | yes | 2.1
+powerpc-unknown-linux2.4.26-gnu-glibc2.3 | yes | yes | 2.1
+powerpc-unknown-linux2.6.10-gnu-glibc2.3 | yes | yes | 2.2
+powerpc-unknown-linux2.6.16-gnu-glibc2.3 | yes | yes | 2.4
+powerpc-unknown-linux2.6.16-gnu-glibc2.4 | yes | yes | 2.6
+powerpc-unknown-netbsd2.0 | yes | no | 2.1
+powerpc-unknown-netbsd3.99.23 | yes | yes | 2.4
+powerpc-unknown-openbsd4.0 | yes | yes | 2.4
+powerpc-unknown-openbsd4.1 | yes | yes | 2.4
+powerpc64-unknown-linux2.6.5-gnu-glibc2.3 | yes | yes | 2.4
+s390x-ibm-linux2.6.16.46-gnu-glibc2.4 | no | yes | 2.5
+sparc-unknown-linux2.4.32-gnu-glibc2.3 | yes | no | 2.1
+sparc-unknown-openbsd3.9 | yes | no | 2.4
+sparc-sun-solaris2.5.1 | yes | yes | 2.2
+sparc-sun-solaris2.6 | yes | yes | 2.2
+sparc-sun-solaris2.7 | yes | yes | 2.6
+sparc-sun-solaris2.8 | yes | yes | 2.6
+sparc-sun-solaris2.9 | yes | yes | 2.6
+sparc-sun-solaris2.10 | yes | yes | 2.6
+sparc-sun-solaris2.11 | yes | yes | 2.4
+sparc64-unknown-linux2.2.18-gnu-glibc2.1 | no | no | 1.95
+sparc64-unknown-linux2.4.28-gnu-glibc2.3 | yes | no | 2.6
+sparc64-unknown-openbsd3.6 | no | no | 2.2
+x86_64-unknown-kfreebsd6.2-gnu-glibc2.6 | yes | yes | 2.5+
+x86_64-unknown-linux2.4.21-gnu-glibc2.2 | yes | yes | 2.1
+x86_64-unknown-linux2.4.21-gnu-glibc2.3 | yes | yes | 2.1
+x86_64-unknown-linux2.6.3-gnu-glibc2.3 | yes | yes | 2.1
+x86_64-unknown-linux2.6.9-gnu-glibc2.3 | yes | yes | 2.4
+x86_64-unknown-linux2.6.11.4-gnu-glibc2.3 | yes | yes | 2.4
+x86_64-unknown-linux2.6.13-gnu-glibc2.3 | yes | yes | 2.4
+x86_64-unknown-linux2.6.16-gnu-glibc2.4 | yes | yes | 2.4
+x86_64-unknown-linux2.6.16.13-gnu-glibc2.4 | yes | yes | 2.4
+x86_64-unknown-linux2.6.16.21-gnu-glibc2.4 | yes | yes | 2.4
+x86_64-unknown-linux2.6.16.27-gnu-glibc2.4 | yes | yes | 2.6
+x86_64-unknown-linux2.6.17-gnu-glibc2.4 | yes | yes | 2.4
+x86_64-unknown-linux2.6.20-gnu-glibc2.5 | yes | yes | 2.4
+x86_64-unknown-linux2.6.20.1-gnu-glibc2.5 | yes | yes | 2.4
+x86_64-unknown-linux2.6.21-gnu-glibc2.6 | yes | yes | 2.4
+x86_64-unknown-netbsd3.0 | yes | yes | 2.4
+x86_64-unknown-netbsd4.99.72 | yes | yes | 2.5
+amd64-portbld-freebsd5.4 | yes | yes | 2.2
+amd64-portbld-freebsd6.0 | yes | yes | 2.3
+amd64-portbld-freebsd7.0 | yes | yes | 2.3
+
+
+On FreeBSD 5.2, libsigsegv works best if the /proc filesystem is mounted.
+(It is not mounted by default.)
+
+
+Porting to new platforms
+========================
+
+On Unix systems, where faults are notified to the program through a signal
+handler, the core routines in handler-unix.c can be used without
+modifications. But they need the following bits of information. Each of
+them is stored in a platform dependent file; the file is chosen in configure.
+
+ * List of signals that are sent when an invalid virtual memory address
+ is accessed, or when the stack overflows.
+ This is a file among signals-*.h.
+ configure chooses and sets the variable CFG_SIGNALS.
+
+ * What arguments are passed to a fault handler.
+ This is a file among fault-*.h.
+ configure chooses and sets the variable CFG_FAULT.
+
+ * How to determine the stack's virtual memory area.
+ This is a file among stackvma-*.c.
+ configure chooses and sets the variable CFG_STACKVMA.
+
+ * How to leave a signal handler that is executing on the alternate
+ signal stack.
+ This is a file among leave-*.c.
+ configure chooses and sets the variable CFG_LEAVE.
+
+For each of these, the approach should be:
+
+ - Find a way to implement the needed functionality. This might involve
+ study of the system include files (in particular <signal.h> and
+ <ucontext.h>) and of the kernel sources.
+ For CFG_FAULT, the best starting point is to run the tests/sigsegv1
+ program with a breakpoint set at 'sigsegv_handler'.
+
+ - Add to configure.in a test whether your new code works. This will
+ help portability to platforms similar to yours.
+ Then regenerate the configure script (run "autoconf") and verify
+ that the test says "yes" on your platform.
+
+ - Create a platform dependent file (e.g. fault-<os>-<cpu>.h) and change
+ configure.in to choose this particular file when your test says "yes".
+ Then regenerate the configure script (run "autoconf").
+
+ - Verify that "make" and "make check" pass.
+
+For non-Unix systems, a separate handler-<os>.c is likely to be needed.