Projects
openEuler:Mainline
libsigsegv
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 2
View file
_service:tar_scm:libsigsegv.spec
Changed
@@ -1,5 +1,5 @@ Name: libsigsegv -Version: 2.13 +Version: 2.14 Release: 1 Summary: library for handling page faults in user mode License: GPLv2+ @@ -25,7 +25,7 @@ Requires: %{name} = %{version}-%{release} Provides: %{name}-static -Obsoletes: %{name}-static +Obsoletes: %{name}-static < %{version}-%{release} %description devel This package is the development libraries and header files for libsigsegv. @@ -62,6 +62,18 @@ %changelog +* Thu Nov 03 2022 fuanan <fuanan3@h-partners.com> - 2.14-1 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:update version to 2.14 + +* Wed Sep 7 2022 fuanan <fuanan3@h-partners.com> - 2.13-2 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:Add version for Obsoletes + * Tue Dec 28 2021 fuanan <fuanan3@huawei.com> - 2.13-1 - Type:enhancement - ID:NA
View file
_service
Changed
@@ -2,7 +2,7 @@ <service name="tar_scm"> <param name="scm">git</param> <param name="url">git@gitee.com:src-openeuler/libsigsegv.git</param> - <param name="revision">b734ce84dc90d9d4c6d45ab2f9e4baa6ec77c753</param> + <param name="revision">master</param> <param name="exclude">*</param> <param name="extract">*</param> </service>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/Makefile.msvc
Deleted
@@ -1,123 +0,0 @@ -# -*- Makefile -*- for libsigsegv - -#### Start of system configuration section. #### - -# Flags that can be set on the nmake command line: -# MFLAGS={-ML|-MT|-MD} for defining the compilation model -# MFLAGS=-ML (the default) Single-threaded, statically linked - libc.lib -# MFLAGS=-MT Multi-threaded, statically linked - libcmt.lib -# MFLAGS=-MD Multi-threaded, dynamically linked - msvcrt.lib -# DEBUG=1 for compiling with debugging information -# Note that nmake command line flags are automatically passed to subdirectory -# Makefiles. Therefore we don't need to pass them explicitly to subdirectory -# Makefiles, but the subdirectory Makefiles need to have the same defaults. -# Building as a DLL not supported yet. -DLL=0 -!if !defined(DEBUG) -DEBUG=0 -!endif -!if !defined(MFLAGS) -!if !$(DLL) -MFLAGS= -!else -MFLAGS=-MD -!endif -!endif - -!if $(DEBUG) -OPTIMFLAGS = -Od -Z7 -!else -OPTIMFLAGS = -D_NDEBUG -O1 -!endif - -# Directories used by "make": -srcdir = . - -# Directories used by "make install": -prefix = /usr/local -local_prefix = /usr/local -exec_prefix = $(prefix) -libdir = $(exec_prefix)/lib -includedir = $(prefix)/include - -# Programs used by "make": -CC = cl -CFLAGS = $(MFLAGS) $(OPTIMFLAGS) -CPP = cl -E -INCLUDES = -I. -I$(srcdir) -AR = lib -AR_FLAGS = /out: -MV = ren -CP = copy -LN = copy -RM = -del - -# Programs used by "make install": -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ - -#### End of system configuration section. #### - -SHELL = /bin/sh - -OBJECTS = handler.obj dispatcher.obj version.obj - -all : sigsegv.lib - -config.h : config.h.msvc - $(CP) $(srcdir)\config.h.msvc config.h - -sigsegv.h : src/sigsegv.h.msvc - $(CP) $(srcdir)\src\sigsegv.h.msvc sigsegv.h - -handler.obj : $(srcdir)/src/handler.c $(srcdir)/src/handler-win32.c sigsegv.h config.h - $(CC) $(CFLAGS) $(INCLUDES) -c $(srcdir)/src/handler.c - -dispatcher.obj : $(srcdir)/src/dispatcher.c sigsegv.h config.h - $(CC) $(CFLAGS) $(INCLUDES) -c $(srcdir)/src/dispatcher.c - -version.obj : $(srcdir)/src/version.c sigsegv.h - $(CC) $(CFLAGS) $(INCLUDES) -c $(srcdir)/src/version.c - -!if !$(DLL) -sigsegv.lib : $(OBJECTS) - $(RM) sigsegv.lib - $(AR) $(AR_FLAGS)sigsegv.lib $(OBJECTS) -!else -# sigsegv.dll and sigsegv.lib are created together. -sigsegv.lib : $(OBJECTS) - $(CC) $(MFLAGS) -LD $(OBJECTS) -Fesigsegv.dll -!endif - -sigsegv1.exe : $(srcdir)/tests/sigsegv1.c sigsegv.h sigsegv.lib - $(CC) $(CFLAGS) $(INCLUDES) $(srcdir)/tests/sigsegv1.c sigsegv.lib /Fesigsegv1 - -sigsegv2.exe : $(srcdir)/tests/sigsegv2.c sigsegv.h sigsegv.lib - $(CC) $(CFLAGS) $(INCLUDES) $(srcdir)/tests/sigsegv2.c sigsegv.lib /Fesigsegv2 - -stackoverflow1.exe : $(srcdir)/tests/stackoverflow1.c sigsegv.h sigsegv.lib - $(CC) $(CFLAGS) $(INCLUDES) $(srcdir)/tests/stackoverflow1.c sigsegv.lib /Festackoverflow1 - -stackoverflow2.exe : $(srcdir)/tests/stackoverflow2.c sigsegv.h sigsegv.lib - $(CC) $(CFLAGS) $(INCLUDES) $(srcdir)/tests/stackoverflow2.c sigsegv.lib /Festackoverflow2 - -check : all sigsegv1.exe sigsegv2.exe stackoverflow1.exe stackoverflow2.exe - sigsegv1.exe - sigsegv2.exe - stackoverflow1.exe - stackoverflow2.exe - -mostlyclean : clean - -clean : force - $(RM) sigsegv.h *.obj *.lib *.exp *.dll core - $(RM) sigsegv1.exe sigsegv2.exe stackoverflow1.exe stackoverflow2.exe - -distclean : clean - $(RM) config.status config.log config.cache Makefile config.h - -maintainer-clean : distclean - -force : -
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/config.h.msvc
Deleted
@@ -1,156 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* The name of the include file describing the fault handler. */ -#undef CFG_FAULT - -/* The name of the file implementing the handler functionality. */ -#define CFG_HANDLER "handler-win32.c" - -/* The name of the file implementing sigsegv_reset_onstack_flag. */ -#undef CFG_LEAVE - -/* The name of the include file describing the Mach fault handler. */ -#undef CFG_MACHFAULT - -/* The name of the include file describing the fault signals. */ -#undef CFG_SIGNALS - -/* The name of the file determining the stack virtual memory area. */ -#undef CFG_STACKVMA - -/* Define to 1 if attempting to make system calls fail with error EFAULT */ -#undef ENABLE_EFAULT - -/* Define to 1 if you have the <dlfcn.h> header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if system calls detect invalid memory references and return - error EFAULT. */ -#undef HAVE_EFAULT_SUPPORT - -/* Define if getpagesize() is available as a function or a macro. */ -#undef HAVE_GETPAGESIZE - -/* Define to 1 if you have the `getrlimit' function. */ -#undef HAVE_GETRLIMIT - -/* Define to 1 if you have the <inttypes.h> header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the `mincore' function. */ -#undef HAVE_MINCORE - -/* Define if <sys/mman.h> defines MAP_ANON and mmaping with MAP_ANON works. */ -#undef HAVE_MMAP_ANON - -/* Define if <sys/mman.h> defines MAP_ANONYMOUS and mmaping with MAP_ANONYMOUS - works. */ -#undef HAVE_MMAP_ANONYMOUS - -/* Define if mmaping of the special device /dev/zero works. */ -#undef HAVE_MMAP_DEVZERO - -/* Define to 1 if you have the `mquery' function. */ -#undef HAVE_MQUERY - -/* Define if PAGESIZE is available as a macro. */ -#undef HAVE_PAGESIZE - -/* Define to 1 if you have the `setrlimit' function. */ -#undef HAVE_SETRLIMIT - -/* Define to 1 if you have the `sigaltstack' function. */ -#undef HAVE_SIGALTSTACK - -/* Define if CFG_STACKVMA is set to a nontrivial source file. */ -#undef HAVE_STACKVMA - -/* Define to 1 if you have the <stdint.h> header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the <stdlib.h> header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the <strings.h> header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the <string.h> header file. */ -#undef HAVE_STRING_H - -/* Define if sysconf(_SC_PAGESIZE) is available as a function or a macro. */ -#undef HAVE_SYSCONF_PAGESIZE - -/* Define to 1 if you have the <sys/signal.h> header file. */ -#undef HAVE_SYS_SIGNAL_H - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the <sys/types.h> header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the <ucontext.h> header file. */ -#undef HAVE_UCONTEXT_H - -/* Define to 1 if the system has the type `uintptr_t'. */ -#undef HAVE_UINTPTR_T - -/* Define to 1 if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Define if you have the sigaltstack() function and it works. */ -#undef HAVE_WORKING_SIGALTSTACK - -/* Define to the sub-directory where libtool stores uninstalled libraries. */ -#undef LT_OBJDIR - -/* Define to 1 on Cygwin versions older than 1.7. */ -#undef OLD_CYGWIN_WORKAROUND - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define if sigaltstack() interprets the stack_t.ss_sp field incorrectly, as - the highest address of the alternate stack range rather than as the lowest - address. */ -#undef SIGALTSTACK_SS_REVERSED - -/* Define as the direction of stack growth for your system. STACK_DIRECTION > - 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward - lower addresses STACK_DIRECTION = 0 => spaghetti stack. */ -#undef STACK_DIRECTION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION - -/* Define to 'struct sigaltstack' if that's the type of the argument to - sigaltstack */ -#undef stack_t - -/* Define to the type of an unsigned integer type wide enough to hold a - pointer, if such a type exists, and if the system does not define it. */ -#undef uintptr_t
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/sigsegv.h.msvc
Deleted
@@ -1,248 +0,0 @@ -/* Page fault handling library. - Copyright (C) 1998-1999, 2002, 2004-2011, 2016-2018, 2021 Bruno Haible <bruno@clisp.org> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _SIGSEGV_H -#define _SIGSEGV_H - -/* Get size_t. */ -#include <stddef.h> - -#include <windows.h> - -/* Correct the value of SIGSTKSZ on some systems. - AIX 64-bit: original value 4096 is too small. - HP-UX: original value 8192 is too small. - Solaris 11/x86_64: original value 8192 is too small. */ -#if defined _AIX && defined _ARCH_PPC64 -# include <signal.h> -# undef SIGSTKSZ -# define SIGSTKSZ 8192 -#endif -#if defined __hpux || (defined __sun && (defined __x86_64__ || defined __amd64__)) -# include <signal.h> -# undef SIGSTKSZ -# define SIGSTKSZ 16384 -#endif - -/* HAVE_SIGSEGV_RECOVERY - is defined if the system supports catching SIGSEGV. */ -#if 1 -# define HAVE_SIGSEGV_RECOVERY 1 -#endif - -/* HAVE_STACK_OVERFLOW_RECOVERY - is defined if stack overflow can be caught. */ -#if 1 -# define HAVE_STACK_OVERFLOW_RECOVERY 1 -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - -#define LIBSIGSEGV_VERSION 0x020D /* version number: (major<<8) + minor */ -extern int libsigsegv_version; /* Likewise */ - -/* -------------------------------------------------------------------------- */ - -/* - * The mask of bits that are set to zero in a fault address that gets passed - * to a global SIGSEGV handler. - * On some platforms, the precise fault address is not known, only the memory - * page into which the fault address falls. This is apparently allowed by POSIX: - * <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/signal.h.html> - * says: "For some implementations, the value of si_addr may be inaccurate." - * In this case, the returned fault address is rounded down to a multiple of - * getpagesize() = sysconf(_SC_PAGESIZE). - * On such platforms, we define SIGSEGV_FAULT_ADDRESS_ALIGNMENT to be an upper - * bound for getpagesize() (and, like getpagesize(), also a power of 2). - * On the platforms where the returned fault address is the precise one, we - * define SIGSEGV_FAULT_ADDRESS_ALIGNMENT to 1. - */ -#if defined __NetBSD__ && (defined __sparc__ || defined __sparc64__) - /* getpagesize () is 0x1000 or 0x2000, depending on hardware. */ -# define SIGSEGV_FAULT_ADDRESS_ALIGNMENT 0x2000UL -#elif defined __linux__ && (defined __s390__ || defined __s390x__) - /* getpagesize () is 0x1000. */ -# define SIGSEGV_FAULT_ADDRESS_ALIGNMENT 0x1000UL -#else -# define SIGSEGV_FAULT_ADDRESS_ALIGNMENT 1UL -#endif - -/* - * The type of a global SIGSEGV handler. - * The fault address, with the bits (SIGSEGV_FAULT_ADDRESS_ALIGNMENT - 1) - * cleared, is passed as argument. - * The access type (read access or write access) is not passed; your handler - * has to know itself how to distinguish these two cases. - * The second argument is 0, meaning it could also be a stack overflow, or 1, - * meaning the handler should seriously try to fix the fault. - * The return value should be nonzero if the handler has done its job - * and no other handler should be called, or 0 if the handler declines - * responsibility for the given address. - * - * The handler is run at a moment when nothing about the global state of the - * program is known. Therefore it cannot use facilities that manipulate global - * variables or locks. In particular, it cannot use malloc(); use mmap() - * instead. It cannot use fopen(); use open() instead. Etc. All global - * variables that are accessed by the handler should be marked 'volatile'. - */ -typedef int (*sigsegv_handler_t) (void* fault_address, int serious); - -/* - * Installs a global SIGSEGV handler. - * This should be called once only, and it ignores any previously installed - * SIGSEGV handler. - * Returns 0 on success, or -1 if the system doesn't support catching SIGSEGV. - */ -extern int sigsegv_install_handler (sigsegv_handler_t handler); - -/* - * Deinstalls the global SIGSEGV handler. - * This goes back to the state where no SIGSEGV handler is installed. - */ -extern void sigsegv_deinstall_handler (void); - -#if LIBSIGSEGV_VERSION >= 0x0206 -/* - * Prepares leaving a SIGSEGV handler (through longjmp or similar means). - * Control is transferred by calling CONTINUATION with CONT_ARG1, CONT_ARG2, - * CONT_ARG3 as arguments. - * CONTINUATION must not return. - * The sigsegv_leave_handler function may return if called from a SIGSEGV - * handler; its return value should be used as the handler's return value. - * The sigsegv_leave_handler function does not return if called from a - * stack overflow handler. - */ -extern int sigsegv_leave_handler (void (*continuation) (void*, void*, void*), void* cont_arg1, void* cont_arg2, void* cont_arg3); -#else /* older versions of libsigsegv */ -/* - * Prepares leaving a SIGSEGV handler (through longjmp or similar means). - * Limitation: This function could only be called once on MacOS X. - */ -extern void sigsegv_leave_handler (void); -#endif - -/* - * The type of a context passed to a stack overflow handler. - * This type is system dependent; on some platforms it is an 'ucontext_t *', - * on some platforms it is a 'struct sigcontext *', on others merely an - * opaque 'void *'. - */ -typedef CONTEXT *stackoverflow_context_t; - -/* - * The type of a stack overflow handler. - * Such a handler should perform a longjmp call in order to reduce the amount - * of stack needed. It must not return. - * The emergency argument is 0 when the stack could be repared, or 1 if the - * application should better save its state and exit now. - * - * The handler is run at a moment when nothing about the global state of the - * program is known. Therefore it cannot use facilities that manipulate global - * variables or locks. In particular, it cannot use malloc(); use mmap() - * instead. It cannot use fopen(); use open() instead. Etc. All global - * variables that are accessed by the handler should be marked 'volatile'. - */ -typedef void (*stackoverflow_handler_t) (int emergency, stackoverflow_context_t scp); - -/* - * Installs a stack overflow handler. - * The extra_stack argument is a pointer to a pre-allocated area used as a - * stack for executing the handler. It typically comes from a static variable - * or from heap-allocated memoty; placing it on the main stack may fail on - * some operating systems. - * Its size, passed in extra_stack_size, should be sufficiently large. The - * following code determines an appropriate size: - * #include <signal.h> - * #ifndef SIGSTKSZ / * glibc defines SIGSTKSZ for this purpose * / - * # define SIGSTKSZ 16384 / * on most platforms, 16 KB are sufficient * / - * #endif - * Returns 0 on success, or -1 if the system doesn't support catching stack - * overflow. - */ -extern int stackoverflow_install_handler (stackoverflow_handler_t handler, - void* extra_stack, size_t extra_stack_size); - -/* - * Deinstalls the stack overflow handler. - */ -extern void stackoverflow_deinstall_handler (void); - -/* -------------------------------------------------------------------------- */ - -/* - * The following structure and functions permit to define different SIGSEGV - * policies on different address ranges. - */ - -/* - * The type of a local SIGSEGV handler. - * The fault address is passed as argument. - * The second argument is fixed arbitrary user data. - * The return value should be nonzero if the handler has done its job - * and no other handler should be called, or 0 if the handler declines
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/tests/altstack.h
Deleted
@@ -1,67 +0,0 @@ -/* Some auxiliary stuff for defining an alternate stack. - Copyright (C) 2010 Eric Blake <eblake@redhat.com> - Copyright (C) 2010 Bruno Haible <bruno@clisp.org> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#include <string.h> /* for memset */ - -/* Get uintptr_t. */ -#if HAVE_STDINT_H -# include <stdint.h> -#endif -#if HAVE_INTTYPES_H -# include <inttypes.h> -#endif - -#ifndef SIGSTKSZ -# define SIGSTKSZ 16384 -#endif - -/* glibc says: Users should use SIGSTKSZ as the size of user-supplied - buffers. We want to detect stack overflow of the alternate stack - in a nicer manner than just crashing, so we overallocate in - comparison to what we hand libsigsegv. Also, we intentionally hand - an unaligned pointer, to ensure the alternate stack still ends up - aligned. */ -#define MYSTACK_CRUMPLE_ZONE 8192 -char mystack_storageSIGSTKSZ + 2 * MYSTACK_CRUMPLE_ZONE + 31; -char *mystack; /* SIGSTKSZ bytes in the middle of storage. */ - -static void -prepare_alternate_stack (void) -{ - memset (mystack_storage, 's', sizeof mystack_storage); - mystack = (char *) ((uintptr_t) (mystack_storage + MYSTACK_CRUMPLE_ZONE) | 31); -} - -static void -check_alternate_stack_no_overflow (void) -{ - unsigned int i; - - for (i = MYSTACK_CRUMPLE_ZONE; i > 0; i--) - if (*(mystack - i) != 's') - { - printf ("Alternate stack was exceeded by %u bytes!!\n", i); - exit (1); - } - for (i = MYSTACK_CRUMPLE_ZONE; i > 0; i--) - if (*(mystack + SIGSTKSZ - 1 + i) != 's') - { - printf ("Alternate stack was exceeded by %u bytes!!\n", i); - exit (1); - } -}
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/tests/mmaputil.h
Deleted
@@ -1,105 +0,0 @@ -/* Some auxiliary stuff for using mmap & friends. - Copyright (C) 2002-2003, 2016 Bruno Haible <bruno@clisp.org> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#if defined _WIN32 && !defined __CYGWIN__ -# define HAVE_WIN32_VM -#else -# include "config.h" -#endif - -#ifdef HAVE_WIN32_VM - -/* ------------------------ Windows ------------------------ */ - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include <windows.h> -#include <winerror.h> -#define PROT_NONE PAGE_NOACCESS -#define PROT_READ PAGE_READONLY -#define PROT_READ_WRITE PAGE_READWRITE - -static void * -mmap_zeromap (void *map_addr_hint, size_t map_len) -{ - if (VirtualAlloc ((void *)((uintptr_t) map_addr_hint & -0x10000), - (((uintptr_t) map_addr_hint + map_len - 1) | 0xffff) + 1 - - ((uintptr_t) map_addr_hint & -0x10000), - MEM_RESERVE, PAGE_NOACCESS) - && VirtualAlloc (map_addr_hint, map_len, MEM_COMMIT, PAGE_READWRITE)) - return map_addr_hint; - else - return (void *)(-1); -} - -int munmap (void *addr, size_t len) -{ - if (VirtualFree (addr, len, MEM_DECOMMIT)) - return 0; - else - return -1; -} - -int mprotect (void *addr, size_t len, int prot) -{ - DWORD oldprot; - - if (VirtualProtect (addr, len, prot, &oldprot)) - return 0; - else - return -1; -} - -#else - -/* ------------------------ Unix ------------------------ */ - -#include <sys/types.h> -#include <sys/mman.h> - -#ifndef PROT_NONE -# define PROT_NONE 0 -#endif -#define PROT_READ_WRITE (PROT_READ|PROT_WRITE) - -#if HAVE_MMAP_ANON -# define zero_fd -1 -# define map_flags MAP_ANON | MAP_PRIVATE -#elif HAVE_MMAP_ANONYMOUS -# define zero_fd -1 -# define map_flags MAP_ANONYMOUS | MAP_PRIVATE -#elif HAVE_MMAP_DEVZERO -# include <fcntl.h> -# ifndef MAP_FILE -# define MAP_FILE 0 -# endif -static int zero_fd; -# define map_flags MAP_FILE | MAP_PRIVATE -#endif - -static void * -mmap_zeromap (void *map_addr_hint, size_t map_len) -{ -#ifdef __hpux - /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete - freedom about the address range. */ - return (void *) mmap ((void *) 0, map_len, PROT_READ_WRITE, map_flags, zero_fd, 0); -#else - return (void *) mmap (map_addr_hint, map_len, PROT_READ_WRITE, map_flags, zero_fd, 0); -#endif -} - -#endif
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/tests/sigsegv1.c
Deleted
@@ -1,129 +0,0 @@ -/* Test that the handler is called, with the right fault address. - Copyright (C) 2002-2006, 2008, 2011, 2016 Bruno Haible <bruno@clisp.org> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _MSC_VER -# include <config.h> -#endif - -#include "sigsegv.h" -#include <stdint.h> -#include <stdio.h> - -#if HAVE_SIGSEGV_RECOVERY - -#include "mmaputil.h" -#include <stdlib.h> - -#if SIGSEGV_FAULT_ADDRESS_ALIGNMENT > 1UL -# include <unistd.h> -# define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (getpagesize () - 1) -#else -# define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0 -#endif - -uintptr_t page; - -volatile int handler_called = 0; - -int -handler (void *fault_address, int serious) -{ - handler_called++; - if (handler_called > 10) - abort (); - if (fault_address - != (void *)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS)) - abort (); - if (mprotect ((void *) page, 0x4000, PROT_READ_WRITE) == 0) - return 1; - return 0; -} - -void -crasher (uintptr_t p) -{ - *(volatile int *) (p + 0x678) = 42; -} - -int -main () -{ - int prot_unwritable; - void *p; - - /* Preparations. */ -#if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO - zero_fd = open ("/dev/zero", O_RDONLY, 0644); -#endif - -#if defined __linux__ && defined __sparc__ - /* On Linux 2.6.26/SPARC64, PROT_READ has the same effect as - PROT_READ | PROT_WRITE. */ - prot_unwritable = PROT_NONE; -#else - prot_unwritable = PROT_READ; -#endif - - /* Setup some mmaped memory. */ - p = mmap_zeromap ((void *) 0x12340000, 0x4000); - if (p == (void *)(-1)) - { - fprintf (stderr, "mmap_zeromap failed.\n"); - exit (2); - } - page = (uintptr_t) p; - - /* Make it read-only. */ - if (mprotect ((void *) page, 0x4000, prot_unwritable) < 0) - { - fprintf (stderr, "mprotect failed.\n"); - exit (2); - } - /* Test whether it's possible to make it read-write after it was read-only. - This is not possible on Cygwin. */ - if (mprotect ((void *) page, 0x4000, PROT_READ_WRITE) < 0 - || mprotect ((void *) page, 0x4000, prot_unwritable) < 0) - { - fprintf (stderr, "mprotect failed.\n"); - exit (2); - } - - /* Install the SIGSEGV handler. */ - sigsegv_install_handler (&handler); - - /* The first write access should invoke the handler and then complete. */ - crasher (page); - /* The second write access should not invoke the handler. */ - crasher (page); - - /* Check that the handler was called only once. */ - if (handler_called != 1) - exit (1); - /* Test passed! */ - printf ("Test passed.\n"); - return 0; -} - -#else - -int -main () -{ - return 77; -} - -#endif
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/tests/sigsegv2.c
Deleted
@@ -1,164 +0,0 @@ -/* Test the dispatcher. - Copyright (C) 2002-2006, 2008, 2011, 2016 Bruno Haible <bruno@clisp.org> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _MSC_VER -# include <config.h> -#endif - -#include "sigsegv.h" -#include <stdint.h> -#include <stdio.h> - -#if HAVE_SIGSEGV_RECOVERY - -#include "mmaputil.h" -#include <stdlib.h> - -static sigsegv_dispatcher dispatcher; - -static volatile unsigned int logcount = 0; -static volatile uintptr_t logdata10; - -/* Note about SIGSEGV_FAULT_ADDRESS_ALIGNMENT: It does not matter whether - fault_address is rounded off here because all intervals that we pass to - sigsegv_register are page-aligned. */ - -static int -area_handler (void *fault_address, void *user_arg) -{ - uintptr_t area = *(uintptr_t *)user_arg; - logdatalogcount++ = area; - if (logcount >= sizeof (logdata) / sizeof (logdata0)) - abort (); - if (!((uintptr_t)fault_address >= area - && (uintptr_t)fault_address - area < 0x4000)) - abort (); - if (mprotect ((void *) area, 0x4000, PROT_READ_WRITE) == 0) - return 1; - return 0; -} - -static int -handler (void *fault_address, int serious) -{ - return sigsegv_dispatch (&dispatcher, fault_address); -} - -static void -barrier () -{ -} - -int -main () -{ - int prot_unwritable; - void *p; - uintptr_t area1; - uintptr_t area2; - uintptr_t area3; - - /* Preparations. */ -#if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO - zero_fd = open ("/dev/zero", O_RDONLY, 0644); -#endif - sigsegv_init (&dispatcher); - sigsegv_install_handler (&handler); - -#if defined __linux__ && defined __sparc__ - /* On Linux 2.6.26/SPARC64, PROT_READ has the same effect as - PROT_READ | PROT_WRITE. */ - prot_unwritable = PROT_NONE; -#else - prot_unwritable = PROT_READ; -#endif - - /* Setup some mmaped memory. */ - - p = mmap_zeromap ((void *) 0x12340000, 0x4000); - if (p == (void *)(-1)) - { - fprintf (stderr, "mmap_zeromap failed.\n"); - exit (2); - } - area1 = (uintptr_t) p; - sigsegv_register (&dispatcher, (void *) area1, 0x4000, &area_handler, &area1); - if (mprotect ((void *) area1, 0x4000, PROT_NONE) < 0) - { - fprintf (stderr, "mprotect failed.\n"); - exit (2); - } - - p = mmap_zeromap ((void *) 0x0BEE0000, 0x4000); - if (p == (void *)(-1)) - { - fprintf (stderr, "mmap_zeromap failed.\n"); - exit (2); - } - area2 = (uintptr_t) p; - sigsegv_register (&dispatcher, (void *) area2, 0x4000, &area_handler, &area2); - if (mprotect ((void *) area2, 0x4000, prot_unwritable) < 0) - { - fprintf (stderr, "mprotect failed.\n"); - exit (2); - } - if (mprotect ((void *) area2, 0x4000, PROT_READ_WRITE) < 0 - || mprotect ((void *) area2, 0x4000, prot_unwritable) < 0) - { - fprintf (stderr, "mprotect failed.\n"); - exit (2); - } - - p = mmap_zeromap ((void *) 0x06990000, 0x4000); - if (p == (void *)(-1)) - { - fprintf (stderr, "mmap_zeromap failed.\n"); - exit (2); - } - area3 = (uintptr_t) p; - sigsegv_register (&dispatcher, (void *) area3, 0x4000, &area_handler, &area3); - mprotect ((void *) area3, 0x4000, prot_unwritable); - - /* This access should call the handler. */ - ((volatile int *)area2)230 = 22; - /* This access should call the handler. */ - ((volatile int *)area3)412 = 33; - /* This access should not give a signal. */ - ((volatile int *)area2)135 = 22; - /* This access should call the handler. */ - ((volatile int *)area1)612 = 11; - - barrier(); - - /* Check that the handler was called three times. */ - if (logcount != 3) - exit (1); - if (!(logdata0 == area2 && logdata1 == area3 && logdata2 == area1)) - exit (1); - printf ("Test passed.\n"); - return 0; -} - -#else - -int -main () -{ - return 77; -} - -#endif
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/tests/sigsegv3.c
Deleted
@@ -1,152 +0,0 @@ -/* Test that the handler can be exited multiple times. - Copyright (C) 2002-2006, 2008, 2011, 2016 Bruno Haible <bruno@clisp.org> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _MSC_VER -# include <config.h> -#endif - -#include "sigsegv.h" -#include <stdint.h> -#include <stdio.h> - -#if HAVE_SIGSEGV_RECOVERY - -#if defined _WIN32 && !defined __CYGWIN__ - /* Windows doesn't have sigset_t. */ - typedef int sigset_t; -# define sigemptyset(set) -# define sigprocmask(how,set,oldset) -#endif - -#include "mmaputil.h" -#include <stdlib.h> /* for abort, exit */ -#include <signal.h> -#include <setjmp.h> - -#if SIGSEGV_FAULT_ADDRESS_ALIGNMENT > 1UL -# include <unistd.h> -# define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (getpagesize () - 1) -#else -# define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0 -#endif - -jmp_buf mainloop; -sigset_t mainsigset; - -volatile int pass = 0; -uintptr_t page; - -volatile int handler_called = 0; - -static void -handler_continuation (void *arg1, void *arg2, void *arg3) -{ - longjmp (mainloop, pass); -} - -int -handler (void *fault_address, int serious) -{ - handler_called++; - if (handler_called > 10) - abort (); - if (fault_address - != (void *)((page + 0x678 + 8 * pass) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS)) - abort (); - pass++; - printf ("Fault %d caught.\n", pass); - sigprocmask (SIG_SETMASK, &mainsigset, NULL); - return sigsegv_leave_handler (handler_continuation, NULL, NULL, NULL); -} - -void -crasher (uintptr_t p) -{ - *(volatile int *) (p + 0x678 + 8 * pass) = 42; -} - -int -main () -{ - int prot_unwritable; - void *p; - sigset_t emptyset; - - /* Preparations. */ -#if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO - zero_fd = open ("/dev/zero", O_RDONLY, 0644); -#endif - -#if defined __linux__ && defined __sparc__ - /* On Linux 2.6.26/SPARC64, PROT_READ has the same effect as - PROT_READ | PROT_WRITE. */ - prot_unwritable = PROT_NONE; -#else - prot_unwritable = PROT_READ; -#endif - - /* Setup some mmaped memory. */ - p = mmap_zeromap ((void *) 0x12340000, 0x4000); - if (p == (void *)(-1)) - { - fprintf (stderr, "mmap_zeromap failed.\n"); - exit (2); - } - page = (uintptr_t) p; - - /* Make it read-only. */ - if (mprotect ((void *) page, 0x4000, prot_unwritable) < 0) - { - fprintf (stderr, "mprotect failed.\n"); - exit (2); - } - - /* Install the SIGSEGV handler. */ - if (sigsegv_install_handler (&handler) < 0) - exit (2); - - /* Save the current signal mask. */ - sigemptyset (&emptyset); - sigprocmask (SIG_BLOCK, &emptyset, &mainsigset); - - /* Provoke two SIGSEGVs in a row. */ - switch (setjmp (mainloop)) - { - case 0: case 1: - printf ("Doing SIGSEGV pass %d.\n", pass + 1); - crasher (page); - printf ("no SIGSEGV?!\n"); exit (1); - case 2: - break; - default: - abort (); - } - - /* Test passed! */ - printf ("Test passed.\n"); - return 0; -} - -#else - -int -main () -{ - return 77; -} - -#endif
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/tests/stackoverflow1.c
Deleted
@@ -1,149 +0,0 @@ -/* Test the stack overflow handler. - Copyright (C) 2002-2006, 2008, 2010 Bruno Haible <bruno@clisp.org> - Copyright (C) 2010 Eric Blake <eblake@redhat.com> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _MSC_VER -# include <config.h> -#endif - -#include "sigsegv.h" -#include <stdio.h> -#include <limits.h> - -#if HAVE_STACK_OVERFLOW_RECOVERY - -#if defined _WIN32 && !defined __CYGWIN__ - /* Windows doesn't have sigset_t. */ - typedef int sigset_t; -# define sigemptyset(set) -# define sigprocmask(how,set,oldset) -#endif - -#include <stddef.h> /* needed for NULL on SunOS4 */ -#include <stdlib.h> /* for abort, exit */ -#include <signal.h> -#include <setjmp.h> -#if HAVE_SETRLIMIT -# include <sys/types.h> -# include <sys/time.h> -# include <sys/resource.h> -#endif -#include "altstack.h" - -jmp_buf mainloop; -sigset_t mainsigset; - -volatile int pass = 0; - -volatile char *stack_lower_bound; -volatile char *stack_upper_bound; - -static void -stackoverflow_handler_continuation (void *arg1, void *arg2, void *arg3) -{ - int arg = (int) (long) arg1; - longjmp (mainloop, arg); -} - -void -stackoverflow_handler (int emergency, stackoverflow_context_t scp) -{ - char dummy; - volatile char *addr = &dummy; - if (!(addr >= stack_lower_bound && addr <= stack_upper_bound)) - abort (); - pass++; - printf ("Stack overflow %d caught.\n", pass); - sigprocmask (SIG_SETMASK, &mainsigset, NULL); - sigsegv_leave_handler (stackoverflow_handler_continuation, - (void *) (long) (emergency ? -1 : pass), NULL, NULL); -} - -volatile int * -recurse_1 (int n, volatile int *p) -{ - if (n < INT_MAX) - *recurse_1 (n + 1, p) += n; - return p; -} - -int -recurse (volatile int n) -{ - return *recurse_1 (n, &n); -} - -int -main () -{ - sigset_t emptyset; - -#if HAVE_SETRLIMIT && defined RLIMIT_STACK - /* Before starting the endless recursion, try to be friendly to the user's - machine. On some Linux 2.2.x systems, there is no stack limit for user - processes at all. We don't want to kill such systems. */ - struct rlimit rl; - rl.rlim_cur = rl.rlim_max = 0x100000; /* 1 MB */ - setrlimit (RLIMIT_STACK, &rl); -#endif - - /* Prepare the storage for the alternate stack. */ - prepare_alternate_stack (); - - /* Install the stack overflow handler. */ - if (stackoverflow_install_handler (&stackoverflow_handler, - mystack, SIGSTKSZ) - < 0) - exit (2); - stack_lower_bound = mystack; - stack_upper_bound = mystack + SIGSTKSZ - 1; - - /* Save the current signal mask. */ - sigemptyset (&emptyset); - sigprocmask (SIG_BLOCK, &emptyset, &mainsigset); - - /* Provoke two stack overflows in a row. */ - switch (setjmp (mainloop)) - { - case -1: - printf ("emergency exit\n"); exit (1); - case 0: case 1: - printf ("Starting recursion pass %d.\n", pass + 1); - recurse (0); - printf ("no endless recursion?!\n"); exit (1); - case 2: - break; - default: - abort (); - } - - /* Validate that the alternate stack did not overflow. */ - check_alternate_stack_no_overflow (); - - printf ("Test passed.\n"); - exit (0); -} - -#else - -int -main () -{ - return 77; -} - -#endif
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/tests/stackoverflow2.c
Deleted
@@ -1,210 +0,0 @@ -/* Test that stack overflow and SIGSEGV are correctly distinguished. - Copyright (C) 2002-2006, 2008, 2016 Bruno Haible <bruno@clisp.org> - Copyright (C) 2010 Eric Blake <eblake@redhat.com> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _MSC_VER -# include <config.h> -#endif - -#include "sigsegv.h" -#include <stdint.h> -#include <stdio.h> -#include <limits.h> - -#if HAVE_STACK_OVERFLOW_RECOVERY && HAVE_SIGSEGV_RECOVERY - -#if defined _WIN32 && !defined __CYGWIN__ - /* Windows doesn't have sigset_t. */ - typedef int sigset_t; -# define sigemptyset(set) -# define sigprocmask(how,set,oldset) -#endif - -#include "mmaputil.h" -#include <stddef.h> /* needed for NULL on SunOS4 */ -#include <stdlib.h> /* for abort, exit */ -#include <signal.h> -#include <setjmp.h> -#if HAVE_SETRLIMIT -# include <sys/types.h> -# include <sys/time.h> -# include <sys/resource.h> -#endif -#include "altstack.h" - -jmp_buf mainloop; -sigset_t mainsigset; - -volatile int pass = 0; -uintptr_t page; - -static void -stackoverflow_handler_continuation (void *arg1, void *arg2, void *arg3) -{ - int arg = (int) (long) arg1; - longjmp (mainloop, arg); -} - -void -stackoverflow_handler (int emergency, stackoverflow_context_t scp) -{ - pass++; - if (pass <= 2) - printf ("Stack overflow %d caught.\n", pass); - else - { - printf ("Segmentation violation misdetected as stack overflow.\n"); - exit (1); - } - sigprocmask (SIG_SETMASK, &mainsigset, NULL); - sigsegv_leave_handler (stackoverflow_handler_continuation, - (void *) (long) (emergency ? -1 : pass), NULL, NULL); -} - -int -sigsegv_handler (void *address, int emergency) -{ - /* This test is necessary to distinguish stack overflow and SIGSEGV. */ - if (!emergency) - return 0; - - pass++; - if (pass <= 2) - { - printf ("Stack overflow %d missed.\n", pass); - exit (1); - } - else - printf ("Segmentation violation correctly detected.\n"); - sigprocmask (SIG_SETMASK, &mainsigset, NULL); - return sigsegv_leave_handler (stackoverflow_handler_continuation, - (void *) (long) pass, NULL, NULL); -} - -volatile int * -recurse_1 (int n, volatile int *p) -{ - if (n < INT_MAX) - *recurse_1 (n + 1, p) += n; - return p; -} - -int -recurse (volatile int n) -{ - return *recurse_1 (n, &n); -} - -int -main () -{ - int prot_unwritable; - void *p; - sigset_t emptyset; - -#if HAVE_SETRLIMIT && defined RLIMIT_STACK - /* Before starting the endless recursion, try to be friendly to the user's - machine. On some Linux 2.2.x systems, there is no stack limit for user - processes at all. We don't want to kill such systems. */ - struct rlimit rl; - rl.rlim_cur = rl.rlim_max = 0x100000; /* 1 MB */ - setrlimit (RLIMIT_STACK, &rl); -#endif - - /* Prepare the storage for the alternate stack. */ - prepare_alternate_stack (); - - /* Install the stack overflow handler. */ - if (stackoverflow_install_handler (&stackoverflow_handler, - mystack, SIGSTKSZ) - < 0) - exit (2); - - /* Preparations. */ -#if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO - zero_fd = open ("/dev/zero", O_RDONLY, 0644); -#endif - -#if defined __linux__ && defined __sparc__ - /* On Linux 2.6.26/SPARC64, PROT_READ has the same effect as - PROT_READ | PROT_WRITE. */ - prot_unwritable = PROT_NONE; -#else - prot_unwritable = PROT_READ; -#endif - - /* Setup some mmaped memory. */ - p = mmap_zeromap ((void *) 0x12340000, 0x4000); - if (p == (void *)(-1)) - { - fprintf (stderr, "mmap_zeromap failed.\n"); - exit (2); - } - page = (uintptr_t) p; - - /* Make it read-only. */ - if (mprotect ((void *) page, 0x4000, prot_unwritable) < 0) - { - fprintf (stderr, "mprotect failed.\n"); - exit (2); - } - - /* Install the SIGSEGV handler. */ - if (sigsegv_install_handler (&sigsegv_handler) < 0) - exit (2); - - /* Save the current signal mask. */ - sigemptyset (&emptyset); - sigprocmask (SIG_BLOCK, &emptyset, &mainsigset); - - /* Provoke two stack overflows in a row. */ - switch (setjmp (mainloop)) - { - case -1: - printf ("emergency exit\n"); exit (1); - case 0: case 1: - printf ("Starting recursion pass %d.\n", pass + 1); - recurse (0); - printf ("no endless recursion?!\n"); exit (1); - case 2: - *(volatile int *) (page + 0x678) = 42; - break; - case 3: - *(volatile int *) 0 = 42; - break; - case 4: - break; - default: - abort (); - } - - /* Validate that the alternate stack did not overflow. */ - check_alternate_stack_no_overflow (); - - printf ("Test passed.\n"); - exit (0);
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/ChangeLog -> _service:tar_scm:libsigsegv-2.14.tar.gz/ChangeLog
Changed
@@ -1,3 +1,199 @@ +2022-01-07 Bruno Haible <bruno@clisp.org> + + Prepare for version 2.14. + * configure.ac (AC_INIT): Bump version to 2.14. + * src/sigsegv.h.in (LIBSIGSEGV_VERSION): Likewise. + * README: Likewise. + * src/Makefile.am (LIBSIGSEGV_VERSION_INFO): Bump to 2:7:0. + +2022-01-07 Bruno Haible <bruno@clisp.org> + + Improve support for Linux/LoongArch64. + * src/fault-linux-loongarch.h: New file. + * src/Makefile.am (noinst_HEADERS): Add it. + * configure.ac (CFG_FAULT): Use this file on Linux/LoongArch64. + * NEWS: Mention it. + +2021-09-13 Bruno Haible <bruno@clisp.org> + + Improve support for OpenBSD/PowerPC64. + Based on a patch by Christian Weisgerber <naddy@mips.inka.de> at + <https://lists.gnu.org/archive/html/bug-gnulib/2021-09/msg00045.html>. + * src/fault-openbsd-powerpc.h (SIGSEGV_FAULT_STACKPOINTER): Define + differently in 64-bit mode. + * NEWS: Mention it. + +2021-08-07 Bruno Haible <bruno@clisp.org> + + tests: Silence some GCC warnings. + Patch by Paul Eggert. + * tests/test-catch-segv1.c, tests/test-catch-stackoverflow1.c, + tests/test-catch-stackoverflow2.c: Declare some functions and variables + static, to pacify GCC when warning about external functions missing + declarations. + +2021-06-09 Bruno Haible <bruno@clisp.org> + + tests: Hide a null pointer from the compiler's optimizations. + Patch by Paul Eggert. + * tests/test-catch-stackoverflow2.c (null_pointer_to_volatile_int): New + variable. + (main): Use it. + +2021-06-06 Bruno Haible <bruno@clisp.org> + + Avoid a gcc warning "declaration of 'sig' shadows a parameter". + Reported by Dmitry V. Levin <ldv@altlinux.org> in + <https://lists.gnu.org/archive/html/bug-gnulib/2021-06/msg00018.html>. + * src/handler-unix.c (sigsegv_handler): Use a different local variable + name than 'sig'. + +2021-05-29 Bruno Haible <bruno@clisp.org> + + Fix typo in comment. + * src/stackvma-procfs.c: Fix typo in comment, found by Paul Eggert. + * src/stackvma-vma-iter.c: Likewise. + * src/stackvma-beos.c: Likewise. + +2021-05-16 Bruno Haible <bruno@clisp.org> + + Avoid compilation error with glibc >= 2.34. + * lib/sigsegv.h.in (SIGSTKSZ): On glibc systems, redefine to a suitable + constant. + * m4/sigaltstack-longjmp.m4 (SV_TRY_LEAVE_HANDLER_LONGJMP): Likewise. + * m4/sigaltstack-siglongjmp.m4 (SV_TRY_LEAVE_HANDLER_SIGLONGJMP): + Likewise. + +2021-05-16 Bruno Haible <bruno@clisp.org> + + On Cygwin, use the sigaltstack-based approach by default. + * src/fault-cygwin.h: New file. + * src/fault-cygwin-i386.h: New file. + * src/stackvma-cygwin.c: New file, based on src/stackvma-netbsd.c. + * src/stackvma-vma-iter.c: Enable /proc-reading code also on Cygwin. + * src/Makefile.am (noinst_HEADERS): Add fault-cygwin.h, + fault-cygwin-i386.h. + (EXTRA_DIST): Add stackvma-cygwin.c. + * configure.ac: Use fault-cygwin-i386.h instead of + fault-posix-ucontext.h. Add --enable-support-old-cygwin option. When it + is not specified, use handler-unix.c and stackvma-cygwin.c + * NEWS: Mention that 64-bit Cygwin is now supported. + +2021-05-16 Bruno Haible <bruno@clisp.org> + + Simplify: Use the POSIX API instead of Mach API on newer macOS versions. + * src/fault-macos.h: New file. + * src/fault-macos-arm64.h: New file. + * src/fault-macos-i386.h: New file. + * src/fault-macos-powerpc.h: New file. + * src/Makefile.am (noinst_HEADERS): Add them. + * configure.ac (CFG_FAULT): On macOS 10.13 or newer, use fault-macos*.h + and handler-unix.c, instead of handler-macos.c. + +2021-05-16 Bruno Haible <bruno@clisp.org> + + Rename fault-macos-i386.h to fault-macos-i386-old.h. + * src/fault-macos-i386-old.h: Renamed from src/fault-macos-i386.h. + * configure.ac (CFG_FAULT): Update. + * src/Makefile.am (noinst_HEADERS): Likewise. + +2021-05-16 Bruno Haible <bruno@clisp.org> + + Simplify inclusion of stackvma-mincore.c. + * src/stackvma-mincore.c (mincore_get_vma): Renamed from + sigsegv_get_vma. + * src/stackvma-linux.c: No need to define 'sigsegv_get_vma' and 'STATIC' + macros before including stackvma-mincore.c. + * src/stackvma-freebsd.c: Likewise. + * src/stackvma-netbsd.c: Likewise. + * src/stackvma-mquery.c: Likewise. + * src/stackvma-procfs.c: Likewise. + * src/stackvma-aix.c: New file. + * src/Makefile.am (EXTRA_DIST): Add it. + * configure.ac (CFG_STACKVMA): Set to stackvma-aix.c instead of + stackvma-mincore.c. + +2021-05-16 Bruno Haible <bruno@clisp.org> + + Drop supporting outdated way of building on native Windows. + * autogen.sh: Don't create config.h.msvc, src/sigsegv.h.msvc. + * Makefile.msvc: Remove file. + * Makefile.am (EXTRA_DIST): Remove Makefile.msvc, config.h.msvc. + (config.h.msvc): Remove rule. + * src/Makefile.am (EXTRA_DIST): Remove sigsegv.h.msvc. + (sigsegv.h.msvc): Remove rule. + +2021-05-16 Bruno Haible <bruno@clisp.org> + + Moved sigaltstack.m4 and stack-direction.m4 to gnulib. + * m4/sigaltstack.m4: Remove file. + * m4/stack-direction.m4: Remove file. + * autogen.sh: Copy the two files from gnulib. + +2021-05-16 Bruno Haible <bruno@clisp.org> + + Avoid compiler warning. + * src/stackvma-netbsd.c (sigsegv_get_vma): Avoid unreachable statement. + +2021-05-15 Bruno Haible <bruno@clisp.org> + + Avoid warning on systems with musl libc. + * src/stackvma-mincore.c (pageinfo_t): Treat all libcs on Linux like + glibc. + +2021-05-15 Bruno Haible <bruno@clisp.org> + + Rename test files. + * tests/test-catch-segv1.c: Renamed from tests/sigsegv1.c. + * tests/test-catch-segv2.c: Renamed from tests/sigsegv3.c. + * tests/test-catch-stackoverflow1.c: Renamed from + tests/stackoverflow1.c. + * tests/test-catch-stackoverflow2.c: Renamed from + tests/stackoverflow2.c. + * tests/test-segv-dispatcher1.c: Renamed from tests/sigsegv2.c. + * tests/altstack-util.h: Renamed from tests/altstack.h. + * tests/mmap-anon-util.h: Renamed from tests/mmaputil.h. + +2021-05-15 Bruno Haible <bruno@clisp.org> + + Improve comments. + * src/handler-unix.c: Mention Solaris 11 stack_violation(). + * src/fault.h: SIGSEGV_FAULT_ADDRESS is not mandatory. + * src/stackvma-mquery.c: Update. + +2021-05-15 Bruno Haible <bruno@clisp.org> + + Fix possible warnings on AIX. + * src/stackvma-mincore.c (MINCORE_ADDR_T): Test _AIX, not UNIX_AIX. + +2021-05-15 Bruno Haible <bruno@clisp.org> + + Improve support for Solaris OpenIndiana. + * configure.ac: Make the test for <sys/procfs.h> succeed on Solaris + OpenIndiana even with -D_XOPEN_SOURCE=700. + * src/stackvma-procfs.c: Define __EXTENSIONS__, for Solaris OpenIndiana. + * NEWS: Mention the change. + +2021-02-28 Bruno Haible <bruno@clisp.org> + + Update DEPENDENCIES. + * DEPENDENCIES: List the normal dependencies of a package with an + Autoconf-generated configure file. + +2021-02-20 Bruno Haible <bruno@clisp.org> + + Support creating shared libraries on MidnightBSD. + Patch from <https://savannah.gnu.org/patch/?10007>. + * m4/libtool.m4: Treat MidnightBSD like FreeBSD. + * build-aux/ltmain.sh: Likewise. + * configure.ac (CFG_SIGNALS): Likewise. + * NEWS: Mention it. + +2021-02-20 Bruno Haible <bruno@clisp.org> + + Switch to autoconf 2.71. + * autogen.sh: Update comment. + 2021-01-16 Bruno Haible <bruno@clisp.org> Prepare for version 2.13.
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/Makefile.am -> _service:tar_scm:libsigsegv-2.14.tar.gz/Makefile.am
Changed
@@ -1,10 +1,10 @@ ## Makefile for libsigsegv. -## Copyright (C) 2002-2003, 2007, 2009, 2011, 2016-2018 Bruno Haible <bruno@clisp.org> +## Copyright (C) 2002-2003, 2007, 2009, 2011, 2016-2018, 2021 Bruno Haible <bruno@clisp.org> ## -## This program is free software; you can redistribute it and/or modify +## This program is free software: you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2, or (at your option) -## any later version. +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,9 +12,7 @@ ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -## USA. +## along with this program. If not, see <https://www.gnu.org/licenses/>. ## Process this file with automake to produce Makefile.in. @@ -27,7 +25,7 @@ SUBDIRS = src tests -EXTRA_DIST = ChangeLog.1 PORTING INSTALL.windows Makefile.msvc config.h.msvc +EXTRA_DIST = ChangeLog.1 PORTING INSTALL.windows DISTCLEANFILES = termbold termnorm @@ -69,9 +67,3 @@ install-data-hook: install-next install-next: @echo; echo "Now use the package; you can remove it later via '"`cat termbold`"make uninstall"`cat termnorm`"'."; echo - - -# Rules for "make dist". - -$(srcdir)/config.h.msvc : config.h.in - sed -e 's/#undef CFG_HANDLER/#define CFG_HANDLER "handler-win32.c"/' < $(srcdir)/config.h.in > $@
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/Makefile.in -> _service:tar_scm:libsigsegv-2.14.tar.gz/Makefile.in
Changed
@@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. +# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2020 Free Software Foundation, Inc. +# Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -165,9 +165,6 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/build-aux/compile \ @@ -239,6 +236,8 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -249,6 +248,7 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FAULT_CONTEXT = @FAULT_CONTEXT@ FGREP = @FGREP@ @@ -338,6 +338,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -353,7 +354,7 @@ # So, turn off parallel execution (at least in GNU make >= 4.0). GNUMAKEFLAGS = -j1 SUBDIRS = src tests -EXTRA_DIST = ChangeLog.1 PORTING INSTALL.windows Makefile.msvc config.h.msvc +EXTRA_DIST = ChangeLog.1 PORTING INSTALL.windows DISTCLEANFILES = termbold termnorm # Lead the user through the installation, in the hope that he will help us @@ -527,7 +528,6 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am @@ -887,11 +887,6 @@ install-next: @echo; echo "Now use the package; you can remove it later via '"`cat termbold`"make uninstall"`cat termnorm`"'."; echo -# Rules for "make dist". - -$(srcdir)/config.h.msvc : config.h.in - sed -e 's/#undef CFG_HANDLER/#define CFG_HANDLER "handler-win32.c"/' < $(srcdir)/config.h.in > $@ - # Tell versions 3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT:
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/NEWS -> _service:tar_scm:libsigsegv-2.14.tar.gz/NEWS
Changed
@@ -1,3 +1,15 @@ +New in 2.14: + +* Added support for 64-bit Cygwin. + +* Improved support for Linux/LoongArch64. + +* Improved support for Solaris OpenIndiana. + +* Added support for MidnightBSD. + +* Improved support for OpenBSD/PowerPC64. + New in 2.13: * Added support for macOS/arm64.
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/PORTING -> _service:tar_scm:libsigsegv-2.14.tar.gz/PORTING
Changed
@@ -4,10 +4,13 @@ STACK __PLATFORM________________________________________SIGSEGV___OVERFLOW__VERSION__ | | | -aarch64-unknown-freebsd11.1 | yes | yes | 2.11 +aarch64-apple-darwin20.3.0 | yes | yes | 2.13 +aarch64-unknown-freebsd11.1 | yes | yes | 2.13 aarch64-unknown-freebsd12.2 | yes | yes | 2.13 aarch64-unknown-linux3.13.0-gnu-glibc2.19 | yes | yes | 2.13 aarch64-unknown-linux3.16.0-gnu-glibc2.19 | yes | yes | 2.13 +aarch64-unknown-linux3.13.0-gnuabiarm-glibc2.19 | yes | yes | 2.13 +aarch64-unknown-linux5.10.7-musl | yes | yes | 2.13 alpha-dec-osf4.0d | yes | yes | 2.1 alpha-dec-osf4.0f | yes | yes | 2.1 alphaev56-dec-osf4.0d | yes | yes | 2.6 @@ -47,7 +50,7 @@ armv5tel-unknown-linux3.4.6-gnueabi-glibc2.5 | yes | yes | 2.13 armv5tejl-unknown-linux3.16.0-gnueabi-glibc2.19 | yes | yes | 2.13 armv7l-unknown-linux3.16.0-gnueabihf-glibc2.19 | yes | yes | 2.13 -armv6l-unknown-linux4.4.34-gnueabihf-glibc2.24 | yes | yes | 2.12 +armv6l-unknown-linux4.4.34-gnueabihf-glibc2.24 | yes | yes | 2.13 armv7l-unknown-linux4.4.132-gnueabihf-glibc2.24 | yes | yes | 2.12 armv7l-unknown-linux4.9.8-gnueabihf-glibc2.24 | yes | yes | 2.11 armv7l-unknown-linux5.5.2-gnueabihf-glibc2.30 | yes | yes | 2.13 @@ -110,11 +113,17 @@ 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 +i686-pc-linux2.4.22-gnu-glibc2.3 | yes | yes | 2.13 i686-pc-linux2.6.18-gnu-glibc2.5 | yes | yes | 2.11 +i686-pc-linux4.9.0-gnu-glibc2.24 | yes | yes | 2.13 +i686-pc-linux4.10.0-gnu-glibc2.24 | yes | yes | 2.13 +i686-pc-linux4.13.0-gnu-glibc2.26 | yes | yes | 2.13 +i686-pc-linux4.15.0-gnu-glibc2.27 | yes | yes | 2.13 +i686-pc-linux4.9.65-musl | yes | yes | 2.13 i386-pc-mingw32 | yes | yes | 2.6 i586-pc-mingw32 | yes | yes | 2.9 i686-pc-mingw32 | yes | yes | 2.10 -i686-w64-mingw32 | yes | yes | 2.11 +i686-w64-mingw32 | yes | yes | 2.13 i686-pc-minix3.1.8 | no | no | 2.12 i386-unknown-minix3.3.0 | no | no | 2.13 i386-unknown-mirbsd10 | yes | yes | 2.12 @@ -123,7 +132,11 @@ i386-pc-solaris2.8 | yes | yes | 2.7 i386-pc-solaris2.9 | yes | yes | 2.2 i386-pc-solaris2.10 | yes | yes | 2.13 -i386-pc-solaris2.11 | yes | yes | 2.13 +i386-pc-solaris2.11.0 | yes | yes | 2.13 +i386-pc-solaris2.11.3 | yes | yes | 2.13 +i386-pc-solaris2.11.4 | yes | yes | 2.13 +i386-pc-solaris2.11-omnios | yes | yes | 2.13 +i386-pc-solaris2.11-openindiana | yes | yes | 2.13 i686-pc-win32-msvc6 | yes | yes | 1.96 i686-pc-win32-msvc9 | yes | yes | 2.9 i386-unknown-freebsd4.0 | yes | yes | 2.1 @@ -140,11 +153,12 @@ i386-portbld-freebsd8.0 | yes | yes | 2.8 i386-unknown-freebsd8.1 | yes | yes | 2.9 i386-unknown-freebsd9.1 | yes | yes | 2.12 -i586-unknown-freebsd11.0 | yes | yes | 2.11 +i586-unknown-freebsd11.0 | yes | yes | 2.13 i586-unknown-freebsd12.0 | yes | yes | 2.13 +i386-unknown-midnightbsd2.0.2 | yes | yes | 2.13+ i686-unknown-kfreebsd6.2-gnu-glibc2.6 | yes | yes | 2.5+ i386-unknown-kfreebsd9.0-gnu-glibc2.13 | yes | yes | 2.13 -i386-unknown-dragonfly3.8 | yes | yes | 2.12 +i386-unknown-dragonfly3.8 | yes | yes | 2.13 i386-unknown-netbsdelf1.6 | no | no | 2.8 i386-unknown-netbsdelf2.0.2 | yes | yes | 2.4 i386-unknown-netbsdelf3.0 | yes | yes | 2.4 @@ -172,22 +186,27 @@ 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 ia64-unknown-linux2.6.18-gnu-glibc2.3 | yes | yes | 2.6 +ia64-unknown-linux2.6.16.27-gnu-glibc2.4 | yes | yes | 2.6 ia64-unknown-linux2.6.18-gnu-glibc2.5 | yes | yes | 2.13 +loongarch64-unknown-linux5.15.0-gnu-glibc2.34 | yes | yes | 2.14 mips-sgi-irix5.3 | yes | yes | 2.10 mips-sgi-irix6.2 | yes | yes | 2.6+ -mips-sgi-irix6.5 | yes | yes | 2.12 +mips-sgi-irix6.5 | yes | yes | 2.13 mips-unknown-linux2.4.27-gnu-glibc2.3 | yes | yes | 2.6 +mips-unknown-linux3.14.10-gnu-glibc2.13 | yes | yes | 2.13 mips-unknown-linux3.16.0-gnu-glibc2.19 | yes | yes | 2.13 mipsel-unknown-linux3.16.0-gnu-glibc2.19 | yes | yes | 2.13 +mipsel-unknown-linux4.1.4-gnu-glibc2.19 | yes | yes | 2.13 mips64-unknown-linux3.16.0-gnuabin32-glibc2.19 | yes | yes | 2.13 mips64-unknown-linux3.14.10-gnuabi64-glibc2.13 | yes | yes | 2.13 mips64-unknown-linux3.16.0-gnuabi64-glibc2.19 | yes | yes | 2.13 mips64el-unknown-linux2.6.27.1-gnu-glibc2.7 | yes | yes | 2.9 mips64el-unknown-linux3.16.0-gnuabin32-glibc2.19 | yes | yes | 2.13 +mips64el-unknown-linux4.1.4-gnuabin32-glibc2.19 | yes | yes | 2.13 mips64el-unknown-linux3.16.0-gnuabi64-glibc2.19 | yes | yes | 2.13 mips64el-unknown-linux4.1.4-gnuabi64-glibc2.19 | yes | yes | 2.13 +mips64-unknown-openbsd6.9 | yes | yes | 2.13 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 @@ -199,9 +218,11 @@ powerpc-ibm-aix5.3.0.0 | yes | yes | 2.9 powerpc-ibm-aix6.1.0.0 | yes | yes | 2.6 powerpc-ibm-aix7.1.3.0 | yes | yes | 2.12 -powerpc-ibm-aix7.1.5.0 | yes | yes | 2.13 +powerpc64-ibm-aix7.1.5.0 | yes | yes | 2.13 +powerpc64-ibm-aix7.1.5.0-abi32 | yes | yes | 2.13 powerpc-ibm-aix7.2.0.0 | yes | yes | 2.12 -powerpc-ibm-aix7.2.4.0 | yes | yes | 2.13 +powerpc64-ibm-aix7.2.4.0 | yes | yes | 2.13 +powerpc64-ibm-aix7.2.4.0-abi32 | yes | yes | 2.13 powerpc-apple-darwin5.5 | yes | yes | 2.2 powerpc-apple-darwin6.0 | yes | yes | 2.4 powerpc-apple-darwin6.8 | yes | yes | 2.2 @@ -241,8 +262,11 @@ powerpc64-unknown-linux2.6.32-gnu-glibc2.11 | yes | yes | 2.10 powerpc64-unknown-linux3.10.0-gnu-glibc2.17 | yes | yes | 2.13 powerpc64-unknown-linux3.17.2-gnu-glibc2.18 | yes | yes | 2.11 +powerpc64-unknown-linux3.10.0-gnuabi32-glibc2.17 | yes | yes | 2.13 powerpc64le-unknown-linux3.10.0-gnu-glibc2.17 | yes | yes | 2.13 +powerpc64le-unknown-linux3.16.0-gnu-glibc2.19 | yes | yes | 2.13 powerpc64le-unknown-linux3.17.4-gnu-glibc2.20 | yes | yes | 2.11 +powerpc64le-unknown-linux5.10.7-musl | yes | yes | 2.13 riscv32-unknown-linux4.15.0-gnu-glibc2.26 | yes | yes | 2.13 riscv64-unknown-linux4.15.0-gnu-glibc2.27 | yes | yes | 2.12 riscv64-unknown-linux4.16.0-gnu-glibc2.27 | yes | yes | 2.13 @@ -250,16 +274,16 @@ s390x-ibm-linux2.6.16.46-gnu-glibc2.4 | no | yes | 2.5 s390x-ibm-linux2.6.26-gnu-glibc2.11 | yes | yes | 2.10 s390x-ibm-linux3.16.0-gnu-glibc2.19 | yes | yes | 2.13 +s390x-ibm-linux5.10.7-musl | yes | yes | 2.13 sparc-unknown-linux2.4.32-gnu-glibc2.3 | yes | no | 2.1 sparc-unknown-netbsdelf7.1 | yes | no | 2.13 sparc-unknown-openbsd3.9 | yes | no | 2.4 +sparc-sun-sunos4.1.4 | yes | no | 2.13 sparc-sun-solaris2.5.1 | yes | yes | 2.12 sparc-sun-solaris2.6 | yes | yes | 2.8 sparc-sun-solaris2.7 | yes | yes | 2.8 sparc-sun-solaris2.8 | yes | yes | 2.12 sparc-sun-solaris2.9 | yes | yes | 2.6 -sparc-sun-solaris2.10 | yes | yes | 2.13 -sparc-sun-solaris2.11 | yes | yes | 2.13 sparc64-unknown-linux2.2.18-gnu-glibc2.1 | no | no | 1.95 sparc64-unknown-linux2.4.28-gnu-glibc2.3 | yes | no | 2.8 sparc64-unknown-linux2.6.26-gnu-glibc2.7 | yes | no | 2.10+ @@ -268,9 +292,16 @@ sparc64-unknown-linux4.5.0-gnu-glibc2.24 | yes | yes | 2.13 sparc64-unknown-linux4.19.0-gnu-glibc2.28 | yes | yes | 2.12 sparc64-unknown-linux5.9.0-gnu-glibc2.31 | yes | yes | 2.13 +sparc64-unknown-linux3.2.0-gnuabi32-glibc2.13 | yes | yes | 2.13 +sparc64-unknown-linux4.5.0-gnuabi32-glibc2.24 | yes | yes | 2.13 +sparc64-sun-solaris2.10 | yes | yes | 2.13 +sparc64-sun-solaris2.10-abi32 | yes | yes | 2.13 +sparc64-sun-solaris2.11.3 | yes | yes | 2.13 +sparc64-sun-solaris2.11.3-abi32 | yes | yes | 2.13 sparc64-unknown-freebsd12.2 | no | no | 2.13 -sparc64-unknown-netbsd8.0 | yes | no | 2.12 +sparc64-unknown-netbsd8.0 | yes | no | 2.13 sparc64-unknown-openbsd3.6 | no | no | 2.2 +x86_64-pc-cygwin2.9 | yes | yes | 2.13 x86_64-apple-darwin9.8.0 | yes | yes | 2.13 x86_64-apple-darwin10.3.0 | yes | yes | 2.8 x86_64-apple-darwin10.4.0 | yes | yes | 2.8 @@ -298,6 +329,7 @@ x86_64-unknown-linux2.6.21-gnu-glibc2.6 | yes | yes | 2.4 x86_64-pc-linux3.0.101-gnu-glibc2.11 | yes | yes | 2.11 x86_64-pc-linux2.6.32-gnu-glibc2.12 | yes | yes | 2.13 +x86_64-pc-linux2.6.33.3-gnu-glibc2.12 | yes | yes | 2.13 x86_64-pc-linux3.2.0-gnu-glibc2.13 | yes | yes | 2.11 x86_64-pc-linux3.2.83-gnu-glibc2.15 | yes | yes | 2.11 x86_64-pc-linux3.7.10-gnu-glibc2.17 | yes | yes | 2.11 @@ -316,19 +348,41 @@ x86_64-pc-linux4.8.16-gnu-glibc2.23 | yes | yes | 2.11 x86_64-pc-linux4.8.0-gnu-glibc2.24 | yes | yes | 2.11 x86_64-pc-linux4.8.13-gnu-glibc2.24 | yes | yes | 2.11 +x86_64-pc-linux4.9.0-gnu-glibc2.24 | yes | yes | 2.13 +x86_64-pc-linux4.13.0-gnu-glibc2.26 | yes | yes | 2.13 +x86_64-pc-linux4.13.9-gnu-glibc2.26 | yes | yes | 2.13 +x86_64-pc-linux4.15.0-gnu-glibc2.27 | yes | yes | 2.13 x86_64-pc-linux4.14.65-gnu-glibc2.28 | yes | yes | 2.13 x86_64-pc-linux4.18.0-gnu-glibc2.28 | yes | yes | 2.13 +x86_64-pc-linux4.18.16-gnu-glibc2.28 | yes | yes | 2.13 +x86_64-pc-linux4.19.0-gnu-glibc2.28 | yes | yes | 2.13 +x86_64-pc-linux5.0.10-gnu-glibc2.28 | yes | yes | 2.13 +x86_64-pc-linux5.0.9-gnu-glibc2.29 | yes | yes | 2.13 +x86_64-pc-linux5.4.31-gnu-glibc2.29 | yes | yes | 2.13 +x86_64-pc-linux5.3.7-gnu-glibc2.30 | yes | yes | 2.13 x86_64-pc-linux5.3.11-gnu-glibc2.30 | yes | yes | 2.13 +x86_64-pc-linux5.4.0-gnu-glibc2.31 | yes | yes | 2.13 +x86_64-pc-linux5.6.6-gnu-glibc2.31 | yes | yes | 2.13 x86_64-pc-linux5.8.0-gnu-glibc2.32 | yes | yes | 2.13 +x86_64-pc-linux4.4.0-gnuabi32-glibc2.23 | yes | yes | 2.13 +x86_64-pc-linux4.14.65-gnuabi32-glibc2.28 | yes | yes | 2.13 x86_64-pc-linux4.4.0-gnux32-glibc2.23 | yes | yes | 2.13 +x86_64-pc-linux4.9.65-musl | yes | yes | 2.13 +x86_64-pc-linux4.19.34-musl | yes | yes | 2.13 +x86_64-pc-linux4.19.118-musl | yes | yes | 2.13 +x86_64-pc-linux5.4.43-musl | yes | yes | 2.13 +x86_64-pc-linux5.10.7-musl | yes | yes | 2.13
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/README -> _service:tar_scm:libsigsegv-2.14.tar.gz/README
Changed
@@ -26,9 +26,9 @@ Each of the three APIs can be used independently or simultaneously. For examples of the use of the APIs, see: - - Global SIGSEGV handlers: see tests/sigsegv1.c. - - Local SIGSEGV handlers: see tests/sigsegv2.c. - - Stack overflow handlers: see tests/stackoverflow1.c. + - Global SIGSEGV handlers: see tests/test-catch-segv1.c. + - Local SIGSEGV handlers: see tests/test-segv-dispatcher1.c. + - Stack overflow handlers: see tests/test-catch-stackoverflow1.c. About portability. @@ -145,7 +145,7 @@ Download -------- - https://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.13.tar.gz + https://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.14.tar.gz Homepage --------
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/aclocal.m4 -> _service:tar_scm:libsigsegv-2.14.tar.gz/aclocal.m4
Changed
@@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.3 -*- Autoconf -*- +# generated automatically by aclocal 1.16.5 -*- Autoconf -*- -# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -14,13 +14,13 @@ m4_ifndef(AC_CONFIG_MACRO_DIRS, m4_defun(_AM_CONFIG_MACRO_DIRS, )m4_defun(AC_CONFIG_MACRO_DIRS, _AM_CONFIG_MACRO_DIRS($@))) m4_ifndef(AC_AUTOCONF_VERSION, m4_copy(m4_PACKAGE_VERSION, AC_AUTOCONF_VERSION))dnl -m4_if(m4_defn(AC_AUTOCONF_VERSION), 2.69,, -m4_warning(this file was generated for autoconf 2.69. +m4_if(m4_defn(AC_AUTOCONF_VERSION), 2.71,, +m4_warning(this file was generated for autoconf 2.71. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.)) -# Copyright (C) 2002-2020 Free Software Foundation, Inc. +# Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -35,7 +35,7 @@ am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if($1, 1.16.3, , +m4_if($1, 1.16.5, , AC_FATAL(Do not call $0, use AM_INIT_AUTOMAKE($1).))dnl ) @@ -51,14 +51,14 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN(AM_SET_CURRENT_AUTOMAKE_VERSION, -AM_AUTOMAKE_VERSION(1.16.3)dnl +AM_AUTOMAKE_VERSION(1.16.5)dnl m4_ifndef(AC_AUTOCONF_VERSION, m4_copy(m4_PACKAGE_VERSION, AC_AUTOCONF_VERSION))dnl _AM_AUTOCONF_VERSION(m4_defn(AC_AUTOCONF_VERSION))) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2020 Free Software Foundation, Inc. +# Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -110,7 +110,7 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2020 Free Software Foundation, Inc. +# Copyright (C) 1997-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -141,7 +141,7 @@ Usually this means the macro was only invoked conditionally.) fi)) -# Copyright (C) 1999-2020 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -332,7 +332,7 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2020 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -400,7 +400,7 @@ # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -428,6 +428,10 @@ # release and drop the old call support. AC_DEFUN(AM_INIT_AUTOMAKE, AC_PREREQ(2.65)dnl +m4_ifdef(_$0_ALREADY_INIT, + m4_fatal($0 expanded multiple times +m4_defn(_$0_ALREADY_INIT)), + m4_define(_$0_ALREADY_INIT, m4_expansion_stack))dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow(^AM_A-Z+FLAGS$)dnl @@ -464,7 +468,7 @@ _AM_SET_OPTIONS($1)dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( - m4_ifdef(AC_PACKAGE_NAME, ok):m4_ifdef(AC_PACKAGE_VERSION, ok), + m4_ifset(AC_PACKAGE_NAME, ok):m4_ifset(AC_PACKAGE_VERSION, ok), ok:ok,, m4_fatal(AC_INIT should be called with package and version arguments))dnl AC_SUBST(PACKAGE, 'AC_PACKAGE_TARNAME')dnl @@ -516,6 +520,20 @@ m4_define(AC_PROG_OBJCXX, m4_defn(AC_PROG_OBJCXX)_AM_DEPENDENCIES(OBJCXX)))dnl ) +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi +AC_SUBST(CTAGS) +if test -z "$ETAGS"; then + ETAGS=etags +fi +AC_SUBST(ETAGS) +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi +AC_SUBST(CSCOPE) + AC_REQUIRE(AM_SILENT_RULES)dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This @@ -597,7 +615,7 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME("$_am_arg")`/stamp-h$_am_stamp_count) -# Copyright (C) 2001-2020 Free Software Foundation, Inc. +# Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -618,7 +636,7 @@ fi AC_SUBST(install_sh)) -# Copyright (C) 2003-2020 Free Software Foundation, Inc. +# Copyright (C) 2003-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -639,7 +657,7 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2020 Free Software Foundation, Inc. +# Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -682,7 +700,7 @@ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2020 Free Software Foundation, Inc. +# Copyright (C) 1997-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -716,7 +734,7 @@ # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2020 Free Software Foundation, Inc. +# Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -745,7 +763,7 @@ AC_DEFUN(_AM_IF_OPTION, m4_ifset(_AM_MANGLE_OPTION($1), $2, $3)) -# Copyright (C) 1999-2020 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -792,7 +810,7 @@ # For backward compatibility. AC_DEFUN_ONCE(AM_PROG_CC_C_O, AC_REQUIRE(AC_PROG_CC)) -# Copyright (C) 2001-2020 Free Software Foundation, Inc. +# Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -811,7 +829,7 @@ # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/build-aux/compile -> _service:tar_scm:libsigsegv-2.14.tar.gz/build-aux/compile
Changed
@@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2020 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # Written by Tom Tromey <tromey@cygnus.com>. # # This program is free software; you can redistribute it and/or modify
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/build-aux/config.guess -> _service:tar_scm:libsigsegv-2.14.tar.gz/build-aux/config.guess
Changed
@@ -2,11 +2,13 @@ # Attempt to guess a canonical system name. # Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2021-01-01' +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-11-30' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -32,7 +34,15 @@ # Please send patches to <config-patches@gnu.org>. -me=$(echo "$0" | sed -e 's,.*/,,') +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + +me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 OPTION @@ -84,6 +94,9 @@ exit 1 fi +# Just in case it came from the environment. +GUESS= + # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a @@ -102,8 +115,8 @@ # prevent multiple calls if $tmp is already set test "$tmp" && return 0 : "${TMPDIR=/tmp}" - # shellcheck disable=SC2039 - { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } || + # shellcheck disable=SC2039,SC3028 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } @@ -112,7 +125,7 @@ ,,) echo "int x;" > "$dummy.c" for driver in cc gcc c89 c99 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD="$driver" + CC_FOR_BUILD=$driver break fi done @@ -131,12 +144,12 @@ PATH=$PATH:/.attbin ; export PATH fi -UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown -UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown -UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown -UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "$UNAME_SYSTEM" in +case $UNAME_SYSTEM in Linux|GNU|GNU/*) LIBC=unknown @@ -157,7 +170,8 @@ #endif #endif EOF - eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')" + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" # Second heuristic to detect musl libc. if "$LIBC" = unknown && @@ -176,7 +190,7 @@ # Note: order is significant - the case branches are not exclusive. -case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -188,12 +202,11 @@ # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \ - "/sbin/$sysctl" 2>/dev/null || \ - "/usr/sbin/$sysctl" 2>/dev/null || \ - echo unknown)) - case "$UNAME_MACHINE_ARCH" in + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)` + case $UNAME_MACHINE_ARCH in aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; @@ -201,15 +214,15 @@ sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) - arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv0-9\).*$,\1,') - endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p') - machine="${arch}${endian}"-unknown + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv0-9\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown ;; - *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) os=netbsdelf ;; @@ -230,10 +243,10 @@ ;; esac # Determine ABI tags. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) expr='s/^earmv0-9/-eabi/;s/eb$//' - abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr") + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -241,76 +254,82 @@ # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "$UNAME_VERSION" in + case $UNAME_VERSION in Debian*) release='-gnu' ;; *) - release=$(echo "$UNAME_RELEASE" | sed -e 's/-_.*//' | cut -d. -f1,2) + release=`echo "$UNAME_RELEASE" | sed -e 's/-_.*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "$machine-${os}${release}${abi-}" - exit ;; + GUESS=$machine-${os}${release}${abi-} + ;; *:Bitrig:*:*) - UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//') - echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" - exit ;; + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//') - echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" - exit ;; + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; *:LibertyBSD:*:*) - UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//') - echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" - exit ;; + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; *:MidnightBSD:*:*) - echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/build-aux/config.sub -> _service:tar_scm:libsigsegv-2.14.tar.gz/build-aux/config.sub
Changed
@@ -2,11 +2,13 @@ # Configuration validation subroutine script. # Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2021-01-07' +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-12-25' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -50,7 +52,14 @@ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. -me=$(echo "$0" | sed -e 's,.*/,,') +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 OPTION CPU-MFR-OPSYS or ALIAS @@ -112,9 +121,11 @@ # Split fields of configuration type # shellcheck disable=SC2162 +saved_IFS=$IFS IFS="-" read field1 field2 field3 field4 <<EOF $1 EOF +IFS=$saved_IFS # Separate into logical components for further validation case $1 in @@ -163,6 +174,10 @@ basic_machine=$field1 basic_os=$field2 ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; # Manufacturers dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ | att* | 7300* | 3300* | delta* | motorola* | sun234* \ @@ -769,22 +784,22 @@ vendor=hp ;; i*86v32) - cpu=$(echo "$1" | sed -e 's/86.*/86/') + cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv32 ;; i*86v4*) - cpu=$(echo "$1" | sed -e 's/86.*/86/') + cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv4 ;; i*86v) - cpu=$(echo "$1" | sed -e 's/86.*/86/') + cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv ;; i*86sol2) - cpu=$(echo "$1" | sed -e 's/86.*/86/') + cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=solaris2 ;; @@ -917,14 +932,16 @@ ;; leon-*|leon3-9-*) cpu=sparc - vendor=$(echo "$basic_machine" | sed 's/-.*//') + vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; *-*) # shellcheck disable=SC2162 + saved_IFS=$IFS IFS="-" read cpu vendor <<EOF $basic_machine EOF + IFS=$saved_IFS ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and @@ -1003,6 +1020,11 @@ ;; # Here we normalize CPU types with a missing or matching vendor + armh-unknown | armh-alt) + cpu=armv7l + vendor=alt + basic_os=${basic_os:-linux-gnueabihf} + ;; dpx20-unknown | dpx20-bull) cpu=rs6000 vendor=bull @@ -1084,7 +1106,7 @@ cpu=mipsisa64sb1el ;; sh5elb-*) - cpu=$(echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/') + cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` ;; spur-*) cpu=spur @@ -1102,9 +1124,9 @@ cpu=x86_64 ;; xscale-* | xscaleebl-*) - cpu=$(echo "$cpu" | sed 's/^xscale/arm/') + cpu=`echo "$cpu" | sed 's/^xscale/arm/'` ;; - arm64-*) + arm64-* | aarch64le-*) cpu=aarch64 ;; @@ -1165,7 +1187,7 @@ | alphapca567 | alpha64pca567 \ | am33_2.0 \ | amdgcn \ - | arc | arceb \ + | arc | arceb | arc32 | arc64 \ | arm | armlbe | armelb | armv* \ | avr | avr32 \ | asmjs \ @@ -1204,9 +1226,13 @@ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r3 | mipsisa32r3el \ + | mipsisa32r5 | mipsisa32r5el \ | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r3 | mipsisa64r3el \ + | mipsisa64r5 | mipsisa64r5el \ | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ @@ -1283,35 +1309,37 @@ if test x$basic_os != x then -# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just # set os. case $basic_os in gnu/linux*) kernel=linux - os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|') + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` ;; os2-emx) kernel=os2 - os=$(echo $basic_os | sed -e 's|os2-emx|emx|') + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` ;; nto-qnx*) kernel=nto - os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|') + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` ;; *-*) # shellcheck disable=SC2162 + saved_IFS=$IFS IFS="-" read kernel os <<EOF $basic_os EOF + IFS=$saved_IFS ;; # Default OS when just kernel was specified nto*) kernel=nto - os=$(echo $basic_os | sed -e 's|nto|qnx|') + os=`echo "$basic_os" | sed -e 's|nto|qnx|'` ;; linux*) kernel=linux - os=$(echo $basic_os | sed -e 's|linux|gnu|') + os=`echo "$basic_os" | sed -e 's|linux|gnu|'` ;; *) kernel=
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/build-aux/ltmain.sh -> _service:tar_scm:libsigsegv-2.14.tar.gz/build-aux/ltmain.sh
Changed
@@ -7019,7 +7019,7 @@ # These systems don't actually have a C library (as such) test X-lc = "X$arg" && continue ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;; @@ -7039,7 +7039,7 @@ esac elif test X-lc_r = "X$arg"; then case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) # Do not include libc_r directly, use -pthread flag. continue ;; @@ -8805,13 +8805,13 @@ # case $version_type in # correct linux to gnu/linux during the next big refactor - darwin|freebsd-elf|linux|osf|windows|none) + darwin|freebsd-elf|midnightbsd-elf|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_revision ;; - freebsd-aout|qnx|sunos) + freebsd-aout|midnightbsd-aout|qnx|sunos) current=$number_major revision=$number_minor age=0 @@ -8891,12 +8891,12 @@ esac ;; - freebsd-aout) + freebsd-aout | midnightbsd-aout) major=.$current versuffix=.$current.$revision ;; - freebsd-elf) + freebsd-elf | midnightbsd-elf | midnightbsd) func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision @@ -9122,7 +9122,7 @@ *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*)
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/build-aux/missing -> _service:tar_scm:libsigsegv-2.14.tar.gz/build-aux/missing
Changed
@@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/build-aux/test-driver -> _service:tar_scm:libsigsegv-2.14.tar.gz/build-aux/test-driver
Changed
@@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 2011-2020 Free Software Foundation, Inc. +# Copyright (C) 2011-2021 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -105,8 +105,11 @@ trap "st=141; $do_exit" 13 trap "st=143; $do_exit" 15 -# Test script is run here. -"$@" >$log_file 2>&1 +# Test script is run here. We create the file first, then append to it, +# to ameliorate tests themselves also writing to the log file. Our tests +# don't, but others can (automake bug#35762). +: >"$log_file" +"$@" >>"$log_file" 2>&1 estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then @@ -128,7 +131,7 @@ # know whether the test passed or failed simply by looking at the '.log' # file, without the need of also peaking into the corresponding '.trs' # file (automake bug#11814). -echo "$res $test_name (exit status: $estatus)" >>$log_file +echo "$res $test_name (exit status: $estatus)" >>"$log_file" # Report outcome to console. echo "${col}${res}${std}: $test_name"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/config.h.in -> _service:tar_scm:libsigsegv-2.14.tar.gz/config.h.in
Changed
@@ -37,9 +37,6 @@ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H -/* Define to 1 if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H - /* Define to 1 if you have the `mincore' function. */ #undef HAVE_MINCORE @@ -71,6 +68,9 @@ /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H +/* Define to 1 if you have the <stdio.h> header file. */ +#undef HAVE_STDIO_H + /* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H @@ -141,7 +141,9 @@ lower addresses STACK_DIRECTION = 0 => spaghetti stack. */ #undef STACK_DIRECTION -/* Define to 1 if you have the ANSI C header files. */ +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Version number of package */
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/configure -> _service:tar_scm:libsigsegv-2.14.tar.gz/configure
Changed
@@ -1,9 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libsigsegv 2.13. +# Generated by GNU Autoconf 2.71 for libsigsegv 2.14. # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. # # # This configure script is free software; the Free Software Foundation @@ -14,14 +15,16 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -31,46 +34,46 @@ fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi +if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -79,13 +82,6 @@ fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -94,8 +90,12 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -107,30 +107,10 @@ as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. @@ -152,20 +132,22 @@ exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + as_bourne_compatible="as_nop=: +if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST -else +else \$as_nop case \`(set -o) 2>/dev/null\` in #(
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/configure.ac -> _service:tar_scm:libsigsegv-2.14.tar.gz/configure.ac
Changed
@@ -1,12 +1,12 @@ dnl Autoconf configuration for libsigsegv. dnl Process this file with autoconf to produce a configure script. dnl -dnl Copyright (C) 2002-2021 Bruno Haible <bruno@clisp.org> +dnl Copyright (C) 2002-2022 Bruno Haible <bruno@clisp.org> dnl -dnl This program is free software; you can redistribute it and/or modify +dnl This program is free software: you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2, or (at your option) -dnl any later version. +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. dnl dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,11 +14,10 @@ dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License -dnl along with this program; if not, write to the Free Software Foundation, -dnl Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +dnl along with this program. If not, see <https://www.gnu.org/licenses/>. AC_PREREQ(2.64) -AC_INIT(libsigsegv, 2.13) +AC_INIT(libsigsegv, 2.14) AC_CONFIG_SRCDIR(src/sigsegv.h.in) AC_CONFIG_AUX_DIR(build-aux) AC_CONFIG_HEADERS(config.h) @@ -99,7 +98,8 @@ dnl List of signals that are sent when an invalid virtual memory address dnl is accessed, or when the stack overflows. case "$host_os" in - sunos4* | freebsd* | dragonfly* | openbsd* | netbsd* | kfreebsd* | knetbsd*) + sunos4* | freebsd* | dragonfly* | openbsd* | netbsd* | midnightbsd* | \ + kfreebsd* | knetbsd*) CFG_SIGNALS=signals-bsd.h ;; hpux*) CFG_SIGNALS=signals-hpux.h ;; @@ -132,11 +132,19 @@ # How to write a SIGSEGV handler with access to the fault address. -# On MacOS X 10.2 or newer, we don't need these tests, because we'll end up +# Cygwin >= 2.1 supports sigaltstack(). For older versions of Cygwin, +# a Windows API based handler is needed, with complex code to make EFAULT work. +# Use the simpler approach by default. +AC_ARG_ENABLE(support-old-cygwin, + AS_HELP_STRING(--enable-support-old-cygwin, + enable support of Cygwin older than 2.1 (2015))) + +# On MacOS X 10.2 to 10.12, we don't need these tests, because we'll end up # using handler-macos.c anyway. If we were to perform the tests, 5 Crash Report # dialog windows would pop up. +# Starting with MacOS X 10.13 (at least), handler-unix.c works fine too. case "$host_os" in - macos* | darwin6-9* | darwin1-90-9*) ;; + macos* | darwin6-9* | darwin10-6*) ;; *) dnl FIXME: Put in some more known values into the third argument. @@ -368,6 +376,16 @@ ;; esac ;; + darwin*) + case "$host_cpu" in + aarch64*) CFG_FAULT=fault-macos-arm64.h ;; + i?86 | x86_64) CFG_FAULT=fault-macos-i386.h ;; + powerpc* | rs6000) CFG_FAULT=fault-macos-powerpc.h ;; + *) CFG_FAULT=fault-macos.h ;; + esac + FAULT_CONTEXT='ucontext_t' + FAULT_CONTEXT_INCLUDE='#include <sys/ucontext.h>' + ;; haiku*) case "$host_cpu" in i?86 | x86_64) CFG_FAULT=fault-haiku-i386.h ;; @@ -438,6 +456,9 @@ ia64) CFG_FAULT=fault-linux-ia64.h ;; + loongarch64) + CFG_FAULT=fault-linux-loongarch.h + ;; m68*) CFG_FAULT=fault-linux-m68k.h ;; @@ -467,6 +488,16 @@ ;; esac ;; + cygwin*) + case "$host_cpu" in + i?86* | x86_64*) + CFG_FAULT=fault-cygwin-i386.h + ;; + *) + CFG_FAULT=fault-cygwin.h + ;; + esac + ;; *) CFG_FAULT=fault-posix-ucontext.h ;; @@ -574,16 +605,18 @@ CFG_FAULT=fault-win32.h # nonexistent, just a dummy ;; cygwin*) - FAULT_CONTEXT='struct _CONTEXT' - # CONTEXT is defined in <windows.h>, but cygwin programs should not - # normally inspect the contents of CONTEXT, and the outright inclusion - # of <windows.h> pollutes the namespace. - FAULT_CONTEXT_INCLUDE='struct _CONTEXT;' - # Cygwin 1.7 uses fault-posix.h. Cygwin 1.5.x needs a hacky workaround. - if test -z "$CFG_FAULT"; then - CFG_FAULT=fault-cygwin-old.h - AC_DEFINE(OLD_CYGWIN_WORKAROUND, 1, - Define to 1 on Cygwin versions older than 1.7.) + if test "$enable_support_old_cygwin" = yes; then + FAULT_CONTEXT='struct _CONTEXT' + # CONTEXT is defined in <windows.h>, but cygwin programs should not + # normally inspect the contents of CONTEXT, and the outright inclusion + # of <windows.h> pollutes the namespace. + FAULT_CONTEXT_INCLUDE='struct _CONTEXT;' + # Cygwin 1.7 uses fault-posix.h. Cygwin 1.5.x needs a hacky workaround. + if test -z "$CFG_FAULT"; then + CFG_FAULT=fault-cygwin-old.h + AC_DEFINE(OLD_CYGWIN_WORKAROUND, 1, + Define to 1 on Cygwin versions older than 1.7.) + fi fi ;; esac @@ -640,7 +673,7 @@ ;; macos* | darwin*) case "$host_cpu" in - i?86 | x86_64) CFG_FAULT=fault-macos-i386.h ;; + i?86 | x86_64) CFG_FAULT=fault-macos-i386-old.h ;; esac FAULT_CONTEXT='struct sigcontext' ;; @@ -709,7 +742,11 @@ dnl Determination of the stack's virtual memory area. AC_CACHE_CHECK(for prmap_t in sys/procfs.h, sv_cv_procfsvma, AC_LINK_IFELSE( - AC_LANG_PROGRAM(#include <sys/procfs.h>, prmap_t x;), + AC_LANG_PROGRAM( + /* Persuade Solaris OpenIndiana <signal.h> to declare 'struct sigaltstack'. */ + #define __EXTENSIONS__ 1 + #include <sys/procfs.h> + , prmap_t x;), sv_cv_procfsvma=yes, sv_cv_procfsvma=no) ) AC_CHECK_FUNCS(mquery mincore) @@ -731,6 +768,10 @@ freebsd* | kfreebsd*-gnu* | dragonfly*) CFG_STACKVMA=stackvma-freebsd.c ;; netbsd*) CFG_STACKVMA=stackvma-netbsd.c ;; + cygwin*) if test "$enable_support_old_cygwin" != yes; then + CFG_STACKVMA=stackvma-cygwin.c + fi + ;; beos* | haiku*) CFG_STACKVMA=stackvma-beos.c ;; macos* | darwin*) CFG_STACKVMA=stackvma-mach.c ;; dnl About gnu*): GNU/Hurd provides a /proc/self/maps file that is similar @@ -745,7 +786,7 @@ CFG_STACKVMA=stackvma-mquery.c fi if test -z "$CFG_STACKVMA" && test $ac_cv_func_mincore = yes; then - CFG_STACKVMA=stackvma-mincore.c + CFG_STACKVMA=stackvma-aix.c fi if test -n "$CFG_STACKVMA"; then AC_DEFINE(HAVE_STACKVMA, 1, @@ -1003,18 +1044,21 @@ dnl HAVE_SIGSEGV_RECOVERY, HAVE_STACK_OVERFLOW_RECOVERY. case "$host_os" in - mingw* | cygwin*) CFG_HANDLER=handler-win32.c ;; - *) - if test -z "$CFG_HANDLER"; then - if test $sv_cv_have_sigsegv_recovery = no \ - && test $sv_cv_have_stack_overflow_recovery = no; then - CFG_HANDLER=handler-none.c - else - CFG_HANDLER=handler-unix.c - fi + mingw*) CFG_HANDLER=handler-win32.c ;; + cygwin*) + if test "$enable_support_old_cygwin" = yes; then + CFG_HANDLER=handler-win32.c fi ;; esac +if test -z "$CFG_HANDLER"; then + if test $sv_cv_have_sigsegv_recovery = no \
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/m4/libtool.m4 -> _service:tar_scm:libsigsegv-2.14.tar.gz/m4/libtool.m4
Changed
@@ -1714,7 +1714,7 @@ lt_cv_sys_max_cmd_len=8192; ;; - bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` @@ -2655,7 +2655,7 @@ shlibpath_var=LD_LIBRARY_PATH ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then @@ -3488,7 +3488,7 @@ lt_cv_deplibs_check_method=pass_all ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) @@ -4317,7 +4317,7 @@ ;; esac ;; - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) @@ -5650,7 +5650,7 @@ ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes @@ -6760,7 +6760,7 @@ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/m4/relocatable-lib.m4 -> _service:tar_scm:libsigsegv-2.14.tar.gz/m4/relocatable-lib.m4
Changed
@@ -1,5 +1,5 @@ # relocatable-lib.m4 serial 6 -dnl Copyright (C) 2003, 2005-2007, 2009-2021 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2005-2007, 2009-2022 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved.
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/m4/sigaltstack-longjmp.m4 -> _service:tar_scm:libsigsegv-2.14.tar.gz/m4/sigaltstack-longjmp.m4
Changed
@@ -1,5 +1,5 @@ -# sigaltstack-longjmp.m4 serial 6 (libsigsegv-2.7) -dnl Copyright (C) 2002-2003, 2006, 2008 Bruno Haible <bruno@clisp.org> +# sigaltstack-longjmp.m4 serial 7 (libsigsegv-2.14) +dnl Copyright (C) 2002-2003, 2006, 2008, 2021 Bruno Haible <bruno@clisp.org> dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program @@ -27,6 +27,16 @@ # include <sys/time.h> # include <sys/resource.h> #endif +/* In glibc >= 2.34, when _GNU_SOURCE is defined, SIGSTKSZ is no longer a + compile-time constant. But we need a simple constant here. */ +#if __GLIBC__ >= 2 +# undef SIGSTKSZ +# if defined __ia64__ +# define SIGSTKSZ 262144 +# else +# define SIGSTKSZ 16384 +# endif +#endif #ifndef SIGSTKSZ # define SIGSTKSZ 16384 #endif
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/m4/sigaltstack-siglongjmp.m4 -> _service:tar_scm:libsigsegv-2.14.tar.gz/m4/sigaltstack-siglongjmp.m4
Changed
@@ -1,5 +1,5 @@ -# sigaltstack-siglongjmp.m4 serial 6 (libsigsegv-2.7) -dnl Copyright (C) 2002-2003, 2006, 2008 Bruno Haible <bruno@clisp.org> +# sigaltstack-siglongjmp.m4 serial 7 (libsigsegv-2.14) +dnl Copyright (C) 2002-2003, 2006, 2008, 2021 Bruno Haible <bruno@clisp.org> dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program @@ -27,6 +27,16 @@ # include <sys/time.h> # include <sys/resource.h> #endif +/* In glibc >= 2.34, when _GNU_SOURCE is defined, SIGSTKSZ is no longer a + compile-time constant. But we need a simple constant here. */ +#if __GLIBC__ >= 2 +# undef SIGSTKSZ +# if defined __ia64__ +# define SIGSTKSZ 262144 +# else +# define SIGSTKSZ 16384 +# endif +#endif #ifndef SIGSTKSZ # define SIGSTKSZ 16384 #endif
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/m4/sigaltstack.m4 -> _service:tar_scm:libsigsegv-2.14.tar.gz/m4/sigaltstack.m4
Changed
@@ -1,18 +1,19 @@ -# sigaltstack.m4 serial 11 (libsigsegv-2.9) -dnl Copyright (C) 2002-2006, 2008-2010 Bruno Haible <bruno@clisp.org> -dnl Copyright (C) 2008 Eric Blake <ebb9@byu.net> +# sigaltstack.m4 serial 15 +dnl Copyright (C) 2002-2022 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. +dnl Written by Bruno Haible and Eric Blake. + AC_DEFUN(SV_SIGALTSTACK, AC_REQUIRE(AC_PROG_CC) AC_REQUIRE(AC_CANONICAL_HOST) - AC_CHECK_FUNCS(sigaltstack) + AC_CHECK_FUNCS_ONCE(sigaltstack setrlimit) if test "$ac_cv_func_sigaltstack" = yes; then AC_CHECK_TYPE(stack_t, , @@ -53,9 +54,6 @@ # include <sys/time.h> # include <sys/resource.h> #endif -#ifndef SIGSTKSZ -# define SIGSTKSZ 16384 -#endif void stackoverflow_handler (int sig) { /* If we get here, the stack overflow was caught. */ @@ -72,7 +70,7 @@ int sum = 0; return *recurse_1 (n, &sum); } -char mystack2 * SIGSTKSZ; +char mystack2 * (1 << 24); int main () { stack_t altstack; @@ -87,8 +85,12 @@ #endif /* Install the alternate stack. Use the midpoint of mystack, to guard against a buggy interpretation of ss_sp on IRIX. */ - altstack.ss_sp = mystack + SIGSTKSZ; - altstack.ss_size = SIGSTKSZ; +#ifdef SIGSTKSZ + if (sizeof mystack / 2 < SIGSTKSZ) + exit (3); +#endif + altstack.ss_sp = mystack + sizeof mystack / 2; + altstack.ss_size = sizeof mystack / 2; altstack.ss_flags = 0; /* no SS_DISABLE */ if (sigaltstack (&altstack, NULL) < 0) exit (1); @@ -138,9 +140,6 @@ #if HAVE_SYS_SIGNAL_H # include <sys/signal.h> #endif -#ifndef SIGSTKSZ -# define SIGSTKSZ 16384 -#endif volatile char *stack_lower_bound; volatile char *stack_upper_bound; static void check_stack_location (volatile char *addr) @@ -155,14 +154,14 @@ char dummy; check_stack_location (&dummy); } +char mystack2 * (1 << 24); int main () { - char mystack2 * SIGSTKSZ; stack_t altstack; struct sigaction action; /* Install the alternate stack. */ - altstack.ss_sp = mystack + SIGSTKSZ; - altstack.ss_size = SIGSTKSZ; + altstack.ss_sp = mystack + sizeof mystack / 2; + altstack.ss_size = sizeof mystack / 2; stack_lower_bound = (char *) altstack.ss_sp; stack_upper_bound = (char *) altstack.ss_sp + altstack.ss_size - 1; altstack.ss_flags = 0; /* no SS_DISABLE */
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/m4/stack-direction.m4 -> _service:tar_scm:libsigsegv-2.14.tar.gz/m4/stack-direction.m4
Changed
@@ -1,15 +1,17 @@ -# stack-direction.m4 serial 5 (libsigsegv-2.13) -dnl Copyright (C) 2002-2009, 2013-2014, 2021 Bruno Haible <bruno@clisp.org> -dnl Copyright (C) 2002-2021 Free Software Foundation, Inc. +# stack-direction.m4 serial 10 +dnl Copyright (C) 2002-2022 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. +dnl Written by Bruno Haible. + # Determine the stack direction. Define the C macro STACK_DIRECTION. AC_DEFUN(SV_STACK_DIRECTION, + AC_REQUIRE(AC_CANONICAL_HOST) AC_CACHE_CHECK(for stack direction, sv_cv_stack_direction_msg, case "$host_cpu" in dnl See the #define STACK_GROWS_DOWNWARD in gcc-3.1/gcc/config/*/*.h. @@ -22,36 +24,56 @@ bfin | \ c1 | c2 | c32 | c34 | c38 | \ clipper | \ + cr16 | \ cris | \ + csky | \ d30v | \ + epiphany | \ elxsi | \ fr30 | \ + frv | \ + ft32 | \ h8300 | \ i?86 | x86_64 | \ i860 | \ ia64 | \ + iq2000 | \ + lm32 | \ + loongarch* | \ + m32c | \ m32r | \ m68* | \ m88k | \ mcore | \ - microblaze | \ + microblaze* | \ mips* | \ mmix | \ mn10200 | \ mn10300 | \ - nios2 | \ + moxie | \ + msp430 | \ nds32* | \ + nios2 | nios2eb | nios2el | \ ns32k | \ + nvptx | \ + or1k | \ pdp11 | \ pj* | \ powerpc* | rs6000 | \ + pru | \ riscv* | \ + rl78 | \ romp | \ + rx | \ s390* | \ sh* | \ sparc* | \ + tic6x | \ + tilegx | \ + tilepro | \ v850 | \ vax | \ + visium | \ xtensa) sv_cv_stack_direction=-1 ;; c4x | \ @@ -76,7 +98,7 @@ return dir + dummy; } int -main (int argc, char *argv) +main (int argc, char *argv) { printf ("%d\n", find_stack_direction (NULL, argc + 20)); return 0;
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/Makefile.am -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/Makefile.am
Changed
@@ -1,10 +1,10 @@ ## Makefile for libsigsegv/src. -## Copyright (C) 2002-2006, 2008-2011, 2016-2018, 2021 Bruno Haible <bruno@clisp.org> +## Copyright (C) 2002-2006, 2008-2011, 2016-2018, 2021-2022 Bruno Haible <bruno@clisp.org> ## -## This program is free software; you can redistribute it and/or modify +## This program is free software: you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2, or (at your option) -## any later version. +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,9 +12,7 @@ ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -## USA. +## along with this program. If not, see <https://www.gnu.org/licenses/>. ## Process this file with automake to produce Makefile.in. @@ -27,7 +25,7 @@ noinst_HEADERS = \ fault.h fault-aix3.h fault-aix3-powerpc.h fault-aix5.h fault-aix5-powerpc.h \ fault-beos.h fault-beos-i386.h \ - fault-cygwin-old.h \ + fault-cygwin.h fault-cygwin-i386.h fault-cygwin-old.h \ fault-bsd.h \ fault-freebsd-arm.h \ fault-freebsd-i386.h \ @@ -41,6 +39,7 @@ fault-linux-hppa.h fault-linux-hppa-old.h \ fault-linux-i386.h fault-linux-i386-old.h fault-linux-i386-oldold.h \ fault-linux-ia64.h fault-linux-ia64-old.h \ + fault-linux-loongarch.h \ fault-linux-m68k.h fault-linux-m68k-old.h fault-linux-m68k-old.c \ fault-linux-mips.h fault-linux-mips-old.h \ fault-linux-nds32.h \ @@ -50,7 +49,8 @@ fault-linux-sh.h fault-linux-sh-old.h \ fault-linux-sparc.h fault-linux-sparc-old.h \ fault-linux-x86_64-old.h \ - fault-macos-i386.h \ + fault-macos.h fault-macos-arm64.h fault-macos-i386.h fault-macos-powerpc.h \ + fault-macos-i386-old.h \ fault-macosdarwin5-powerpc.h fault-macosdarwin5-powerpc.c \ fault-macosdarwin7-powerpc.h fault-macosdarwin7-powerpc.c \ fault-netbsd.h fault-netbsd-alpha.h fault-netbsd-alpha.c \ @@ -70,10 +70,10 @@ EXTRA_DIST = \ handler-none.c handler-unix.c handler-macos.c handler-win32.c \ stackvma-none.c stackvma-simple.c stackvma-linux.c stackvma-freebsd.c \ - stackvma-netbsd.c stackvma-procfs.c stackvma-beos.c stackvma-mach.c \ - stackvma-mquery.c stackvma-mincore.c stackvma-rofile.c stackvma-vma-iter.c \ - leave-none.c leave-nop.c leave-sigaltstack.c leave-setcontext.c \ - sigsegv.h.msvc + stackvma-netbsd.c stackvma-aix.c stackvma-procfs.c stackvma-cygwin.c \ + stackvma-beos.c stackvma-mach.c stackvma-mquery.c \ + stackvma-mincore.c stackvma-rofile.c stackvma-vma-iter.c \ + leave-none.c leave-nop.c leave-sigaltstack.c leave-setcontext.c AM_CPPFLAGS = -I. -I$(srcdir) DEFS = @DEFS@ @@ -87,7 +87,7 @@ # Before making a release, change this according to the libtool documentation, # section "Library interface versions". -LIBSIGSEGV_VERSION_INFO = 2:6:0 +LIBSIGSEGV_VERSION_INFO = 2:7:0 # Dependencies. handler.$(OBJEXT) : ../config.h sigsegv.h @CFG_HANDLER@ $(noinst_HEADERS) @@ -110,14 +110,3 @@ DISTCLEANFILES = sigsegv.h - - -# Rules for "make dist". - -sigsegv.h.msvc : sigsegv.h.in - sed -e 's/@''FAULT_CONTEXT_INCLUDE''@/#include <windows.h>/' \ - -e 's/@''FAULT_CONTEXT''@/CONTEXT/' \ - -e 's/@''HAVE_SIGSEGV_RECOVERY''@/1/' \ - -e 's/@''HAVE_STACK_OVERFLOW_RECOVERY''@/1/' \ - < $(srcdir)/sigsegv.h.in > $@ -
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/Makefile.in -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/Makefile.in
Changed
@@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. +# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2020 Free Software Foundation, Inc. +# Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -208,8 +208,6 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/sigsegv.h.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ @@ -228,6 +226,8 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -238,6 +238,7 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FAULT_CONTEXT = @FAULT_CONTEXT@ FGREP = @FGREP@ @@ -327,6 +328,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -341,7 +343,7 @@ noinst_HEADERS = \ fault.h fault-aix3.h fault-aix3-powerpc.h fault-aix5.h fault-aix5-powerpc.h \ fault-beos.h fault-beos-i386.h \ - fault-cygwin-old.h \ + fault-cygwin.h fault-cygwin-i386.h fault-cygwin-old.h \ fault-bsd.h \ fault-freebsd-arm.h \ fault-freebsd-i386.h \ @@ -355,6 +357,7 @@ fault-linux-hppa.h fault-linux-hppa-old.h \ fault-linux-i386.h fault-linux-i386-old.h fault-linux-i386-oldold.h \ fault-linux-ia64.h fault-linux-ia64-old.h \ + fault-linux-loongarch.h \ fault-linux-m68k.h fault-linux-m68k-old.h fault-linux-m68k-old.c \ fault-linux-mips.h fault-linux-mips-old.h \ fault-linux-nds32.h \ @@ -364,7 +367,8 @@ fault-linux-sh.h fault-linux-sh-old.h \ fault-linux-sparc.h fault-linux-sparc-old.h \ fault-linux-x86_64-old.h \ - fault-macos-i386.h \ + fault-macos.h fault-macos-arm64.h fault-macos-i386.h fault-macos-powerpc.h \ + fault-macos-i386-old.h \ fault-macosdarwin5-powerpc.h fault-macosdarwin5-powerpc.c \ fault-macosdarwin7-powerpc.h fault-macosdarwin7-powerpc.c \ fault-netbsd.h fault-netbsd-alpha.h fault-netbsd-alpha.c \ @@ -384,10 +388,10 @@ EXTRA_DIST = \ handler-none.c handler-unix.c handler-macos.c handler-win32.c \ stackvma-none.c stackvma-simple.c stackvma-linux.c stackvma-freebsd.c \ - stackvma-netbsd.c stackvma-procfs.c stackvma-beos.c stackvma-mach.c \ - stackvma-mquery.c stackvma-mincore.c stackvma-rofile.c stackvma-vma-iter.c \ - leave-none.c leave-nop.c leave-sigaltstack.c leave-setcontext.c \ - sigsegv.h.msvc + stackvma-netbsd.c stackvma-aix.c stackvma-procfs.c stackvma-cygwin.c \ + stackvma-beos.c stackvma-mach.c stackvma-mquery.c \ + stackvma-mincore.c stackvma-rofile.c stackvma-vma-iter.c \ + leave-none.c leave-nop.c leave-sigaltstack.c leave-setcontext.c AM_CPPFLAGS = -I. -I$(srcdir) libsigsegv_la_SOURCES = handler.c stackvma.c leave.c dispatcher.c version.c @@ -399,7 +403,7 @@ # Before making a release, change this according to the libtool documentation, # section "Library interface versions". -LIBSIGSEGV_VERSION_INFO = 2:6:0 +LIBSIGSEGV_VERSION_INFO = 2:7:0 DISTCLEANFILES = sigsegv.h all: all-am @@ -547,7 +551,6 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am @@ -727,15 +730,6 @@ uninstall-local: $(RM) $(DESTDIR)$(includedir)/sigsegv.h -# Rules for "make dist". - -sigsegv.h.msvc : sigsegv.h.in - sed -e 's/@''FAULT_CONTEXT_INCLUDE''@/#include <windows.h>/' \ - -e 's/@''FAULT_CONTEXT''@/CONTEXT/' \ - -e 's/@''HAVE_SIGSEGV_RECOVERY''@/1/' \ - -e 's/@''HAVE_STACK_OVERFLOW_RECOVERY''@/1/' \ - < $(srcdir)/sigsegv.h.in > $@ - # Tell versions 3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT:
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/dispatcher.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/dispatcher.c
Changed
@@ -1,10 +1,10 @@ /* Dispatch signal to right virtual memory area. Copyright (C) 1993-1999, 2002-2003, 2016 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "sigsegv.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-aix3-powerpc.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-aix3-powerpc.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. AIX3/PowerPC and AIX4/PowerPC version. Copyright (C) 2002-2005 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-aix3.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-aix3.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-aix3.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. AIX 3 and AIX 4 version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, int code, struct sigcontext *scp #define SIGSEGV_FAULT_ADDRESS scp->sc_jmpbuf.jmp_context.o_vaddr
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-aix5-powerpc.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-aix5-powerpc.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. AIX5/PowerPC version. Copyright (C) 2005 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-aix5.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-aix5.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-aix5.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. AIX 5 version. Copyright (C) 2005, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,7 +12,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-beos-i386.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-beos-i386.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. BeOS/i386 version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <OS.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-beos.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-beos.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. BeOS version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, void *userdata, struct vregs *vrp #define SIGSEGV_FAULT_CONTEXT vrp
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-bsd.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-bsd.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. BSD Unix version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, int code, void *scp, void *addr #define SIGSEGV_FAULT_ADDRESS addr
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-cygwin-i386.h
Added
@@ -0,0 +1,27 @@ +/* Fault handler information. Cygwin/i386 and Cygwin/x86_64 version. + Copyright (C) 2021 Bruno Haible <bruno@clisp.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#include "fault-cygwin.h" + +/* See the definition of 'ucontext_t' in <sys/ucontext.h> and + of 'struct __mcontext' in <cygwin/signal.h>. */ +#if defined __x86_64__ +/* 64 bit registers */ +# define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.rsp +#elif defined __i386__ +/* 32 bit registers */ +# define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.esp +#endif
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-cygwin-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-cygwin-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Cygwin 1.5.x version. Copyright (C) 2009 Eric Blake <ebb9@byu.net> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Cygwin 1.5.x sets siginfo_t.si_addr to the instruction that faulted, not the address that the instruction tried to access. This is fixed in
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-cygwin.h
Added
@@ -0,0 +1,17 @@ +/* Fault handler information. Cygwin version. + Copyright (C) 2021 Bruno Haible <bruno@clisp.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-freebsd-arm.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-freebsd-arm.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. FreeBSD/ARM version when it supports POSIX. Copyright (C) 2020 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, siginfo_t *sip, void *ucp #define SIGSEGV_FAULT_ADDRESS sip->si_addr
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-freebsd-i386.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-freebsd-i386.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. FreeBSD/i386 version. Copyright (C) 2002, 2007, 2020 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* On FreeBSD 12, both of these approaches work. On FreeBSD derivatives, the first one has more chances to work. */
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-haiku-i386.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-haiku-i386.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Haiku/i386 version. Copyright (C) 2017 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-haiku.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-haiku.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-haiku.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Haiku version. Copyright (C) 2017 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, siginfo_t *sip, void *ucp #define SIGSEGV_FAULT_ADDRESS sip->si_addr
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-hpux-hppa.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-hpux-hppa.h
Changed
@@ -2,10 +2,10 @@ Copyright (C) 2002 Paolo Bonzini <bonzini@gnu.org> Copyright (C) 2002-2003, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define USE_64BIT_REGS(mc) \ (((mc).ss_flags & SS_WIDEREGS) && ((mc).ss_flags & SS_NARROWISINVALID))
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-hpux.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-hpux.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. HP-UX version. Copyright (C) 2002 Paolo Bonzini <bonzini@gnu.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, int code, struct sigcontext *scp #define SIGSEGV_FAULT_CONTEXT scp
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-hurd-i386.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-hurd-i386.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Hurd/i386 version. Copyright (C) 2017 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-hurd.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-hurd.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-hurd.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Hurd version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, int code, struct sigcontext *scp #define SIGSEGV_FAULT_ADDRESS (unsigned long) code
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-irix-mips.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-irix-mips.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. IRIX MIPS version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-irix.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-irix.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-irix.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. IRIX version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, int code, struct sigcontext *scp #define SIGSEGV_FAULT_ADDRESS (unsigned long) scp->sc_badvaddr
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-alpha-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-alpha-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/Alpha version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <asm/sigcontext.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-alpha.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-alpha.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/Alpha version when it supports POSIX. Copyright (C) 2002, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-arm-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-arm-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/ARM version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* This file supports only kernels >= 2.2.14 or >= 2.3.35. Support for older kernels would be more complicated, see file
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-arm.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-arm.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/ARM version when it supports POSIX. Copyright (C) 2002, 2009, 2017 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-cris-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-cris-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/cris version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <asm/sigcontext.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-cris.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-cris.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/cris version when it supports POSIX. Copyright (C) 2002, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-hppa-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-hppa-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/HPPA version. Copyright (C) 2002-2003, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <ucontext.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-hppa.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-hppa.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/HPPA version when it supports POSIX. Copyright (C) 2002-2003, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-i386-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-i386-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/i386 version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, struct sigcontext sc #define SIGSEGV_FAULT_ADDRESS sc.cr2
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-i386-oldold.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-i386-oldold.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/i386 version, supports old kernels. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Don't include <asm/sigcontext.h> here, because some older kernels don't have it or don't define `struct sigcontext' in it. */
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-i386.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-i386.h
Changed
@@ -2,10 +2,10 @@ supports POSIX. Copyright (C) 2002, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-ia64-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-ia64-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/IA-64 version. Copyright (C) 2002-2003 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, siginfo_t *sip, struct sigcontext *scp #define SIGSEGV_FAULT_ADDRESS sip->si_addr
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-ia64.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-ia64.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/IA-64 version. Copyright (C) 2002-2003, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-loongarch.h
Added
@@ -0,0 +1,24 @@ +/* Fault handler information. Linux/LoongArch version when it supports POSIX. + Copyright (C) 2022 Bruno Haible <bruno@clisp.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#include "fault-posix-ucontext.h" + +/* See <sys/ucontext.h>. + Note that the 'mcontext_t' defined in <sys/ucontext.h> + and the 'struct sigcontext' defined in <bits/sigcontext.h> + (see also <asm/sigcontext.h>) are effectively the same. */ + +#define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.__gregs3
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-m68k-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-m68k-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/m68k version. Copyright (C) 2002, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <asm/sigcontext.h> #include "fault-linux-m68k-old.c"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-m68k.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-m68k.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/m68k version when it supports POSIX. Copyright (C) 2002, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-mips-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-mips-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/MIPS version Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <asm/sigcontext.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-mips.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-mips.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/MIPS version when it supports POSIX. Copyright (C) 2002, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-nds32.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-nds32.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Andes NDS32 32-bit version. * Copyright (C) 2018 Nylon Chen <nylon7@andestech.com> * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-powerpc-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-powerpc-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/PowerPC version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <asm/sigcontext.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-powerpc.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-powerpc.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/PowerPC version when it supports POSIX. Copyright (C) 2002, 2009, 2017 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-riscv64.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-riscv64.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/RISC-V 64-bit version. Copyright (C) 2018 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-s390-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-s390-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/S390 version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <asm/sigcontext.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-s390.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-s390.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/S390 version when it supports POSIX. Copyright (C) 2002, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-sh-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-sh-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/SH version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <asm/sigcontext.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-sh.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-sh.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/SH version when it supports POSIX. Copyright (C) 2002, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-sparc-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-sparc-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/SPARC version. Copyright (C) 2002, 2009, 2017 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <asm/sigcontext.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-sparc.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-sparc.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/SPARC version when it supports POSIX. - Copyright (C) 2009, 2017 Bruno Haible <bruno@clisp.org> + Copyright (C) 2009, 2017, 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h" @@ -42,9 +41,9 @@ #endif /* The sip->si_addr field is correct for a normal fault, but unusable in case - of a stack overflow. What I observe (when running tests/stackoverflow1, with - a printf right at the beginning of sigsegv_handler) is that sip->si_addr is - near 0: + of a stack overflow. What I observe (when running + tests/test-catch-stackoverflow1, with a printf right at the beginning of + sigsegv_handler) is that sip->si_addr is near 0: - in 64-bit mode: sip->si_addr = 0x000000000000030F, and gdb shows me that the fault occurs in an instruction 'stx %o3,%fp+0x30f' and %fp is 0. In fact, all registers %l0..%l7 and %i0..%i7 are 0.
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux-x86_64-old.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux-x86_64-old.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux/x86_64 version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <asm/sigcontext.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-linux.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-linux.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Linux stub version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* For SIGSEGV_FAULT_HANDLER_ARGLIST, see the definition of SIGCONTEXT in glibc/sysdeps/unix/sysv/linux/<cpu>/sigcontextinfo.h. */
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-macos-arm64.h
Added
@@ -0,0 +1,23 @@ +/* Fault handler information. macOS/arm64 version. + Copyright (C) 2021 Bruno Haible <bruno@clisp.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#include "fault-macos.h" + +/* See the definitions of + - 'ucontext_t' and 'struct __darwin_ucontext' in <sys/_types/_ucontext.h>, + - 'struct __darwin_mcontext64' in <arm/_mcontext.h>, and + - 'struct __darwin_arm_thread_state64' in <mach/arm/_structs.h>. */ +#define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext->__ss.__sp
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-macos-i386-old.h
Added
@@ -0,0 +1,19 @@ +/* Fault handler information. MacOSX/i386 version. + Copyright (C) 2003 Paolo Bonzini <bonzini@gnu.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, int code, struct sigcontext *scp +#define SIGSEGV_FAULT_CONTEXT scp +#define SIGSEGV_FAULT_STACKPOINTER scp->sc_esp
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-macos-i386.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-macos-i386.h
Changed
@@ -1,10 +1,10 @@ -/* Fault handler information. MacOSX/i386 version. - Copyright (C) 2003 Paolo Bonzini <bonzini@gnu.org> +/* Fault handler information. macOS/i386 and macOS/x86_64 version. + Copyright (C) 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,9 +12,26 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ -#define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, int code, struct sigcontext *scp -#define SIGSEGV_FAULT_CONTEXT scp -#define SIGSEGV_FAULT_STACKPOINTER scp->sc_esp +#include "fault-macos.h" + +#if defined __x86_64__ +/* 64 bit registers */ + +/* See the definitions of + - 'ucontext_t' and 'struct __darwin_ucontext' in <sys/_types/_ucontext.h>, + - 'struct __darwin_mcontext64' in <i386/_mcontext.h>, and + - 'struct __darwin_x86_thread_state64' in <mach/i386/_structs.h>. */ +# define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext->__ss.__rsp + +#else +/* 32 bit registers */ + +/* See the definitions of + - 'ucontext_t' and 'struct __darwin_ucontext' in <sys/_types/_ucontext.h>, + - 'struct __darwin_mcontext32' in <i386/_mcontext.h>, and + - 'struct __darwin_i386_thread_state' in <mach/i386/_structs.h>. */ +# define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext->__ss.__esp + +#endif
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-macos-powerpc.h
Added
@@ -0,0 +1,23 @@ +/* Fault handler information. macOS/powerpc version. + Copyright (C) 2021 Bruno Haible <bruno@clisp.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#include "fault-macos.h" + +/* See the definitions of + - 'ucontext_t' and 'struct __darwin_ucontext' in <sys/_structs.h>, + - 'struct __darwin_mcontext' in <ppc/_structs.h>, and + - 'struct __darwin_ppc_thread_state' in <mach/ppc/_structs.h>. */ +#define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext->__ss.__r1
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-macos.h
Added
@@ -0,0 +1,22 @@ +/* Fault handler information. macOS version. + Copyright (C) 2021 Bruno Haible <bruno@clisp.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#include <sys/ucontext.h> + +#define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, siginfo_t *sip, void *ucp +#define SIGSEGV_FAULT_ADDRESS sip->si_addr +#define SIGSEGV_FAULT_CONTEXT ((ucontext_t *) ucp) +#define SIGSEGV_FAULT_ADDRESS_FROM_SIGINFO
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-macosdarwin5-powerpc.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-macosdarwin5-powerpc.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. MacOSX/Darwin5/PowerPC version. Copyright (C) 2002-2004 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-macosdarwin5-powerpc.c"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-macosdarwin7-powerpc.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-macosdarwin7-powerpc.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. MacOSX/Darwin7/PowerPC version. Copyright (C) 2002-2004, 2007 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-macosdarwin7-powerpc.c"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-netbsd-alpha.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-netbsd-alpha.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. NetBSD/Alpha version. Copyright (C) 2003 Paolo Bonzini <bonzini@gnu.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* NetBSD's sc_sp field depends on machine/reg.h's definition of R_SP. */ #include <machine/reg.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-netbsd.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-netbsd.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. NetBSD version. Copyright (C) 2006, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-none.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-none.h
Changed
@@ -2,10 +2,10 @@ or with a self-contained handler.c. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,5 +13,4 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-openbsd-alpha.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-openbsd-alpha.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OpenBSD/Alpha version. Copyright (C) 2010 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-openbsd.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-openbsd-arm.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-openbsd-arm.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OpenBSD/ARM version. Copyright (C) 2010 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-openbsd.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-openbsd-hppa.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-openbsd-hppa.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OpenBSD/HPPA version. Copyright (C) 2010 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-openbsd.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-openbsd-i386.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-openbsd-i386.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OpenBSD/i386 and OpenBSD/x86_64 version. Copyright (C) 2003, 2010 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-openbsd.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-openbsd-m68k.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-openbsd-m68k.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OpenBSD/m68k version. Copyright (C) 2010 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-openbsd.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-openbsd-m88k.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-openbsd-m88k.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OpenBSD/m88k version. Copyright (C) 2010 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-openbsd.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-openbsd-mips.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-openbsd-mips.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OpenBSD/MIPS version. Copyright (C) 2010 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-openbsd.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-openbsd-powerpc.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-openbsd-powerpc.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OpenBSD/PowerPC version. - Copyright (C) 2010 Bruno Haible <bruno@clisp.org> + Copyright (C) 2010-2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,12 +12,22 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-openbsd.h" +#if defined(__powerpc64__) || defined(_ARCH_PPC64) /* 64-bit */ + +/* See the definition of 'struct sigcontext' in + openbsd-src/sys/arch/powerpc64/include/signal.h. */ + +# define SIGSEGV_FAULT_STACKPOINTER scp->sc_sp + +#else /* 32-bit */ + /* See the definition of 'struct sigcontext' and 'struct trapframe' in openbsd-src/sys/arch/powerpc/include/signal.h. */ -#define SIGSEGV_FAULT_STACKPOINTER scp->sc_frame.fixreg1 +# define SIGSEGV_FAULT_STACKPOINTER scp->sc_frame.fixreg1 + +#endif
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-openbsd-sh.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-openbsd-sh.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OpenBSD/SH version. Copyright (C) 2010 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-openbsd.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-openbsd-sparc.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-openbsd-sparc.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OpenBSD/SPARC version. Copyright (C) 2010 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-openbsd.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-openbsd-vax.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-openbsd-vax.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OpenBSD/VAX version. Copyright (C) 2010 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-openbsd.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-openbsd.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-openbsd.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OpenBSD version. Copyright (C) 2003 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, siginfo_t *sip, struct sigcontext *scp #define SIGSEGV_FAULT_ADDRESS sip->si_addr
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-osf-alpha.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-osf-alpha.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OSF/1 Alpha version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-osf.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-osf.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-osf.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. OSF/1 version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, int code, struct sigcontext *scp #define SIGSEGV_FAULT_CONTEXT scp
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-posix-ucontext.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-posix-ucontext.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. POSIX:2001 (= SUSV3 = XPG 6) version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <ucontext.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-posix.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-posix.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. POSIX:2008 (XPG 7) version. Copyright (C) 2002, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, siginfo_t *sip, void *context #define SIGSEGV_FAULT_ADDRESS sip->si_addr
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-solaris-i386.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-solaris-i386.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Solaris/i386 version. Copyright (C) 2002, 2018 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-solaris.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-solaris-sparc.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-solaris-sparc.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Solaris/SPARC version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-solaris.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-solaris.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-solaris.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Solaris version. Copyright (C) 2002, 2009 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,7 +12,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-posix-ucontext.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault-solaris11-sparc.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault-solaris11-sparc.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Solaris 11/SPARC version. Copyright (C) 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,14 +12,14 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "fault-solaris-sparc.h" /* On Solaris 11.3/SPARC, both in 32-bit and 64-bit mode, when catching stack overflow, the fault address is correct the first time, but is zero - or near zero the second time. 'truss tests/stackoverflow1' shows it: + or near zero the second time. 'truss tests/test-catch-stackoverflow1' + shows it: In 32-bit mode:
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/fault.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/fault.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. - Copyright (C) 2002 Bruno Haible <bruno@clisp.org> + Copyright (C) 2002, 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,19 +12,18 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* The included file defines: SIGSEGV_FAULT_HANDLER_ARGLIST is the argument list for the actual fault handler. + and if available (optional): + SIGSEGV_FAULT_ADDRESS is a macro for fetching the fault address. - and if available (optional): - SIGSEGV_FAULT_CONTEXT is a macro giving a pointer to the entire fault context (i.e. the register set etc.).
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/handler-macos.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/handler-macos.c
Changed
@@ -2,10 +2,10 @@ Copyright (C) 1993-1999, 2002-2003, 2007-2008, 2016, 2018, 2020 Bruno Haible <bruno@clisp.org> Copyright (C) 2003 Paolo Bonzini <bonzini@gnu.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "sigsegv.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/handler-none.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/handler-none.c
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Copyright (C) 1993-1999, 2002, 2008, 2016 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "sigsegv.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/handler-unix.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/handler-unix.c
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Unix version. Copyright (C) 1993-1999, 2002-2003, 2006, 2008-2009, 2016-2017, 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Persuade glibc <sys/ucontext.h> to declare macros designating register indices: REG_RSP on x86_64, REG_ESP on i386. */ @@ -58,6 +57,9 @@ On OSes which preallocate the stack's VMA with its maximum size (like BeOS), we use the stack's VMA directly. */ +/* Note: Solaris 11 defines a function 'stack_violation' + <https://docs.oracle.com/cd/E26502_01/html/E29034/stack-violation-3c.html>. + It merely implements heuristic BC, therefore no need to use it. */ #include <stdint.h> #include <stdlib.h> @@ -273,7 +275,7 @@ /* Handler declined responsibility for real. */ /* Remove ourselves and dump core. */ - SIGSEGV_FOR_ALL_SIGNALS (sig, signal (sig, SIG_DFL);) + SIGSEGV_FOR_ALL_SIGNALS (signo, signal (signo, SIG_DFL);) } #if HAVE_STACK_OVERFLOW_RECOVERY @@ -368,7 +370,7 @@ } /* Remove ourselves and dump core. */ - SIGSEGV_FOR_ALL_SIGNALS (sig, signal (sig, SIG_DFL);) + SIGSEGV_FOR_ALL_SIGNALS (signo, signal (signo, SIG_DFL);) } #endif
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/handler-win32.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/handler-win32.c
Changed
@@ -3,10 +3,10 @@ Copyright (C) 2003 Paolo Bonzini <bonzini@gnu.org> Copyright (C) 2009 Eric Blake <ebb9@byu.net> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,8 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "sigsegv.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/handler.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/handler.c
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "config.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/leave-none.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/leave-none.c
Changed
@@ -1,10 +1,10 @@ /* Leaving a signal handler executing on the alternate stack. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,7 +12,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* No need to define sigsegv_reset_onstack_flag() on this platform. */
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/leave-nop.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/leave-nop.c
Changed
@@ -1,10 +1,10 @@ /* Leaving a signal handler executing on the alternate stack. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ void sigsegv_reset_onstack_flag (void)
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/leave-setcontext.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/leave-setcontext.c
Changed
@@ -1,10 +1,10 @@ /* Leaving a signal handler executing on the alternate stack. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <signal.h> #include <ucontext.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/leave-sigaltstack.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/leave-sigaltstack.c
Changed
@@ -1,10 +1,10 @@ /* Leaving a signal handler executing on the alternate stack. Copyright (C) 2002-2003 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <stddef.h> #include <signal.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/leave.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/leave.c
Changed
@@ -1,10 +1,10 @@ /* Leaving a signal handler executing on the alternate stack. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "config.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/leave.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/leave.h
Changed
@@ -1,10 +1,10 @@ /* Leaving a signal handler executing on the alternate stack. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,7 +12,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ extern void sigsegv_reset_onstack_flag (void);
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/machfault-macos.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/machfault-macos.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. MacOSX version (both PowerPC and i386). Copyright (C) 2003-2004, 2006-2008, 2020 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if defined __aarch64__
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/machfault.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/machfault.h
Changed
@@ -1,10 +1,10 @@ /* Fault handler information. Copyright (C) 2004 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* The included file defines:
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/signals-bsd.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/signals-bsd.h
Changed
@@ -1,10 +1,10 @@ /* List of signals. BSD version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* List of signals that are sent when an invalid virtual memory address is accessed, or when the stack overflows. */
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/signals-hpux.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/signals-hpux.h
Changed
@@ -1,10 +1,10 @@ /* List of signals. HP-UX version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* List of signals that are sent when an invalid virtual memory address is accessed, or when the stack overflows. */
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/signals-hurd.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/signals-hurd.h
Changed
@@ -1,10 +1,10 @@ /* List of signals. Hurd version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* List of signals that are sent when an invalid virtual memory address is accessed, or when the stack overflows. */
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/signals-macos.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/signals-macos.h
Changed
@@ -2,10 +2,10 @@ Copyright (C) 2002 Bruno Haible <bruno@clisp.org> Copyright (C) 2003 Paolo Bonzini <bonzini@gnu.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* List of signals that are sent when an invalid virtual memory address is accessed, or when the stack overflows.
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/signals.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/signals.h
Changed
@@ -1,10 +1,10 @@ /* List of signals. Generic Unix version. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* List of signals that are sent when an invalid virtual memory address is accessed, or when the stack overflows. */
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/sigsegv.h.in -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/sigsegv.h.in
Changed
@@ -1,10 +1,10 @@ /* Page fault handling library. - Copyright (C) 1998-1999, 2002, 2004-2011, 2016-2018, 2021 Bruno Haible <bruno@clisp.org> + Copyright (C) 1998-1999, 2002, 2004-2011, 2016-2018, 2021-2022 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _SIGSEGV_H #define _SIGSEGV_H @@ -24,16 +23,25 @@ @FAULT_CONTEXT_INCLUDE@ /* Correct the value of SIGSTKSZ on some systems. + glibc >= 2.34: When _GNU_SOURCE is defined, SIGSTKSZ is no longer a + compile-time constant. But most programs need a simple constant. AIX 64-bit: original value 4096 is too small. HP-UX: original value 8192 is too small. Solaris 11/x86_64: original value 8192 is too small. */ +#include <signal.h> +#if __GLIBC__ >= 2 +# undef SIGSTKSZ +# if defined __ia64__ +# define SIGSTKSZ 262144 +# else +# define SIGSTKSZ 65536 +# endif +#endif #if defined _AIX && defined _ARCH_PPC64 -# include <signal.h> # undef SIGSTKSZ # define SIGSTKSZ 8192 #endif #if defined __hpux || (defined __sun && (defined __x86_64__ || defined __amd64__)) -# include <signal.h> # undef SIGSTKSZ # define SIGSTKSZ 16384 #endif @@ -55,7 +63,7 @@ extern "C" { #endif -#define LIBSIGSEGV_VERSION 0x020D /* version number: (major<<8) + minor */ +#define LIBSIGSEGV_VERSION 0x020E /* version number: (major<<8) + minor */ extern int libsigsegv_version; /* Likewise */ /* -------------------------------------------------------------------------- */
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-aix.c
Added
@@ -0,0 +1,25 @@ +/* Determine the virtual memory area of a given address. AIX version. + Copyright (C) 2021 Bruno Haible <bruno@clisp.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#include "stackvma.h" + +#include "stackvma-mincore.c" + +int +sigsegv_get_vma (uintptr_t address, struct vma_struct *vma) +{ + return mincore_get_vma (address, vma); +}
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma-beos.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-beos.c
Changed
@@ -1,10 +1,10 @@ /* Determine the virtual memory area of a given address. BeOS version. Copyright (C) 2002, 2006, 2016-2017, 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "stackvma.h" #include <OS.h> @@ -75,7 +74,7 @@ the iteration terminates prematurely. This function may open file descriptors, but does not call malloc(). Return 0 if all went well, or -1 in case of error. */ -/* This code is a simplied copy (no handling of protection flags) of the +/* This code is a simplified copy (no handling of protection flags) of the code in gnulib's lib/vma-iter.c. */ static int vma_iterate (struct callback_locals *locals)
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-cygwin.c
Added
@@ -0,0 +1,125 @@ +/* Determine the virtual memory area of a given address. Cygwin version. + Copyright (C) 2002-2003, 2006, 2008, 2011, 2016-2017, 2021 Bruno Haible <bruno@clisp.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#include "stackvma.h" +#include <stdio.h> + +#include "stackvma-simple.c" +#include "stackvma-rofile.c" + +struct callback_locals +{ + uintptr_t address; + struct vma_struct *vma; + /* The stack appears as three adjacents segments, therefore we + merge adjacent segments. */ + uintptr_t curr_start, curr_end; +#if STACK_DIRECTION < 0 + uintptr_t prev_end; +#else + int stop_at_next_vma; +#endif + int retval; +}; + +static int +callback (struct callback_locals *locals, uintptr_t start, uintptr_t end) +{ + if (start == locals->curr_end) + { + /* Merge adjacent segments. */ + locals->curr_end = end; + return 0; + } +#if STACK_DIRECTION < 0 + if (locals->curr_start < locals->curr_end + && locals->address >= locals->curr_start + && locals->address <= locals->curr_end - 1) + { + locals->vma->start = locals->curr_start; + locals->vma->end = locals->curr_end; + locals->vma->prev_end = locals->prev_end; + locals->retval = 0; + return 1; + } + locals->prev_end = locals->curr_end; +#else + if (locals->stop_at_next_vma) + { + locals->vma->next_start = locals->curr_start; + locals->stop_at_next_vma = 0; + return 1; + } + if (locals->curr_start < locals->curr_end + && locals->address >= locals->curr_start + && locals->address <= locals->curr_end - 1) + { + locals->vma->start = locals->curr_start; + locals->vma->end = locals->curr_end; + locals->retval = 0; + locals->stop_at_next_vma = 1; + return 0; + } +#endif + locals->curr_start = start; locals->curr_end = end; + return 0; +} + +#include "stackvma-vma-iter.c" + +int +sigsegv_get_vma (uintptr_t address, struct vma_struct *vma) +{ + struct callback_locals locals; + locals.address = address; + locals.vma = vma; + locals.curr_start = 0; + locals.curr_end = 0; +#if STACK_DIRECTION < 0 + locals.prev_end = 0; +#else + locals.stop_at_next_vma = 0; +#endif + locals.retval = -1; + + vma_iterate (&locals); + if (locals.retval < 0) + { + if (locals.curr_start < locals.curr_end + && address >= locals.curr_start && address <= locals.curr_end - 1) + { + vma->start = locals.curr_start; + vma->end = locals.curr_end; +#if STACK_DIRECTION < 0 + vma->prev_end = locals.prev_end; +#else + vma->next_start = 0; +#endif + locals.retval = 0; + } + } + if (locals.retval == 0) + { +#if !(STACK_DIRECTION < 0) + if (locals.stop_at_next_vma) + vma->next_start = 0; +#endif + vma->is_near_this = simple_is_near_this; + return 0; + } + + return -1; +}
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma-freebsd.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-freebsd.c
Changed
@@ -1,10 +1,10 @@ /* Determine the virtual memory area of a given address. FreeBSD version. - Copyright (C) 2002-2003, 2006, 2008, 2011, 2016-2017 Bruno Haible <bruno@clisp.org> + Copyright (C) 2002-2003, 2006, 2008, 2011, 2016-2017, 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "stackvma.h" #include <stdio.h> @@ -27,10 +26,7 @@ #endif #if HAVE_MINCORE -# define sigsegv_get_vma mincore_get_vma -# define STATIC static # include "stackvma-mincore.c" -# undef sigsegv_get_vma #endif struct callback_locals
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma-linux.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-linux.c
Changed
@@ -1,10 +1,10 @@ /* Determine the virtual memory area of a given address. Linux version. - Copyright (C) 2002, 2006, 2008, 2016-2017 Bruno Haible <bruno@clisp.org> + Copyright (C) 2002, 2006, 2008, 2016-2017, 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "stackvma.h" #include <stdio.h> @@ -22,10 +21,7 @@ #include "stackvma-rofile.c" #if HAVE_MINCORE -# define sigsegv_get_vma mincore_get_vma -# define STATIC static # include "stackvma-mincore.c" -# undef sigsegv_get_vma #endif struct callback_locals
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma-mach.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-mach.c
Changed
@@ -2,10 +2,10 @@ Copyright (C) 2003, 2006 Paolo Bonzini <bonzini@gnu.org> Copyright (C) 2010, 2016, 2020 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "stackvma.h" #include <stdio.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma-mincore.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-mincore.c
Changed
@@ -1,10 +1,10 @@ /* Determine the virtual memory area of a given address. Copyright (C) 2006, 2008-2010, 2016-2018, 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* mincore() is a system call that allows to inquire the status of a range of pages of virtual memory. In particular, it allows to inquire @@ -27,6 +26,8 @@ - NetBSD, since NetBSD 3.0 (at least), 1 - OpenBSD, since OpenBSD 2.6 (at least), 1 - AIX, since AIX 5.3, 1 + As of 2019, also on + - Hurd. However, while the API allows to easily determine the bounds of mapped virtual memory, it does not make it easy to find the bounds of _unmapped_ virtual memory ranges. We try to work around this, but it may still be @@ -45,15 +46,15 @@ /* The AIX declaration of mincore() uses 'caddr_t', whereas the other platforms use 'void *'. */ -#ifdef UNIX_AIX +#ifdef _AIX typedef caddr_t MINCORE_ADDR_T; #else typedef void* MINCORE_ADDR_T; #endif -/* The glibc declaration of mincore() uses 'unsigned char *', whereas the BSD - declaration uses 'char *'. */ -#if __GLIBC__ >= 2 || defined __ANDROID__ +/* The glibc and musl declaration of mincore() uses 'unsigned char *', whereas + the BSD declaration uses 'char *'. */ +#if __GLIBC__ >= 2 || defined __linux__ || defined __ANDROID__ typedef unsigned char pageinfo_t; #else typedef char pageinfo_t; @@ -281,11 +282,8 @@ #endif -#ifdef STATIC -STATIC -#endif -int -sigsegv_get_vma (uintptr_t address, struct vma_struct *vma) +static int +mincore_get_vma (uintptr_t address, struct vma_struct *vma) { if (pagesize == 0) init_pagesize ();
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma-mquery.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-mquery.c
Changed
@@ -1,10 +1,10 @@ /* Determine the virtual memory area of a given address. - Copyright (C) 2011, 2016 Bruno Haible <bruno@clisp.org> + Copyright (C) 2011, 2016, 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,14 +12,13 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* mquery() is a system call that allows to inquire the status of a range of pages of virtual memory. In particular, it allows to inquire whether a page is mapped at all, and where is the next unmapped page after a given address. - As of 2011, mquery() is supported by: + As of 2021, mquery() is supported by: - OpenBSD, since OpenBSD 3.4. Note that this file can give different results. For example, on OpenBSD 4.4 / i386 the stack segment (which starts around 0xcdbfe000) @@ -41,14 +40,11 @@ # define mapped_range_start mincore_mapped_range_start # define mapped_range_end mincore_mapped_range_end # define is_unmapped mincore_is_unmapped -# define sigsegv_get_vma mincore_get_vma -# define STATIC static # include "stackvma-mincore.c" # undef is_mapped # undef mapped_range_start # undef mapped_range_end # undef is_unmapped -# undef sigsegv_get_vma # define is_mapped mquery_is_mapped # define mapped_range_start mquery_mapped_range_start # define mapped_range_end mquery_mapped_range_end
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma-netbsd.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-netbsd.c
Changed
@@ -1,10 +1,10 @@ /* Determine the virtual memory area of a given address. NetBSD version. - Copyright (C) 2002-2003, 2006, 2008, 2011, 2016-2017 Bruno Haible <bruno@clisp.org> + Copyright (C) 2002-2003, 2006, 2008, 2011, 2016-2017, 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "stackvma.h" #include <stdio.h> @@ -22,10 +21,7 @@ #include "stackvma-rofile.c" #if HAVE_MINCORE -# define sigsegv_get_vma mincore_get_vma -# define STATIC static # include "stackvma-mincore.c" -# undef sigsegv_get_vma #endif struct callback_locals @@ -131,6 +127,7 @@ #if HAVE_MINCORE return mincore_get_vma (address, vma); -#endif +#else return -1; +#endif }
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma-none.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-none.c
Changed
@@ -1,10 +1,10 @@ /* Determine the virtual memory area of a given address. Copyright (C) 2002, 2016 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "stackvma.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma-procfs.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-procfs.c
Changed
@@ -1,10 +1,10 @@ /* Determine the virtual memory area of a given address. - Copyright (C) 2002, 2006, 2008-2009, 2016-2017 Bruno Haible <bruno@clisp.org> + Copyright (C) 2002, 2006, 2008-2009, 2016-2017, 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,11 +12,13 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +/* Persuade Solaris OpenIndiana <signal.h> to declare 'struct sigaltstack'. */ +#define __EXTENSIONS__ 1 #include "stackvma.h" -#include <unistd.h> /* open, close, read */ +#include <unistd.h> /* getpagesize, getpid, close, read */ #include <errno.h> /* EINTR */ #include <fcntl.h> /* open */ #include <string.h> /* memcpy */ @@ -31,10 +33,7 @@ #include "stackvma-simple.c" #if HAVE_MINCORE -# define sigsegv_get_vma mincore_get_vma -# define STATIC static # include "stackvma-mincore.c" -# undef sigsegv_get_vma #else /* Cache for getpagesize(). */ static uintptr_t pagesize; @@ -101,7 +100,7 @@ the iteration terminates prematurely. This function may open file descriptors, but does not call malloc(). Return 0 if all went well, or -1 in case of error. */ -/* This code is a simplied copy (no handling of protection flags) of the +/* This code is a simplified copy (no handling of protection flags) of the code in gnulib's lib/vma-iter.c. */ static int vma_iterate (struct callback_locals *locals)
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma-rofile.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-rofile.c
Changed
@@ -1,10 +1,10 @@ /* Buffered read-only streams. Copyright (C) 2008, 2016-2017 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <errno.h> /* errno, EINTR */ #include <fcntl.h> /* O_RDONLY */
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma-simple.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-simple.c
Changed
@@ -1,10 +1,10 @@ /* Determine the virtual memory area of a given address. Copyright (C) 2006, 2016 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* This file contains the proximity test function for the simple cases, where the OS has an API for enumerating the mapped ranges of virtual memory. */
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma-vma-iter.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma-vma-iter.c
Changed
@@ -1,11 +1,11 @@ /* Iterate through the virtual memory areas of the current process, by reading from the /proc file system. - Copyright (C) 2002-2019 Bruno Haible <bruno@clisp.org> + Copyright (C) 2002-2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,14 +13,13 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ -/* This code is a simplied copy (no handling of protection flags) of the +/* This code is a simplified copy (no handling of protection flags) of the code in gnulib's lib/vma-iter.c. */ -#if defined __linux__ || defined __ANDROID__ || (defined __FreeBSD_kernel__ && !defined __FreeBSD__) /* || defined __CYGWIN__ */ +#if defined __linux__ || defined __ANDROID__ || (defined __FreeBSD_kernel__ && !defined __FreeBSD__) || defined __CYGWIN__ /* GNU/kFreeBSD mounts /proc as linprocfs, which looks like a Linux /proc file system. */ @@ -231,7 +230,7 @@ static int vma_iterate (struct callback_locals *locals) { -#if defined __linux__ || defined __ANDROID__ || defined __FreeBSD_kernel__ || defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ /* || defined __CYGWIN__ */ +#if defined __linux__ || defined __ANDROID__ || defined __FreeBSD_kernel__ || defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ || defined __CYGWIN__ # if defined __FreeBSD__ /* On FreeBSD with procfs (but not GNU/kFreeBSD, which uses linprocfs), the
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma.c
Changed
@@ -1,10 +1,10 @@ /* Determine the virtual memory area of a given address. Copyright (C) 2002 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "config.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/stackvma.h -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/stackvma.h
Changed
@@ -1,10 +1,10 @@ /* Determine the virtual memory area of a given address. Copyright (C) 2002, 2006, 2016 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _STACKVMA_H #define _STACKVMA_H
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/src/version.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/src/version.c
Changed
@@ -1,10 +1,10 @@ /* Version number. Copyright (C) 2005 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "sigsegv.h"
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/tests/Makefile.am -> _service:tar_scm:libsigsegv-2.14.tar.gz/tests/Makefile.am
Changed
@@ -1,10 +1,10 @@ ## Makefile for libsigsegv/tests. -## Copyright (C) 2002-2003, 2008-2010, 2016 Bruno Haible <bruno@clisp.org> +## Copyright (C) 2002-2003, 2008-2010, 2016, 2021 Bruno Haible <bruno@clisp.org> ## -## This program is free software; you can redistribute it and/or modify +## This program is free software: you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2, or (at your option) -## any later version. +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,22 +12,30 @@ ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -## USA. +## along with this program. If not, see <https://www.gnu.org/licenses/>. ## Process this file with automake to produce Makefile.in. AUTOMAKE_OPTIONS = 1.11 gnits no-dependencies color-tests -TESTS = sigsegv1 sigsegv2 sigsegv3 stackoverflow1 stackoverflow2 +TESTS = \ + test-catch-segv1 \ + test-catch-segv2 \ + test-segv-dispatcher1 \ + test-catch-stackoverflow1 \ + test-catch-stackoverflow2 -EXTRA_DIST = mmaputil.h altstack.h +EXTRA_DIST = mmap-anon-util.h altstack-util.h AM_CPPFLAGS = -I../src DEFS = @DEFS@ LDADD = ../src/libsigsegv.la -noinst_PROGRAMS = sigsegv1 sigsegv2 sigsegv3 stackoverflow1 stackoverflow2 +noinst_PROGRAMS = \ + test-catch-segv1 \ + test-catch-segv2 \ + test-segv-dispatcher1 \ + test-catch-stackoverflow1 \ + test-catch-stackoverflow2 if CYGWIN TESTS += cygwin1
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/tests/Makefile.in -> _service:tar_scm:libsigsegv-2.14.tar.gz/tests/Makefile.in
Changed
@@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. +# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2020 Free Software Foundation, Inc. +# Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -88,12 +88,16 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -TESTS = sigsegv1$(EXEEXT) sigsegv2$(EXEEXT) sigsegv3$(EXEEXT) \ - stackoverflow1$(EXEEXT) stackoverflow2$(EXEEXT) \ - $(am__EXEEXT_1) $(am__EXEEXT_2) -noinst_PROGRAMS = sigsegv1$(EXEEXT) sigsegv2$(EXEEXT) \ - sigsegv3$(EXEEXT) stackoverflow1$(EXEEXT) \ - stackoverflow2$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) +TESTS = test-catch-segv1$(EXEEXT) test-catch-segv2$(EXEEXT) \ + test-segv-dispatcher1$(EXEEXT) \ + test-catch-stackoverflow1$(EXEEXT) \ + test-catch-stackoverflow2$(EXEEXT) $(am__EXEEXT_1) \ + $(am__EXEEXT_2) +noinst_PROGRAMS = test-catch-segv1$(EXEEXT) test-catch-segv2$(EXEEXT) \ + test-segv-dispatcher1$(EXEEXT) \ + test-catch-stackoverflow1$(EXEEXT) \ + test-catch-stackoverflow2$(EXEEXT) $(am__EXEEXT_1) \ + $(am__EXEEXT_2) @CYGWIN_TRUE@am__append_1 = cygwin1 @CYGWIN_TRUE@am__append_2 = cygwin1 @ENABLE_EFAULT_TRUE@am__append_3 = efault1 efault2 efault3 @@ -142,26 +146,28 @@ efault3_OBJECTS = efault3.$(OBJEXT) efault3_LDADD = $(LDADD) efault3_DEPENDENCIES = ../src/libsigsegv.la -sigsegv1_SOURCES = sigsegv1.c -sigsegv1_OBJECTS = sigsegv1.$(OBJEXT) -sigsegv1_LDADD = $(LDADD) -sigsegv1_DEPENDENCIES = ../src/libsigsegv.la -sigsegv2_SOURCES = sigsegv2.c -sigsegv2_OBJECTS = sigsegv2.$(OBJEXT) -sigsegv2_LDADD = $(LDADD) -sigsegv2_DEPENDENCIES = ../src/libsigsegv.la -sigsegv3_SOURCES = sigsegv3.c -sigsegv3_OBJECTS = sigsegv3.$(OBJEXT) -sigsegv3_LDADD = $(LDADD) -sigsegv3_DEPENDENCIES = ../src/libsigsegv.la -stackoverflow1_SOURCES = stackoverflow1.c -stackoverflow1_OBJECTS = stackoverflow1.$(OBJEXT) -stackoverflow1_LDADD = $(LDADD) -stackoverflow1_DEPENDENCIES = ../src/libsigsegv.la -stackoverflow2_SOURCES = stackoverflow2.c -stackoverflow2_OBJECTS = stackoverflow2.$(OBJEXT) -stackoverflow2_LDADD = $(LDADD) -stackoverflow2_DEPENDENCIES = ../src/libsigsegv.la +test_catch_segv1_SOURCES = test-catch-segv1.c +test_catch_segv1_OBJECTS = test-catch-segv1.$(OBJEXT) +test_catch_segv1_LDADD = $(LDADD) +test_catch_segv1_DEPENDENCIES = ../src/libsigsegv.la +test_catch_segv2_SOURCES = test-catch-segv2.c +test_catch_segv2_OBJECTS = test-catch-segv2.$(OBJEXT) +test_catch_segv2_LDADD = $(LDADD) +test_catch_segv2_DEPENDENCIES = ../src/libsigsegv.la +test_catch_stackoverflow1_SOURCES = test-catch-stackoverflow1.c +test_catch_stackoverflow1_OBJECTS = \ + test-catch-stackoverflow1.$(OBJEXT) +test_catch_stackoverflow1_LDADD = $(LDADD) +test_catch_stackoverflow1_DEPENDENCIES = ../src/libsigsegv.la +test_catch_stackoverflow2_SOURCES = test-catch-stackoverflow2.c +test_catch_stackoverflow2_OBJECTS = \ + test-catch-stackoverflow2.$(OBJEXT) +test_catch_stackoverflow2_LDADD = $(LDADD) +test_catch_stackoverflow2_DEPENDENCIES = ../src/libsigsegv.la +test_segv_dispatcher1_SOURCES = test-segv-dispatcher1.c +test_segv_dispatcher1_OBJECTS = test-segv-dispatcher1.$(OBJEXT) +test_segv_dispatcher1_LDADD = $(LDADD) +test_segv_dispatcher1_DEPENDENCIES = ../src/libsigsegv.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -195,10 +201,13 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = cygwin1.c efault1.c efault2.c efault3.c sigsegv1.c \ - sigsegv2.c sigsegv3.c stackoverflow1.c stackoverflow2.c -DIST_SOURCES = cygwin1.c efault1.c efault2.c efault3.c sigsegv1.c \ - sigsegv2.c sigsegv3.c stackoverflow1.c stackoverflow2.c +SOURCES = cygwin1.c efault1.c efault2.c efault3.c test-catch-segv1.c \ + test-catch-segv2.c test-catch-stackoverflow1.c \ + test-catch-stackoverflow2.c test-segv-dispatcher1.c +DIST_SOURCES = cygwin1.c efault1.c efault2.c efault3.c \ + test-catch-segv1.c test-catch-segv2.c \ + test-catch-stackoverflow1.c test-catch-stackoverflow2.c \ + test-segv-dispatcher1.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -221,8 +230,6 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no @@ -447,6 +454,8 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -457,6 +466,7 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FAULT_CONTEXT = @FAULT_CONTEXT@ FGREP = @FGREP@ @@ -546,6 +556,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -555,7 +566,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.11 gnits no-dependencies color-tests -EXTRA_DIST = mmaputil.h altstack.h +EXTRA_DIST = mmap-anon-util.h altstack-util.h AM_CPPFLAGS = -I../src LDADD = ../src/libsigsegv.la all: all-am @@ -617,25 +628,25 @@ @rm -f efault3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(efault3_OBJECTS) $(efault3_LDADD) $(LIBS) -sigsegv1$(EXEEXT): $(sigsegv1_OBJECTS) $(sigsegv1_DEPENDENCIES) $(EXTRA_sigsegv1_DEPENDENCIES) - @rm -f sigsegv1$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(sigsegv1_OBJECTS) $(sigsegv1_LDADD) $(LIBS) +test-catch-segv1$(EXEEXT): $(test_catch_segv1_OBJECTS) $(test_catch_segv1_DEPENDENCIES) $(EXTRA_test_catch_segv1_DEPENDENCIES) + @rm -f test-catch-segv1$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_catch_segv1_OBJECTS) $(test_catch_segv1_LDADD) $(LIBS) -sigsegv2$(EXEEXT): $(sigsegv2_OBJECTS) $(sigsegv2_DEPENDENCIES) $(EXTRA_sigsegv2_DEPENDENCIES) - @rm -f sigsegv2$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(sigsegv2_OBJECTS) $(sigsegv2_LDADD) $(LIBS) +test-catch-segv2$(EXEEXT): $(test_catch_segv2_OBJECTS) $(test_catch_segv2_DEPENDENCIES) $(EXTRA_test_catch_segv2_DEPENDENCIES) + @rm -f test-catch-segv2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_catch_segv2_OBJECTS) $(test_catch_segv2_LDADD) $(LIBS) -sigsegv3$(EXEEXT): $(sigsegv3_OBJECTS) $(sigsegv3_DEPENDENCIES) $(EXTRA_sigsegv3_DEPENDENCIES) - @rm -f sigsegv3$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(sigsegv3_OBJECTS) $(sigsegv3_LDADD) $(LIBS) +test-catch-stackoverflow1$(EXEEXT): $(test_catch_stackoverflow1_OBJECTS) $(test_catch_stackoverflow1_DEPENDENCIES) $(EXTRA_test_catch_stackoverflow1_DEPENDENCIES) + @rm -f test-catch-stackoverflow1$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_catch_stackoverflow1_OBJECTS) $(test_catch_stackoverflow1_LDADD) $(LIBS) -stackoverflow1$(EXEEXT): $(stackoverflow1_OBJECTS) $(stackoverflow1_DEPENDENCIES) $(EXTRA_stackoverflow1_DEPENDENCIES) - @rm -f stackoverflow1$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(stackoverflow1_OBJECTS) $(stackoverflow1_LDADD) $(LIBS) +test-catch-stackoverflow2$(EXEEXT): $(test_catch_stackoverflow2_OBJECTS) $(test_catch_stackoverflow2_DEPENDENCIES) $(EXTRA_test_catch_stackoverflow2_DEPENDENCIES) + @rm -f test-catch-stackoverflow2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_catch_stackoverflow2_OBJECTS) $(test_catch_stackoverflow2_LDADD) $(LIBS) -stackoverflow2$(EXEEXT): $(stackoverflow2_OBJECTS) $(stackoverflow2_DEPENDENCIES) $(EXTRA_stackoverflow2_DEPENDENCIES) - @rm -f stackoverflow2$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(stackoverflow2_OBJECTS) $(stackoverflow2_LDADD) $(LIBS) +test-segv-dispatcher1$(EXEEXT): $(test_segv_dispatcher1_OBJECTS) $(test_segv_dispatcher1_DEPENDENCIES) $(EXTRA_test_segv_dispatcher1_DEPENDENCIES) + @rm -f test-segv-dispatcher1$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_segv_dispatcher1_OBJECTS) $(test_segv_dispatcher1_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -851,37 +862,37 @@ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? -sigsegv1.log: sigsegv1$(EXEEXT) - @p='sigsegv1$(EXEEXT)'; \ - b='sigsegv1'; \ +test-catch-segv1.log: test-catch-segv1$(EXEEXT) + @p='test-catch-segv1$(EXEEXT)'; \ + b='test-catch-segv1'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -sigsegv2.log: sigsegv2$(EXEEXT) - @p='sigsegv2$(EXEEXT)'; \
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/tests/altstack-util.h
Added
@@ -0,0 +1,66 @@ +/* Some auxiliary stuff for defining an alternate stack. + Copyright (C) 2010 Eric Blake <eblake@redhat.com> + Copyright (C) 2010 Bruno Haible <bruno@clisp.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#include <string.h> /* for memset */ + +/* Get uintptr_t. */ +#if HAVE_STDINT_H +# include <stdint.h> +#endif +#if HAVE_INTTYPES_H +# include <inttypes.h> +#endif + +#ifndef SIGSTKSZ +# define SIGSTKSZ 16384 +#endif + +/* glibc says: Users should use SIGSTKSZ as the size of user-supplied + buffers. We want to detect stack overflow of the alternate stack + in a nicer manner than just crashing, so we overallocate in + comparison to what we hand libsigsegv. Also, we intentionally hand + an unaligned pointer, to ensure the alternate stack still ends up + aligned. */ +#define MYSTACK_CRUMPLE_ZONE 8192 +char mystack_storageSIGSTKSZ + 2 * MYSTACK_CRUMPLE_ZONE + 31; +char *mystack; /* SIGSTKSZ bytes in the middle of storage. */ + +static void +prepare_alternate_stack (void) +{ + memset (mystack_storage, 's', sizeof mystack_storage); + mystack = (char *) ((uintptr_t) (mystack_storage + MYSTACK_CRUMPLE_ZONE) | 31); +} + +static void +check_alternate_stack_no_overflow (void) +{ + unsigned int i; + + for (i = MYSTACK_CRUMPLE_ZONE; i > 0; i--) + if (*(mystack - i) != 's') + { + printf ("Alternate stack was exceeded by %u bytes!!\n", i); + exit (1); + } + for (i = MYSTACK_CRUMPLE_ZONE; i > 0; i--) + if (*(mystack + SIGSTKSZ - 1 + i) != 's') + { + printf ("Alternate stack was exceeded by %u bytes!!\n", i); + exit (1); + } +}
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/tests/cygwin1.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/tests/cygwin1.c
Changed
@@ -2,10 +2,10 @@ inside system calls. Copyright (C) 2009 Eric Blake <ebb9@byu.net> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _MSC_VER # include <config.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/tests/efault1.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/tests/efault1.c
Changed
@@ -2,10 +2,10 @@ system calls. Copyright (C) 2009 Eric Blake <ebb9@byu.net> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _MSC_VER # include <config.h>
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/tests/efault2.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/tests/efault2.c
Changed
@@ -1,11 +1,12 @@ /* Test that libsigsegv does not interfere with fault handling inside system calls. Copyright (C) 2009-2010 Eric Blake <ebb9@byu.net> + Copyright (C) 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _MSC_VER # include <config.h> @@ -30,7 +30,7 @@ #include <stdlib.h> #include <unistd.h> -#include "altstack.h" +#include "altstack-util.h" /* A NULL pointer. If we were to use a literal NULL, gcc would give a warning on glibc systems:
View file
_service:tar_scm:libsigsegv-2.13.tar.gz/tests/efault3.c -> _service:tar_scm:libsigsegv-2.14.tar.gz/tests/efault3.c
Changed
@@ -1,11 +1,12 @@ /* Test that libsigsegv does not interfere with fault handling inside system calls. Copyright (C) 2009-2010 Eric Blake <ebb9@byu.net> + Copyright (C) 2021 Bruno Haible <bruno@clisp.org> - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _MSC_VER # include <config.h> @@ -30,7 +30,7 @@ #include <stdlib.h> #include <unistd.h> -#include "altstack.h" +#include "altstack-util.h" /* A NULL pointer. If we were to use a literal NULL, gcc would give a warning on glibc systems:
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/tests/mmap-anon-util.h
Added
@@ -0,0 +1,104 @@ +/* Some auxiliary stuff for using mmap & friends. + Copyright (C) 2002-2003, 2016 Bruno Haible <bruno@clisp.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#if defined _WIN32 && !defined __CYGWIN__ +# define HAVE_WIN32_VM +#else +# include "config.h" +#endif + +#ifdef HAVE_WIN32_VM + +/* ------------------------ Windows ------------------------ */ + +#define WIN32_LEAN_AND_MEAN /* avoid including junk */ +#include <windows.h> +#include <winerror.h> +#define PROT_NONE PAGE_NOACCESS +#define PROT_READ PAGE_READONLY +#define PROT_READ_WRITE PAGE_READWRITE + +static void * +mmap_zeromap (void *map_addr_hint, size_t map_len) +{ + if (VirtualAlloc ((void *)((uintptr_t) map_addr_hint & -0x10000), + (((uintptr_t) map_addr_hint + map_len - 1) | 0xffff) + 1 + - ((uintptr_t) map_addr_hint & -0x10000), + MEM_RESERVE, PAGE_NOACCESS) + && VirtualAlloc (map_addr_hint, map_len, MEM_COMMIT, PAGE_READWRITE)) + return map_addr_hint; + else + return (void *)(-1); +} + +int munmap (void *addr, size_t len) +{ + if (VirtualFree (addr, len, MEM_DECOMMIT)) + return 0; + else + return -1; +} + +int mprotect (void *addr, size_t len, int prot) +{ + DWORD oldprot; + + if (VirtualProtect (addr, len, prot, &oldprot)) + return 0; + else + return -1; +} + +#else + +/* ------------------------ Unix ------------------------ */ + +#include <sys/types.h> +#include <sys/mman.h> + +#ifndef PROT_NONE +# define PROT_NONE 0 +#endif +#define PROT_READ_WRITE (PROT_READ|PROT_WRITE) + +#if HAVE_MMAP_ANON +# define zero_fd -1 +# define map_flags MAP_ANON | MAP_PRIVATE +#elif HAVE_MMAP_ANONYMOUS +# define zero_fd -1 +# define map_flags MAP_ANONYMOUS | MAP_PRIVATE +#elif HAVE_MMAP_DEVZERO +# include <fcntl.h> +# ifndef MAP_FILE +# define MAP_FILE 0 +# endif +static int zero_fd; +# define map_flags MAP_FILE | MAP_PRIVATE +#endif + +static void * +mmap_zeromap (void *map_addr_hint, size_t map_len) +{ +#ifdef __hpux + /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete + freedom about the address range. */ + return (void *) mmap ((void *) 0, map_len, PROT_READ_WRITE, map_flags, zero_fd, 0); +#else + return (void *) mmap (map_addr_hint, map_len, PROT_READ_WRITE, map_flags, zero_fd, 0); +#endif +} + +#endif
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/tests/test-catch-segv1.c
Added
@@ -0,0 +1,128 @@ +/* Test that the handler is called, with the right fault address. + Copyright (C) 2002-2006, 2008, 2011, 2016, 2021 Bruno Haible <bruno@clisp.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#ifndef _MSC_VER +# include <config.h> +#endif + +#include "sigsegv.h" +#include <stdint.h> +#include <stdio.h> + +#if HAVE_SIGSEGV_RECOVERY + +#include "mmap-anon-util.h" +#include <stdlib.h> + +#if SIGSEGV_FAULT_ADDRESS_ALIGNMENT > 1UL +# include <unistd.h> +# define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (getpagesize () - 1) +#else +# define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0 +#endif + +uintptr_t page; + +volatile int handler_called = 0; + +static int +handler (void *fault_address, int serious) +{ + handler_called++; + if (handler_called > 10) + abort (); + if (fault_address + != (void *)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS)) + abort (); + if (mprotect ((void *) page, 0x4000, PROT_READ_WRITE) == 0) + return 1; + return 0; +} + +static void +crasher (uintptr_t p) +{ + *(volatile int *) (p + 0x678) = 42; +} + +int +main () +{ + int prot_unwritable; + void *p; + + /* Preparations. */ +#if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO + zero_fd = open ("/dev/zero", O_RDONLY, 0644); +#endif + +#if defined __linux__ && defined __sparc__ + /* On Linux 2.6.26/SPARC64, PROT_READ has the same effect as + PROT_READ | PROT_WRITE. */ + prot_unwritable = PROT_NONE; +#else + prot_unwritable = PROT_READ; +#endif + + /* Setup some mmaped memory. */ + p = mmap_zeromap ((void *) 0x12340000, 0x4000); + if (p == (void *)(-1)) + { + fprintf (stderr, "mmap_zeromap failed.\n"); + exit (2); + } + page = (uintptr_t) p; + + /* Make it read-only. */ + if (mprotect ((void *) page, 0x4000, prot_unwritable) < 0) + { + fprintf (stderr, "mprotect failed.\n"); + exit (2); + } + /* Test whether it's possible to make it read-write after it was read-only. + This is not possible on Cygwin. */ + if (mprotect ((void *) page, 0x4000, PROT_READ_WRITE) < 0 + || mprotect ((void *) page, 0x4000, prot_unwritable) < 0) + { + fprintf (stderr, "mprotect failed.\n"); + exit (2); + } + + /* Install the SIGSEGV handler. */ + sigsegv_install_handler (&handler); + + /* The first write access should invoke the handler and then complete. */ + crasher (page); + /* The second write access should not invoke the handler. */ + crasher (page); + + /* Check that the handler was called only once. */ + if (handler_called != 1) + exit (1); + /* Test passed! */ + printf ("Test passed.\n"); + return 0; +} + +#else + +int +main () +{ + return 77; +} + +#endif
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/tests/test-catch-segv2.c
Added
@@ -0,0 +1,151 @@ +/* Test that the handler can be exited multiple times. + Copyright (C) 2002-2006, 2008, 2011, 2016, 2021 Bruno Haible <bruno@clisp.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#ifndef _MSC_VER +# include <config.h> +#endif + +#include "sigsegv.h" +#include <stdint.h> +#include <stdio.h> + +#if HAVE_SIGSEGV_RECOVERY + +#if defined _WIN32 && !defined __CYGWIN__ + /* Windows doesn't have sigset_t. */ + typedef int sigset_t; +# define sigemptyset(set) +# define sigprocmask(how,set,oldset) +#endif + +#include "mmap-anon-util.h" +#include <stdlib.h> /* for abort, exit */ +#include <signal.h> +#include <setjmp.h> + +#if SIGSEGV_FAULT_ADDRESS_ALIGNMENT > 1UL +# include <unistd.h> +# define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (getpagesize () - 1) +#else +# define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0 +#endif + +jmp_buf mainloop; +sigset_t mainsigset; + +volatile int pass = 0; +uintptr_t page; + +volatile int handler_called = 0; + +static void +handler_continuation (void *arg1, void *arg2, void *arg3) +{ + longjmp (mainloop, pass); +} + +int +handler (void *fault_address, int serious) +{ + handler_called++; + if (handler_called > 10) + abort (); + if (fault_address + != (void *)((page + 0x678 + 8 * pass) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS)) + abort (); + pass++; + printf ("Fault %d caught.\n", pass); + sigprocmask (SIG_SETMASK, &mainsigset, NULL); + return sigsegv_leave_handler (handler_continuation, NULL, NULL, NULL); +} + +void +crasher (uintptr_t p) +{ + *(volatile int *) (p + 0x678 + 8 * pass) = 42; +} + +int +main () +{ + int prot_unwritable; + void *p; + sigset_t emptyset; + + /* Preparations. */ +#if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO + zero_fd = open ("/dev/zero", O_RDONLY, 0644); +#endif + +#if defined __linux__ && defined __sparc__ + /* On Linux 2.6.26/SPARC64, PROT_READ has the same effect as + PROT_READ | PROT_WRITE. */ + prot_unwritable = PROT_NONE; +#else + prot_unwritable = PROT_READ; +#endif + + /* Setup some mmaped memory. */ + p = mmap_zeromap ((void *) 0x12340000, 0x4000); + if (p == (void *)(-1)) + { + fprintf (stderr, "mmap_zeromap failed.\n"); + exit (2); + } + page = (uintptr_t) p; + + /* Make it read-only. */ + if (mprotect ((void *) page, 0x4000, prot_unwritable) < 0) + { + fprintf (stderr, "mprotect failed.\n"); + exit (2); + } + + /* Install the SIGSEGV handler. */ + if (sigsegv_install_handler (&handler) < 0) + exit (2); + + /* Save the current signal mask. */ + sigemptyset (&emptyset); + sigprocmask (SIG_BLOCK, &emptyset, &mainsigset); + + /* Provoke two SIGSEGVs in a row. */ + switch (setjmp (mainloop)) + { + case 0: case 1: + printf ("Doing SIGSEGV pass %d.\n", pass + 1); + crasher (page); + printf ("no SIGSEGV?!\n"); exit (1); + case 2: + break; + default: + abort (); + } + + /* Test passed! */ + printf ("Test passed.\n"); + return 0; +} + +#else + +int +main () +{ + return 77; +} + +#endif
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/tests/test-catch-stackoverflow1.c
Added
@@ -0,0 +1,148 @@ +/* Test the stack overflow handler. + Copyright (C) 2002-2006, 2008, 2010, 2021 Bruno Haible <bruno@clisp.org> + Copyright (C) 2010 Eric Blake <eblake@redhat.com> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#ifndef _MSC_VER +# include <config.h> +#endif + +#include "sigsegv.h" +#include <stdio.h> +#include <limits.h> + +#if HAVE_STACK_OVERFLOW_RECOVERY + +#if defined _WIN32 && !defined __CYGWIN__ + /* Windows doesn't have sigset_t. */ + typedef int sigset_t; +# define sigemptyset(set) +# define sigprocmask(how,set,oldset) +#endif + +#include <stddef.h> /* needed for NULL on SunOS4 */ +#include <stdlib.h> /* for abort, exit */ +#include <signal.h> +#include <setjmp.h> +#if HAVE_SETRLIMIT +# include <sys/types.h> +# include <sys/time.h> +# include <sys/resource.h> +#endif +#include "altstack-util.h" + +static jmp_buf mainloop; +static sigset_t mainsigset; + +static volatile int pass = 0; + +static volatile char *stack_lower_bound; +static volatile char *stack_upper_bound; + +static void +stackoverflow_handler_continuation (void *arg1, void *arg2, void *arg3) +{ + int arg = (int) (long) arg1; + longjmp (mainloop, arg); +} + +static void +stackoverflow_handler (int emergency, stackoverflow_context_t scp) +{ + char dummy; + volatile char *addr = &dummy; + if (!(addr >= stack_lower_bound && addr <= stack_upper_bound)) + abort (); + pass++; + printf ("Stack overflow %d caught.\n", pass); + sigprocmask (SIG_SETMASK, &mainsigset, NULL); + sigsegv_leave_handler (stackoverflow_handler_continuation, + (void *) (long) (emergency ? -1 : pass), NULL, NULL); +} + +static volatile int * +recurse_1 (int n, volatile int *p) +{ + if (n < INT_MAX) + *recurse_1 (n + 1, p) += n; + return p; +} + +static int +recurse (volatile int n) +{ + return *recurse_1 (n, &n); +} + +int +main () +{ + sigset_t emptyset; + +#if HAVE_SETRLIMIT && defined RLIMIT_STACK + /* Before starting the endless recursion, try to be friendly to the user's + machine. On some Linux 2.2.x systems, there is no stack limit for user + processes at all. We don't want to kill such systems. */ + struct rlimit rl; + rl.rlim_cur = rl.rlim_max = 0x100000; /* 1 MB */ + setrlimit (RLIMIT_STACK, &rl); +#endif + + /* Prepare the storage for the alternate stack. */ + prepare_alternate_stack (); + + /* Install the stack overflow handler. */ + if (stackoverflow_install_handler (&stackoverflow_handler, + mystack, SIGSTKSZ) + < 0) + exit (2); + stack_lower_bound = mystack; + stack_upper_bound = mystack + SIGSTKSZ - 1; + + /* Save the current signal mask. */ + sigemptyset (&emptyset); + sigprocmask (SIG_BLOCK, &emptyset, &mainsigset); + + /* Provoke two stack overflows in a row. */ + switch (setjmp (mainloop)) + { + case -1: + printf ("emergency exit\n"); exit (1); + case 0: case 1: + printf ("Starting recursion pass %d.\n", pass + 1); + recurse (0); + printf ("no endless recursion?!\n"); exit (1); + case 2: + break; + default: + abort (); + } + + /* Validate that the alternate stack did not overflow. */ + check_alternate_stack_no_overflow (); + + printf ("Test passed.\n"); + exit (0); +} + +#else + +int +main () +{ + return 77; +} + +#endif
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/tests/test-catch-stackoverflow2.c
Added
@@ -0,0 +1,210 @@ +/* Test that stack overflow and SIGSEGV are correctly distinguished. + Copyright (C) 2002-2006, 2008, 2016, 2021 Bruno Haible <bruno@clisp.org> + Copyright (C) 2010 Eric Blake <eblake@redhat.com> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#ifndef _MSC_VER +# include <config.h> +#endif + +#include "sigsegv.h" +#include <stdint.h> +#include <stdio.h> +#include <limits.h> + +#if HAVE_STACK_OVERFLOW_RECOVERY && HAVE_SIGSEGV_RECOVERY + +#if defined _WIN32 && !defined __CYGWIN__ + /* Windows doesn't have sigset_t. */ + typedef int sigset_t; +# define sigemptyset(set) +# define sigprocmask(how,set,oldset) +#endif + +#include "mmap-anon-util.h" +#include <stddef.h> /* needed for NULL on SunOS4 */ +#include <stdlib.h> /* for abort, exit */ +#include <signal.h> +#include <setjmp.h> +#if HAVE_SETRLIMIT +# include <sys/types.h> +# include <sys/time.h> +# include <sys/resource.h> +#endif +#include "altstack-util.h" + +static jmp_buf mainloop; +static sigset_t mainsigset; + +static volatile int pass = 0; +static uintptr_t page; +static volatile int *null_pointer_to_volatile_int /* = NULL */; + +static void +stackoverflow_handler_continuation (void *arg1, void *arg2, void *arg3) +{ + int arg = (int) (long) arg1; + longjmp (mainloop, arg); +} + +static void +stackoverflow_handler (int emergency, stackoverflow_context_t scp) +{ + pass++; + if (pass <= 2) + printf ("Stack overflow %d caught.\n", pass); + else + { + printf ("Segmentation violation misdetected as stack overflow.\n"); + exit (1); + } + sigprocmask (SIG_SETMASK, &mainsigset, NULL); + sigsegv_leave_handler (stackoverflow_handler_continuation, + (void *) (long) (emergency ? -1 : pass), NULL, NULL); +} + +static int +sigsegv_handler (void *address, int emergency) +{ + /* This test is necessary to distinguish stack overflow and SIGSEGV. */ + if (!emergency) + return 0; + + pass++; + if (pass <= 2) + { + printf ("Stack overflow %d missed.\n", pass); + exit (1); + } + else + printf ("Segmentation violation correctly detected.\n"); + sigprocmask (SIG_SETMASK, &mainsigset, NULL); + return sigsegv_leave_handler (stackoverflow_handler_continuation, + (void *) (long) pass, NULL, NULL); +} + +static volatile int * +recurse_1 (int n, volatile int *p) +{ + if (n < INT_MAX) + *recurse_1 (n + 1, p) += n; + return p; +} + +static int +recurse (volatile int n) +{ + return *recurse_1 (n, &n); +} + +int +main () +{ + int prot_unwritable; + void *p; + sigset_t emptyset; + +#if HAVE_SETRLIMIT && defined RLIMIT_STACK + /* Before starting the endless recursion, try to be friendly to the user's + machine. On some Linux 2.2.x systems, there is no stack limit for user + processes at all. We don't want to kill such systems. */ + struct rlimit rl; + rl.rlim_cur = rl.rlim_max = 0x100000; /* 1 MB */ + setrlimit (RLIMIT_STACK, &rl); +#endif + + /* Prepare the storage for the alternate stack. */ + prepare_alternate_stack (); + + /* Install the stack overflow handler. */ + if (stackoverflow_install_handler (&stackoverflow_handler, + mystack, SIGSTKSZ) + < 0) + exit (2); + + /* Preparations. */ +#if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO + zero_fd = open ("/dev/zero", O_RDONLY, 0644); +#endif + +#if defined __linux__ && defined __sparc__ + /* On Linux 2.6.26/SPARC64, PROT_READ has the same effect as + PROT_READ | PROT_WRITE. */ + prot_unwritable = PROT_NONE; +#else + prot_unwritable = PROT_READ; +#endif + + /* Setup some mmaped memory. */ + p = mmap_zeromap ((void *) 0x12340000, 0x4000); + if (p == (void *)(-1)) + { + fprintf (stderr, "mmap_zeromap failed.\n"); + exit (2); + } + page = (uintptr_t) p; + + /* Make it read-only. */ + if (mprotect ((void *) page, 0x4000, prot_unwritable) < 0) + { + fprintf (stderr, "mprotect failed.\n"); + exit (2); + } + + /* Install the SIGSEGV handler. */ + if (sigsegv_install_handler (&sigsegv_handler) < 0) + exit (2); + + /* Save the current signal mask. */ + sigemptyset (&emptyset); + sigprocmask (SIG_BLOCK, &emptyset, &mainsigset); + + /* Provoke two stack overflows in a row. */ + switch (setjmp (mainloop)) + { + case -1: + printf ("emergency exit\n"); exit (1); + case 0: case 1: + printf ("Starting recursion pass %d.\n", pass + 1); + recurse (0); + printf ("no endless recursion?!\n"); exit (1); + case 2: + *(volatile int *) (page + 0x678) = 42; + break; + case 3: + *null_pointer_to_volatile_int = 42; + break; + case 4: + break; + default: + abort (); + } + + /* Validate that the alternate stack did not overflow. */ + check_alternate_stack_no_overflow (); + + printf ("Test passed.\n"); + exit (0);
View file
_service:tar_scm:libsigsegv-2.14.tar.gz/tests/test-segv-dispatcher1.c
Added
@@ -0,0 +1,163 @@ +/* Test the dispatcher. + Copyright (C) 2002-2006, 2008, 2011, 2016, 2021 Bruno Haible <bruno@clisp.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +#ifndef _MSC_VER +# include <config.h> +#endif + +#include "sigsegv.h" +#include <stdint.h> +#include <stdio.h> + +#if HAVE_SIGSEGV_RECOVERY + +#include "mmap-anon-util.h" +#include <stdlib.h> + +static sigsegv_dispatcher dispatcher; + +static volatile unsigned int logcount = 0; +static volatile uintptr_t logdata10; + +/* Note about SIGSEGV_FAULT_ADDRESS_ALIGNMENT: It does not matter whether + fault_address is rounded off here because all intervals that we pass to + sigsegv_register are page-aligned. */ + +static int +area_handler (void *fault_address, void *user_arg) +{ + uintptr_t area = *(uintptr_t *)user_arg; + logdatalogcount++ = area; + if (logcount >= sizeof (logdata) / sizeof (logdata0)) + abort (); + if (!((uintptr_t)fault_address >= area + && (uintptr_t)fault_address - area < 0x4000)) + abort (); + if (mprotect ((void *) area, 0x4000, PROT_READ_WRITE) == 0) + return 1; + return 0; +} + +static int +handler (void *fault_address, int serious) +{ + return sigsegv_dispatch (&dispatcher, fault_address); +} + +static void +barrier () +{ +} + +int +main () +{ + int prot_unwritable; + void *p; + uintptr_t area1; + uintptr_t area2; + uintptr_t area3; + + /* Preparations. */ +#if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO + zero_fd = open ("/dev/zero", O_RDONLY, 0644); +#endif + sigsegv_init (&dispatcher); + sigsegv_install_handler (&handler); + +#if defined __linux__ && defined __sparc__ + /* On Linux 2.6.26/SPARC64, PROT_READ has the same effect as + PROT_READ | PROT_WRITE. */ + prot_unwritable = PROT_NONE; +#else + prot_unwritable = PROT_READ; +#endif + + /* Setup some mmaped memory. */ + + p = mmap_zeromap ((void *) 0x12340000, 0x4000); + if (p == (void *)(-1)) + { + fprintf (stderr, "mmap_zeromap failed.\n"); + exit (2); + } + area1 = (uintptr_t) p; + sigsegv_register (&dispatcher, (void *) area1, 0x4000, &area_handler, &area1); + if (mprotect ((void *) area1, 0x4000, PROT_NONE) < 0) + { + fprintf (stderr, "mprotect failed.\n"); + exit (2); + } + + p = mmap_zeromap ((void *) 0x0BEE0000, 0x4000); + if (p == (void *)(-1)) + { + fprintf (stderr, "mmap_zeromap failed.\n"); + exit (2); + } + area2 = (uintptr_t) p; + sigsegv_register (&dispatcher, (void *) area2, 0x4000, &area_handler, &area2); + if (mprotect ((void *) area2, 0x4000, prot_unwritable) < 0) + { + fprintf (stderr, "mprotect failed.\n"); + exit (2); + } + if (mprotect ((void *) area2, 0x4000, PROT_READ_WRITE) < 0 + || mprotect ((void *) area2, 0x4000, prot_unwritable) < 0) + { + fprintf (stderr, "mprotect failed.\n"); + exit (2); + } + + p = mmap_zeromap ((void *) 0x06990000, 0x4000); + if (p == (void *)(-1)) + { + fprintf (stderr, "mmap_zeromap failed.\n"); + exit (2); + } + area3 = (uintptr_t) p; + sigsegv_register (&dispatcher, (void *) area3, 0x4000, &area_handler, &area3); + mprotect ((void *) area3, 0x4000, prot_unwritable); + + /* This access should call the handler. */ + ((volatile int *)area2)230 = 22; + /* This access should call the handler. */ + ((volatile int *)area3)412 = 33; + /* This access should not give a signal. */ + ((volatile int *)area2)135 = 22; + /* This access should call the handler. */ + ((volatile int *)area1)612 = 11; + + barrier(); + + /* Check that the handler was called three times. */ + if (logcount != 3) + exit (1); + if (!(logdata0 == area2 && logdata1 == area3 && logdata2 == area1)) + exit (1); + printf ("Test passed.\n"); + return 0; +} + +#else + +int +main () +{ + return 77; +} + +#endif
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2