summaryrefslogtreecommitdiff
path: root/lib/c-stack.c
Commit message (Collapse)AuthorAgeFilesLines
* Treat SIGBUS like SIFSEGV on platforms that need it.Bruno Haible2008-12-061-0/+4
|
* c-stack: work around Irix sigaltstack bugEric Blake2008-09-231-0/+7
| | | | | | | | | | | | * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Check whether sigaltstack uses wrong end of stack_t (copied in part from libsigsegv). * lib/c-stack.c (c_stack_action) [!HAVE_LIBSIGSEGV]: Work around Irix bug, without requiring an over-allocation. * doc/posix-functions/sigaltstack.texi (sigaltstack): Document the bug. Signed-off-by: Eric Blake <ebb9@byu.net>
* c-stack: test that stack overflow can be caughtEric Blake2008-08-251-3/+5
| | | | | | | | | | | | * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Also check that platform allows handling stack overflow; at least OS/2 EMX has sigaltstack, but crashes before transferring control to handler on stack overflow. * lib/c-stack.c [HAVE_SIGALTSTACK]: Adjust conditions to also check for HAVE_STACK_OVERFLOW_HANDLING. Reported by Elbert Pol. Signed-off-by: Eric Blake <ebb9@byu.net>
* Improve documentation.Bruno Haible2008-07-201-30/+0
|
* Make c-stack use libsigsegv, when available.Eric Blake2008-07-171-22/+128
| | | | | | | | | | | | | | | | | | * modules/c-stack (Depends-on): Add libsigsegv. * modules/c-stack-tests (Makefile.am): Link with libsigsegv, if needed. * lib/c-stack.c (SIGSTKSZ): Define fallback. (segv_handler, overflow_handler, c_stack_action) [HAVE_LIBSIGSEGV && !HAVE_XSI_STACK_OVERFLOW_HEURISTIC]: Add new implementation when libsigsegv is available, but only when using the library is necessary. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Add comment, explaining why XSI check fails on Linux. (gl_PREREQ_C_STACK): Supply LIBCSTACK, LTLIBCSTACK. * tests/test-c-stack2.sh: Tweak skip message. * NEWS: Document new link-time requirements. Signed-off-by: Eric Blake <ebb9@byu.net>
* Use sigaction module rather than signal().Eric Blake2008-06-211-18/+15
| | | | | | | | | | | | | | | | | | | | | | * modules/c-stack (Depends-on): Add sigaction. * modules/fatal-signal (Depends-on): Likewise. * modules/nanosleep (Depends-on): Likewise. * modules/sigprocmask (Files): Add sig-handler.h. * modules/sigaction (Files): Likewise. * lib/sig-handler.h (get_handler): New file, suggested by Paul Eggert. * lib/c-stack.c (SIGACTION_WORKS): Simplify conditions. (c_stack_action) [!SIGACTION_WORKS]: Use sigaction, not signal. * lib/fatal-signal.c (uninstall_handlers, install_handlers) (init_fatal_signals): Likewise. * lib/nanosleep.c (rpl_nanosleep): Likewise. (siginterrupt): Delete fallback. * lib/sigprocmask.c (handler_t): Delete. (old_handlers): Use sa_handler_t instead. * m4/nanosleep.m4 (gl_PREREQ_NANOSLEEP): Drop check for siginterrupt. Signed-off-by: Eric Blake <ebb9@byu.net>
* Simplify c-stack prerequisites.Eric Blake2008-06-171-10/+2
| | | | | | | | | | | * lib/c-stack.c (includes): Remove unused <sys/resource.h>. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Posix 200x no longer requires <ucontext.h> to exist. Optimize setrlimit check. (gl_PREREQ_C_STACK): Remove check for unused getcontext and <sys/resource.h>. Signed-off-by: Eric Blake <ebb9@byu.net>
* Move c-stack test into testsuite.Eric Blake2008-06-171-40/+0
| | | | | | | | | | * modules/c-stack-tests: New file. * lib/c-stack.c [DEBUG]: Move test program... * tests/test-c-stack.c: ...into this new file. Skip rather than fail test if sigaltstack is lacking. * tests/test-c-stack.sh: New driver file. Signed-off-by: Eric Blake <ebb9@byu.net>
* Use 'raise'.Bruno Haible2008-04-291-1/+1
|
* Remove EOVERFLOW override.Bruno Haible2008-03-301-3/+0
|
* Don't redefine __attribute__ without a need.Bruno Haible2008-01-131-2/+2
|
* Change copyright notice from GPLv2+ to GPLv3+.Bruno Haible2007-10-071-5/+4
|
* * _fpending.c: Include <config.h> unconditionally, since we noPaul Eggert2006-09-131-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | longer worry about uses that don't define HAVE_CONFIG_H. * acl.c, alloca.c, argmatch.c, atexit.c, backupfile.c: * basename.c, c-stack.c, c-strtod.c, calloc.c, canon-host.c: * canonicalize.c, chdir-long.c, chdir-safer.c, chown.c: * cloexec.c, close-stream.c, closeout.c, creat-safer.c: * cycle-check.c, diacrit.c, dirchownmod.c, dirfd.c, dirname.c: * dup-safer.c, dup2.c, error.c, euidaccess.c, exclude.c: * exitfail.c, fchmodat.c, fchown-stub.c, fd-safer.c: * file-type.c, fileblocks.c, filemode.c, filenamecat.c: * fnmatch.c, fopen-safer.c, fprintftime.c, free.c, fsusage.c: * ftruncate.c, fts-cycle.c, fts.c, full-write.c, gai_strerror.c: * getcwd.c, getdate.y, getdomainname.c, getgroups.c: * gethostname.c, gethrxtime.c, getloadavg.c, getlogin_r.c: * getndelim2.c, getnline.c, getopt.c, getopt1.c, getpass.c: * gettime.c, gettimeofday.c, getugroups.c, getusershell.c: * glob.c, group-member.c, hard-locale.c, hash-pjw.c, hash.c: * human.c, idcache.c, inet_ntop.c, inet_pton.c, inttostr.c: * isdir.c, lchown.c, linebuffer.c, long-options.c, lstat.c: * malloc.c, md5.c, memcasecmp.c, memchr.c, memcmp.c, memcoll.c: * memcpy.c, memmove.c, memrchr.c, mkancesdirs.c, mkdir-p.c: * mkdir.c, mkdirat.c, mkstemp-safer.c, mkstemp.c, modechange.c: * mountlist.c, nanosleep.c, obstack.c, open-safer.c: * openat-die.c, openat.c, pagealign_alloc.c, physmem.c: * pipe-safer.c, posixtm.c, posixver.c, putenv.c, quote.c: * quotearg.c, raise.c, readtokens.c, readtokens0.c, readutmp.c: * realloc.c, regex.c, rename.c, rmdir.c, rpmatch.c, safe-read.c: * same.c, save-cwd.c, savedir.c, setenv.c, settime.c, sha1.c: * sig2str.c, snprintf.c, strdup.c, strerror.c, strftime.c: * stripslash.c, strndup.c, strnlen.c, strpbrk.c, strtod.c: * strtoimax.c, strtol.c, strverscmp.c, tempname.c, time_r.c: * timegm.c, tmpfile-safer.c, unlinkdir.c, userspec.c, utime.c: * utimecmp.c, utimens.c, version-etc-fsf.c, version-etc.c: * xalloc-die.c, xgetcwd.c, xgethostname.c, xmalloc.c: * xmemcoll.c, xnanosleep.c, xreadlink.c, xstrtod.c: * xstrtoimax.c, xstrtol.c, xstrtoumax.c, yesno.c: Likewise.
* * lib/c-stack.c: Include unistd.h unconditionally, since we now assumePaul Eggert2006-03-081-4/+2
| | | | | | | | | | | | | | | | | | the unistd module. * lib/getlogin_r.c: Likewise. * lib/getlogin_r.h: Likewise. * lib/glob.c: Likewise. * lib/pagealign_alloc.c: Likewise. * lib/unistd_.h: Remove; no longer needed. * modules/c-stack (Depends-on): Add unistd. * modules/getlogin_r: Likewise. * modules/glob: Likewise. * modules/pagealign_alloc: Likewise. * modules/unistd (Files): Remove lib/unistd_.h. (EXTRA_DIST): Remove. (unistd.h): Create using 'echo' rather than 'cp', so that we don't need unistd_.h. (MOSTLYCLEANFILES): Remove unistd.h-t.
* Use a consistent style for including <config.h>.Paul Eggert2005-09-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * __fpending.c, acl.c, argmatch.c, argp-help.c, argp-parse.c, argp-pvh.c, backupfile.c, basename.c, c-stack.c, calloc.c, check-version.c, cloexec.c, closeout.c, copy-file.c, creat-safer.c, cycle-check.c, dirfd.c, dirname.c, dup-safer.c, dup2.c, euidaccess.c, exclude.c, exitfail.c, fatal-signal.c, fd-safer.c, file-type.c, fileblocks.c, filemode.c, filenamecat.c, findprog.c, fnmatch.c, fopen-safer.c, free.c, fsusage.c, ftruncate.c, full-write.c, fwriteerror.c, getaddrinfo.c, getcwd.c, getdelim.c, getline.c, getlogin_r.c, getndelim2.c, getnline.c, getopt1.c, getpass.c, group-member.c, hard-locale.c, hash-pjw.c, hash.c, human.c, idcache.c, inet_ntop.c, isdir.c, long-options.c, malloc.c, memcasecmp.c, memcmp.c, memcoll.c, memcpy.c, memmove.c, mkdir-p.c, modechange.c, mountlist.c, open-safer.c, physmem.c, pipe-safer.c, pipe.c, poll.c, posixver.c, progname.c, progreloc.c, putenv.c, quote.c, quotearg.c, readline.c, readlink.c, realloc.c, regex.c, rename.c, rmdir.c, rpmatch.c, safe-read.c, same.c, save-cwd.c, savedir.c, sig2str.c, strcspn.c, strerror.c, stripslash.c, strncasecmp.c, strndup.c, strnlen.c, strnlen1.c, strsep.c, strstr.c, strtod.c, strtoimax.c, strtol.c, strverscmp.c, tempname.c, time_r.c, userspec.c, utimecmp.c, version-etc-fsf.c, version-etc.c, wait-process.c, xalloc-die.c, xgetcwd.c, xmalloc.c, xmemcoll.c, xnanosleep.c, xreadlink.c, xsetenv.c, xstrndup.c, xstrtoimax.c, xstrtol.c, xstrtoumax.c, yesno.c: Standardize inclusion of config.h. * __fpending.h, dirfd.h, getdate.h, human.h, inttostr.h: Removed inclusion of config.h from header files. * inttostr.c: Adjusted in-tree users. * timespec.h: Remove superfluous warning to include config.h. * atexit.c, chdir-long.c chown.c, fchown-stub.c, getgroups.c, gettimeofday.c, lchown.c, lstat.c, mkdir.c, mkstemp.c, nanosleep.c, openat.c, raise.c, readtokens0.c, readutmp.c, unlinkdir.c: Guard inclusion of config.h with HAVE_CONFIG_H.
* *** empty log message ***Paul Eggert2005-05-141-1/+1
|
* Fix c-stack.c portability bug on IRIX 5.3.Paul Eggert2004-03-071-4/+11
|
* Merge from diffutils.Paul Eggert2004-01-181-158/+27
|
* Include sys/time.h.Jim Meyering2002-07-011-0/+6
| | | | From Volker Borchert.
* (segv_handler, c_stack_action) [! defined SA_SIGINFO]:Jim Meyering2002-06-221-2/+2
| | | | | Do not assume SA_SIGINFO behavior. Bug reported by Jim Meyering on NetBSD 1.5.2.
* New file, from diffutils-2.8.2.Jim Meyering2002-06-221-0/+429