The build took 00h 01m 02s and was SUCCESSFUL.
The program in this build is written in the following languages, according to sloccount:
SLOC | Language |
---|---|
10,567 |
sh |
3,721 |
ansic |
1,769 |
makefile |
16,057 |
total |
The process tree of the build process is here.
To avoid scrolling, you may jump to the last line of the
invocation of makepkg
that was used to build this
package.
Removed vanilla repositories from pacman.conf and added:
Copied permanent toolchain into container-local sysroot
/toolchain_root/sysroot --> /sysroot/sysroot
/toolchain_root/lib --> /sysroot/lib
/toolchain_root/sbin --> /sysroot/sbin
/toolchain_root/lib64 --> /sysroot/lib64
/toolchain_root/etc --> /sysroot/etc
/toolchain_root/share --> /sysroot/share
/toolchain_root/bin --> /sysroot/bin
/toolchain_root/var --> /sysroot/var
/toolchain_root/usr --> /sysroot/usr
/toolchain_root/glibc-build --> /sysroot/glibc-build
/toolchain_root/x86_64-pc-linux-gnu --> /sysroot/x86_64-pc-linux-gnu
/toolchain_root/include --> /sysroot/include
/toolchain_root/libexec --> /sysroot/libexec
CMD: sudo -u tuscan PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin CC=clang CXX=clang++ red makepkg --noextract --syncdeps --skipinteg --skippgpcheck --skipchecksums --noconfirm --nocolor --log --noprogressbar --nocheck
==> Making package: libsigsegv 2.10-2 (Thu Apr 13 19:46:03 UTC 2017)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting build()...
configure: WARNING: if you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used
Build Tools:
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for x86_64-unknown-linux-strip... no
checking for strip... strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for x86_64-unknown-linux-gcc... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking for clang option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of clang... none
checking how to run the C preprocessor... clang -E
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking host platform... x86_64-unknown-linux4.10.6-gnu-glibc2.23
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by clang... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for x86_64-unknown-linux-objdump... no
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for x86_64-unknown-linux-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for x86_64-unknown-linux-ar... no
checking for ar... ar
checking for archiver @FILE support... @
checking for x86_64-unknown-linux-strip... strip
checking for x86_64-unknown-linux-ranlib... no
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from clang object... ok
checking for sysroot... no
checking for x86_64-unknown-linux-mt... no
checking for mt... no
checking if : is a manifest tool... no
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if clang supports -fno-rtti -fno-exceptions... yes
checking for clang option to produce PIC... -fPIC -DPIC
checking if clang PIC flag -fPIC -DPIC works... yes
checking if clang static flag -static works... yes
checking if clang supports -c -o file.o... yes
checking if clang supports -c -o file.o... (cached) yes
checking whether the clang linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
Optional Platform Environment:
checking sys/signal.h usability... yes
checking sys/signal.h presence... yes
checking for sys/signal.h... yes
checking for unistd.h... (cached) yes
checking for getpagesize... yes
checking for sysconf(_SC_PAGESIZE)... yes
checking for PAGESIZE in limits.h... no
checking for mmap with MAP_ANON... yes
checking for mmap with MAP_ANONYMOUS... yes
checking for mmap of /dev/zero... yes
checking whether a fault handler according to POSIX works... yes
checking whether a fault handler according to Linux/i386 works... no
checking whether a fault handler according to old Linux/i386 works... no
checking whether a fault handler according to Linux/m68k works... no
checking whether a fault handler according to Linux/PowerPC works... no
checking whether a fault handler according to Linux/HPPA works... no
checking whether a fault handler according to BSD works... no
checking whether a fault handler according to IRIX works... no
checking whether a fault handler according to HP-UX HPPA works... no
checking whether a fault handler according to OSF/1 Alpha works... no
checking whether a fault handler according to NetBSD Alpha works... no
checking whether a fault handler according to AIX works... no
checking whether a fault handler according to MacOSX/Darwin7 PowerPC works... no
checking whether a fault handler according to MacOSX/Darwin5 PowerPC works... no
checking whether a fault handler according to Hurd works... no
checking ucontext.h usability... yes
checking ucontext.h presence... yes
checking for ucontext.h... yes
checking for the fault handler specifics... fault-linux-i386.h
checking if the system supports catching SIGSEGV... yes
checking for stack direction... grows down
checking for PIOCMAP in sys/procfs.h... no
checking for mquery... no
checking for mincore... yes
checking for getrlimit... yes
checking for setrlimit... yes
checking for sigaltstack... yes
checking for stack_t... yes
checking for working sigaltstack... yes
checking for correct stack_t interpretation... yes
checking whether a signal handler can be left through longjmp... yes
checking whether a signal handler can be left through longjmp and sigaltstack... yes
checking whether a signal handler can be left through longjmp and setcontext... yes
checking whether a signal handler can be left through siglongjmp... yes
checking whether a signal handler can be left through siglongjmp and sigaltstack... yes
checking whether a signal handler can be left through siglongjmp and setcontext... yes
checking if the system supports catching stack overflow... yes
checking for uintptr_t... yes
Build Parameters:
checking whether to activate relocatable installation... no
Output Substitution:
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/sigsegv.h
config.status: creating tests/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
Now please type 'make' to compile. Good luck.
make TARGETSTACK=" all" all-recursive
make[1]: Entering directory '/tmp/libsigsegv/src/libsigsegv-2.10'
Making all in src
make[2]: Entering directory '/tmp/libsigsegv/src/libsigsegv-2.10/src'
/bin/sh ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c -o handler.lo handler.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c handler.c -fPIC -DPIC -o .libs/handler.o
libtool: compile: clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c handler.c -o handler.o >/dev/null 2>&1
/bin/sh ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c -o stackvma.lo stackvma.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c stackvma.c -fPIC -DPIC -o .libs/stackvma.o
libtool: compile: clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c stackvma.c -o stackvma.o >/dev/null 2>&1
/bin/sh ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c -o leave.lo leave.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c leave.c -fPIC -DPIC -o .libs/leave.o
libtool: compile: clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c leave.c -o leave.o >/dev/null 2>&1
/bin/sh ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c -o dispatcher.lo dispatcher.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c dispatcher.c -fPIC -DPIC -o .libs/dispatcher.o
libtool: compile: clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c dispatcher.c -o dispatcher.o >/dev/null 2>&1
/bin/sh ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c -o version.lo version.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c version.c -fPIC -DPIC -o .libs/version.o
libtool: compile: clang -DHAVE_CONFIG_H -I. -I.. -I. -I. -c version.c -o version.o >/dev/null 2>&1
/bin/sh ../libtool --tag=CC --mode=link clang -rpath /usr/lib -version-info 2:3:0 -lc -no-undefined -o libsigsegv.la -rpath /usr/lib handler.lo stackvma.lo leave.lo dispatcher.lo version.lo
libtool: link: clang -shared -fPIC -DPIC .libs/handler.o .libs/stackvma.o .libs/leave.o .libs/dispatcher.o .libs/version.o -lc -Wl,-soname -Wl,libsigsegv.so.2 -o .libs/libsigsegv.so.2.0.3
libtool: link: (cd ".libs" && rm -f "libsigsegv.so.2" && ln -s "libsigsegv.so.2.0.3" "libsigsegv.so.2")
libtool: link: (cd ".libs" && rm -f "libsigsegv.so" && ln -s "libsigsegv.so.2.0.3" "libsigsegv.so")
libtool: link: ar cru .libs/libsigsegv.a handler.o stackvma.o leave.o dispatcher.o version.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libsigsegv.a
libtool: link: ( cd ".libs" && rm -f "libsigsegv.la" && ln -s "../libsigsegv.la" "libsigsegv.la" )
make[2]: Leaving directory '/tmp/libsigsegv/src/libsigsegv-2.10/src'
Making all in tests
make[2]: Entering directory '/tmp/libsigsegv/src/libsigsegv-2.10/tests'
clang -DHAVE_CONFIG_H -I. -I.. -I../src -c sigsegv1.c
/bin/sh ../libtool --tag=CC --mode=link clang -o sigsegv1 sigsegv1.o ../src/libsigsegv.la
libtool: link: clang -o .libs/sigsegv1 sigsegv1.o ../src/.libs/libsigsegv.so -lc
clang -DHAVE_CONFIG_H -I. -I.. -I../src -c sigsegv2.c
/bin/sh ../libtool --tag=CC --mode=link clang -o sigsegv2 sigsegv2.o ../src/libsigsegv.la
libtool: link: clang -o .libs/sigsegv2 sigsegv2.o ../src/.libs/libsigsegv.so -lc
clang -DHAVE_CONFIG_H -I. -I.. -I../src -c sigsegv3.c
/bin/sh ../libtool --tag=CC --mode=link clang -o sigsegv3 sigsegv3.o ../src/libsigsegv.la
libtool: link: clang -o .libs/sigsegv3 sigsegv3.o ../src/.libs/libsigsegv.so -lc
clang -DHAVE_CONFIG_H -I. -I.. -I../src -c stackoverflow1.c
/bin/sh ../libtool --tag=CC --mode=link clang -o stackoverflow1 stackoverflow1.o ../src/libsigsegv.la
libtool: link: clang -o .libs/stackoverflow1 stackoverflow1.o ../src/.libs/libsigsegv.so -lc
clang -DHAVE_CONFIG_H -I. -I.. -I../src -c stackoverflow2.c
/bin/sh ../libtool --tag=CC --mode=link clang -o stackoverflow2 stackoverflow2.o ../src/libsigsegv.la
libtool: link: clang -o .libs/stackoverflow2 stackoverflow2.o ../src/.libs/libsigsegv.so -lc
make[2]: Leaving directory '/tmp/libsigsegv/src/libsigsegv-2.10/tests'
make[2]: Entering directory '/tmp/libsigsegv/src/libsigsegv-2.10'
Now please type 'make check' to run a quick test suite. Hope it works.
make[2]: Leaving directory '/tmp/libsigsegv/src/libsigsegv-2.10'
make[1]: Leaving directory '/tmp/libsigsegv/src/libsigsegv-2.10'
==> Entering fakeroot environment...
==> Starting package()...
Making install in src
make[1]: Entering directory '/tmp/libsigsegv/src/libsigsegv-2.10/src'
make[2]: Entering directory '/tmp/libsigsegv/src/libsigsegv-2.10/src'
test -z "/usr/lib" || /usr/bin/mkdir -p "/tmp/libsigsegv/pkg/libsigsegv/usr/lib"
/bin/sh ../libtool --mode=install /usr/bin/install -c libsigsegv.la '/tmp/libsigsegv/pkg/libsigsegv/usr/lib'
libtool: install: /usr/bin/install -c .libs/libsigsegv.so.2.0.3 /tmp/libsigsegv/pkg/libsigsegv/usr/lib/libsigsegv.so.2.0.3
libtool: install: (cd /tmp/libsigsegv/pkg/libsigsegv/usr/lib && { ln -s -f libsigsegv.so.2.0.3 libsigsegv.so.2 || { rm -f libsigsegv.so.2 && ln -s libsigsegv.so.2.0.3 libsigsegv.so.2; }; })
libtool: install: (cd /tmp/libsigsegv/pkg/libsigsegv/usr/lib && { ln -s -f libsigsegv.so.2.0.3 libsigsegv.so || { rm -f libsigsegv.so && ln -s libsigsegv.so.2.0.3 libsigsegv.so; }; })
libtool: install: /usr/bin/install -c .libs/libsigsegv.lai /tmp/libsigsegv/pkg/libsigsegv/usr/lib/libsigsegv.la
libtool: install: /usr/bin/install -c .libs/libsigsegv.a /tmp/libsigsegv/pkg/libsigsegv/usr/lib/libsigsegv.a
libtool: install: chmod 644 /tmp/libsigsegv/pkg/libsigsegv/usr/lib/libsigsegv.a
libtool: install: ranlib /tmp/libsigsegv/pkg/libsigsegv/usr/lib/libsigsegv.a
libtool: install: warning: remember to run `libtool --finish /usr/lib'
/bin/sh /tmp/libsigsegv/src/libsigsegv-2.10/build-aux/install-sh -d /tmp/libsigsegv/pkg/libsigsegv/usr/include
/usr/bin/install -c -m 644 sigsegv.h /tmp/libsigsegv/pkg/libsigsegv/usr/include/sigsegv.h
make[2]: Leaving directory '/tmp/libsigsegv/src/libsigsegv-2.10/src'
make[1]: Leaving directory '/tmp/libsigsegv/src/libsigsegv-2.10/src'
Making install in tests
make[1]: Entering directory '/tmp/libsigsegv/src/libsigsegv-2.10/tests'
make[2]: Entering directory '/tmp/libsigsegv/src/libsigsegv-2.10/tests'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/tmp/libsigsegv/src/libsigsegv-2.10/tests'
make[1]: Leaving directory '/tmp/libsigsegv/src/libsigsegv-2.10/tests'
make[1]: Entering directory '/tmp/libsigsegv/src/libsigsegv-2.10'
make[2]: Entering directory '/tmp/libsigsegv/src/libsigsegv-2.10'
make[2]: Nothing to be done for 'install-exec-am'.
make TARGETSTACK="install-recursive install-am install-data-am" install-data-hook
make[3]: Entering directory '/tmp/libsigsegv/src/libsigsegv-2.10'
Now use the package; you can remove it later via 'make uninstall'.
make[3]: Leaving directory '/tmp/libsigsegv/src/libsigsegv-2.10'
make[2]: Leaving directory '/tmp/libsigsegv/src/libsigsegv-2.10'
make[1]: Leaving directory '/tmp/libsigsegv/src/libsigsegv-2.10'
==> Tidying install...
-> Removing doc files...
-> Purging unwanted files...
==> Checking for packaging issue...
==> Creating package "libsigsegv"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
error: invalid option '--noprogressbar'
-> Generating .MTREE file...
-> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: libsigsegv 2.10-2 (Thu Apr 13 19:46:36 UTC 2017)
CMD: pacman --query --file libsigsegv-2.10-2-x86_64.pkg.tar.xz
Creating hybrid package for 'libsigsegv'
Trying to find vanilla package 'libsigsegv'...
CMD: pacman --query --file /mirror/libsigsegv-2.10-2.pkg.tar.xz
Package file has the following structure:
/.PKGINFO
/.MTREE
/usr/lib/libsigsegv.so
/usr/lib/libsigsegv.so.2.0.3
/usr/lib/libsigsegv.so.2
/usr/include/sigsegv.h
/sysroot/usr/lib/libsigsegv.so.2.0.3
/sysroot/usr/lib/libsigsegv.so.2
/sysroot/usr/lib/libsigsegv.so
/sysroot/usr/lib/libsigsegv.la
/sysroot/usr/lib/libsigsegv.a
/sysroot/usr/include/sigsegv.h
Generating .MTREE
CMD: bsdtar -czf .MTREE --format=mtree --options=!all,use-set,type,uid,mode,time,size,md5,sha256,link .PKGINFO usr sysroot
Tar-ing up files
CMD: bsdtar -cf - .PKGINFO usr sysroot .MTREE
CMD: xz -c -z
Successfully ran bsdtar -cf - .PKGINFO usr sysroot .MTREE | xz -c -z
CMD: bsdtar -tqf libsigsegv.pkg.tar.xz .PKGINFO
Created package at path /var/cache/pacman/pkg/libsigsegv.pkg.tar.xz
Attempting to access local repository, attempt 1
CMD: repo-add /var/cache/pacman/pkg/tuscan.db.tar /var/cache/pacman/pkg/libsigsegv.pkg.tar.xz
==> Extracting database to a temporary location...
==> Extracting database to a temporary location...
==> Adding package '/var/cache/pacman/pkg/libsigsegv.pkg.tar.xz'
-> Computing checksums...
-> Creating 'desc' db entry...
-> Creating 'files' db entry...
==> Creating updated database file '/var/cache/pacman/pkg/tuscan.db.tar'
Printing config logfiles
CMD: config logfiles '/tmp/libsigsegv/src/libsigsegv-2.10/config.log'
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by configure, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ ./configure --host=x86_64-unknown-linux --prefix=/usr --enable-shared
## --------- ##
## Platform. ##
## --------- ##
hostname = 0713cef7d819
uname -m = x86_64
uname -r = 4.10.6-1-ARCH
uname -s = Linux
uname -v = #1 SMP PREEMPT Mon Mar 27 08:28:22 CEST 2017
/usr/bin/uname -p = unknown
/bin/uname -X = unknown
/bin/arch = unknown
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown
PATH: /usr/bin
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
## ----------- ##
## Core tests. ##
## ----------- ##
configure:2335: checking for a BSD-compatible install
configure:2403: result: /usr/bin/install -c
configure:2414: checking whether build environment is sane
configure:2464: result: yes
configure:2513: checking for x86_64-unknown-linux-strip
configure:2543: result: no
configure:2553: checking for strip
configure:2569: found /usr/bin/strip
configure:2580: result: strip
configure:2605: checking for a thread-safe mkdir -p
configure:2644: result: /usr/bin/mkdir -p
configure:2657: checking for gawk
configure:2673: found /usr/bin/gawk
configure:2684: result: gawk
configure:2695: checking whether make sets $(MAKE)
configure:2717: result: yes
configure:2810: checking for x86_64-unknown-linux-gcc
configure:2837: result: clang
configure:3106: checking for C compiler version
configure:3115: clang --version >&5
clang version 3.8.0 (tags/RELEASE_380/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
configure:3126: $? = 0
configure:3115: clang -v >&5
clang version 3.8.0 (tags/RELEASE_380/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.1
Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/6.1.1
Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/6.1.1
Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1
Candidate multilib: .;@m64
... rest of stderr output deleted ...
configure:3126: $? = 0
configure:3115: clang -V >&5
clang-3.8: error: argument to '-V' is missing (expected 1 value)
clang-3.8: error: no input files
configure:3126: $? = 1
configure:3115: clang -qversion >&5
clang-3.8: error: unknown argument: '-qversion'
clang-3.8: error: no input files
configure:3126: $? = 1
configure:3146: checking whether the C compiler works
configure:3168: clang conftest.c >&5
configure:3172: $? = 0
configure:3220: result: yes
configure:3223: checking for C compiler default output file name
configure:3225: result: a.out
configure:3231: checking for suffix of executables
configure:3238: clang -o conftest conftest.c >&5
configure:3242: $? = 0
configure:3264: result:
configure:3286: checking whether we are cross compiling
configure:3294: clang -o conftest conftest.c >&5
configure:3298: $? = 0
configure:3305: ./conftest
configure:3309: $? = 0
configure:3324: result: no
configure:3329: checking for suffix of object files
configure:3351: clang -c conftest.c >&5
configure:3355: $? = 0
configure:3376: result: o
configure:3380: checking whether we are using the GNU C compiler
configure:3399: clang -c conftest.c >&5
configure:3399: $? = 0
configure:3408: result: yes
configure:3417: checking whether clang accepts -g
configure:3437: clang -c -g conftest.c >&5
configure:3437: $? = 0
configure:3478: result: yes
configure:3495: checking for clang option to accept ISO C89
configure:3559: clang -c conftest.c >&5
configure:3559: $? = 0
configure:3572: result: none needed
configure:3603: checking for style of include used by make
configure:3631: result: GNU
configure:3656: checking dependency style of clang
configure:3766: result: none
configure:3786: checking how to run the C preprocessor
configure:3817: clang -E conftest.c
configure:3817: $? = 0
configure:3831: clang -E conftest.c
conftest.c:11:10: fatal error: 'ac_nonexistent.h' file not found
#include
^
1 error generated.
configure:3831: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| /* end confdefs.h. */
| #include
configure:3856: result: clang -E
configure:3876: clang -E conftest.c
configure:3876: $? = 0
configure:3890: clang -E conftest.c
conftest.c:11:10: fatal error: 'ac_nonexistent.h' file not found
#include
^
1 error generated.
configure:3890: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| /* end confdefs.h. */
| #include
configure:3923: checking build system type
configure:3937: result: x86_64-unknown-linux-gnu
configure:3957: checking host system type
configure:3970: result: x86_64-unknown-linux-gnu
configure:3993: checking host platform
configure:4012: result: x86_64-unknown-linux4.10.6-gnu-glibc2.23
configure:4067: checking how to print strings
configure:4094: result: printf
configure:4115: checking for a sed that does not truncate output
configure:4179: result: /usr/bin/sed
configure:4197: checking for grep that handles long lines and -e
configure:4255: result: /usr/bin/grep
configure:4260: checking for egrep
configure:4322: result: /usr/bin/grep -E
configure:4327: checking for fgrep
configure:4389: result: /usr/bin/grep -F
configure:4424: checking for ld used by clang
configure:4491: result: /usr/bin/ld
configure:4498: checking if the linker (/usr/bin/ld) is GNU ld
configure:4513: result: yes
configure:4525: checking for BSD- or MS-compatible name lister (nm)
configure:4574: result: /usr/bin/nm -B
configure:4704: checking the name lister (/usr/bin/nm -B) interface
configure:4711: clang -c conftest.c >&5
configure:4714: /usr/bin/nm -B "conftest.o"
configure:4717: output
0000000000000000 B some_variable
configure:4724: result: BSD nm
configure:4727: checking whether ln -s works
configure:4731: result: yes
configure:4739: checking the maximum length of command line arguments
configure:4864: result: 1572864
configure:4881: checking whether the shell understands some XSI constructs
configure:4891: result: yes
configure:4895: checking whether the shell understands "+="
configure:4901: result: yes
configure:4936: checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format
configure:4976: result: func_convert_file_noop
configure:4983: checking how to convert x86_64-unknown-linux-gnu file names to toolchain format
configure:5003: result: func_convert_file_noop
configure:5010: checking for /usr/bin/ld option to reload object files
configure:5017: result: -r
configure:5051: checking for x86_64-unknown-linux-objdump
configure:5081: result: no
configure:5091: checking for objdump
configure:5107: found /usr/bin/objdump
configure:5118: result: objdump
configure:5150: checking how to recognize dependent libraries
configure:5352: result: pass_all
configure:5397: checking for x86_64-unknown-linux-dlltool
configure:5427: result: no
configure:5437: checking for dlltool
configure:5467: result: no
configure:5497: checking how to associate runtime and link libraries
configure:5524: result: printf %s\n
configure:5541: checking for x86_64-unknown-linux-ar
configure:5571: result: no
configure:5585: checking for ar
configure:5601: found /usr/bin/ar
configure:5612: result: ar
configure:5649: checking for archiver @FILE support
configure:5666: clang -c conftest.c >&5
configure:5666: $? = 0
configure:5669: ar cru libconftest.a @conftest.lst >&5
ar: `u' modifier ignored since `D' is the default (see `U')
configure:5672: $? = 0
configure:5677: ar cru libconftest.a @conftest.lst >&5
ar: `u' modifier ignored since `D' is the default (see `U')
ar: conftest.o: No such file or directory
configure:5680: $? = 1
configure:5692: result: @
configure:5710: checking for x86_64-unknown-linux-strip
configure:5737: result: strip
configure:5809: checking for x86_64-unknown-linux-ranlib
configure:5839: result: no
configure:5849: checking for ranlib
configure:5865: found /usr/bin/ranlib
configure:5876: result: ranlib
configure:5978: checking command to parse /usr/bin/nm -B output from clang object
configure:6097: clang -c conftest.c >&5
configure:6100: $? = 0
configure:6104: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm
configure:6107: $? = 0
configure:6173: clang -o conftest conftest.c conftstm.o >&5
configure:6176: $? = 0
configure:6214: result: ok
configure:6251: checking for sysroot
configure:6281: result: no
configure:6358: clang -c conftest.c >&5
configure:6361: $? = 0
configure:6484: checking for x86_64-unknown-linux-mt
configure:6514: result: no
configure:6524: checking for mt
configure:6554: result: no
configure:6574: checking if : is a manifest tool
configure:6580: : '-?'
configure:6588: result: no
configure:7216: checking for ANSI C header files
configure:7236: clang -c conftest.c >&5
configure:7236: $? = 0
configure:7309: clang -o conftest conftest.c >&5
configure:7309: $? = 0
configure:7309: ./conftest
configure:7309: $? = 0
configure:7320: result: yes
configure:7333: checking for sys/types.h
configure:7333: clang -c conftest.c >&5
configure:7333: $? = 0
configure:7333: result: yes
configure:7333: checking for sys/stat.h
configure:7333: clang -c conftest.c >&5
configure:7333: $? = 0
configure:7333: result: yes
configure:7333: checking for stdlib.h
configure:7333: clang -c conftest.c >&5
configure:7333: $? = 0
configure:7333: result: yes
configure:7333: checking for string.h
configure:7333: clang -c conftest.c >&5
configure:7333: $? = 0
configure:7333: result: yes
configure:7333: checking for memory.h
configure:7333: clang -c conftest.c >&5
configure:7333: $? = 0
configure:7333: result: yes
configure:7333: checking for strings.h
configure:7333: clang -c conftest.c >&5
configure:7333: $? = 0
configure:7333: result: yes
configure:7333: checking for inttypes.h
configure:7333: clang -c conftest.c >&5
configure:7333: $? = 0
configure:7333: result: yes
configure:7333: checking for stdint.h
configure:7333: clang -c conftest.c >&5
configure:7333: $? = 0
configure:7333: result: yes
configure:7333: checking for unistd.h
configure:7333: clang -c conftest.c >&5
configure:7333: $? = 0
configure:7333: result: yes
configure:7347: checking for dlfcn.h
configure:7347: clang -c conftest.c >&5
configure:7347: $? = 0
configure:7347: result: yes
configure:7533: checking for objdir
configure:7548: result: .libs
configure:7819: checking if clang supports -fno-rtti -fno-exceptions
configure:7837: clang -c -fno-rtti -fno-exceptions conftest.c >&5
configure:7841: $? = 0
configure:7854: result: yes
configure:8164: checking for clang option to produce PIC
configure:8171: result: -fPIC -DPIC
configure:8179: checking if clang PIC flag -fPIC -DPIC works
configure:8197: clang -c -fPIC -DPIC -DPIC conftest.c >&5
configure:8201: $? = 0
configure:8214: result: yes
configure:8243: checking if clang static flag -static works
configure:8271: result: yes
configure:8286: checking if clang supports -c -o file.o
configure:8307: clang -c -o out/conftest2.o conftest.c >&5
configure:8311: $? = 0
configure:8333: result: yes
configure:8341: checking if clang supports -c -o file.o
configure:8388: result: yes
configure:8421: checking whether the clang linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:9579: result: yes
configure:9616: checking whether -lc should be explicitly linked in
configure:9624: clang -c conftest.c >&5
configure:9627: $? = 0
configure:9642: clang -shared -fPIC -DPIC conftest.o -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /usr/bin/grep -lc \>/dev/null 2\>\&1
configure:9645: $? = 0
configure:9659: result: no
configure:9824: checking dynamic linker characteristics
configure:10338: clang -o conftest -Wl,-rpath -Wl,/foo conftest.c >&5
configure:10338: $? = 0
configure:10560: result: GNU/Linux ld.so
configure:10667: checking how to hardcode library paths into programs
configure:10692: result: immediate
configure:11232: checking whether stripping libraries is possible
configure:11237: result: yes
configure:11272: checking if libtool supports shared libraries
configure:11274: result: yes
configure:11277: checking whether to build shared libraries
configure:11298: result: yes
configure:11301: checking whether to build static libraries
configure:11305: result: yes
configure:11348: checking sys/signal.h usability
configure:11348: clang -c conftest.c >&5
configure:11348: $? = 0
configure:11348: result: yes
configure:11348: checking sys/signal.h presence
configure:11348: clang -E conftest.c
configure:11348: $? = 0
configure:11348: result: yes
configure:11348: checking for sys/signal.h
configure:11348: result: yes
configure:11387: checking for unistd.h
configure:11387: result: yes
configure:11399: checking for getpagesize
configure:11422: clang -o conftest conftest.c >&5
configure:11422: $? = 0
configure:11430: result: yes
configure:11439: checking for sysconf(_SC_PAGESIZE)
configure:11462: clang -o conftest conftest.c >&5
configure:11462: $? = 0
configure:11470: result: yes
configure:11479: checking for PAGESIZE in limits.h
configure:11497: clang -o conftest conftest.c >&5
conftest.c:33:12: error: use of undeclared identifier 'PAGESIZE'
int pgsz = PAGESIZE;
^
1 error generated.
configure:11497: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| /* end confdefs.h. */
|
| #include
| int
| main ()
| {
| int pgsz = PAGESIZE;
| ;
| return 0;
| }
configure:11505: result: no
configure:11523: checking for mmap with MAP_ANON
configure:11573: clang -o conftest conftest.c >&5
configure:11573: $? = 0
configure:11573: ./conftest
configure:11573: $? = 0
configure:11584: result: yes
configure:11593: checking for mmap with MAP_ANONYMOUS
configure:11645: clang -o conftest conftest.c >&5
configure:11645: $? = 0
configure:11645: ./conftest
configure:11645: $? = 0
configure:11656: result: yes
configure:11665: checking for mmap of /dev/zero
configure:11728: clang -o conftest conftest.c >&5
configure:11728: $? = 0
configure:11728: ./conftest
configure:11728: $? = 0
configure:11739: result: yes
configure:11763: checking whether a fault handler according to POSIX works
configure:11898: clang -o conftest conftest.c >&5
configure:11898: $? = 0
configure:11898: ./conftest
configure:11898: $? = 0
configure:11909: result: yes
configure:11917: checking whether a fault handler according to Linux/i386 works
configure:12053: clang -o conftest conftest.c >&5
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:39:8: error: redefinition of '_fpx_sw_bytes'
struct _fpx_sw_bytes {
^
/usr/include/bits/sigcontext.h:29:8: note: previous definition is here
struct _fpx_sw_bytes
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:84:8: error: redefinition of '_fpreg'
struct _fpreg {
^
/usr/include/bits/sigcontext.h:38:8: note: previous definition is here
struct _fpreg
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:90:8: error: redefinition of '_fpxreg'
struct _fpxreg {
^
/usr/include/bits/sigcontext.h:44:8: note: previous definition is here
struct _fpxreg
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:97:8: error: redefinition of '_xmmreg'
struct _xmmreg {
^
/usr/include/bits/sigcontext.h:51:8: note: previous definition is here
struct _xmmreg
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:179:8: error: redefinition of '_ymmh_state'
struct _ymmh_state {
^
/usr/include/bits/sigcontext.h:182:8: note: previous definition is here
struct _ymmh_state
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:191:8: error: redefinition of '_xstate'
struct _xstate {
^
/usr/include/bits/sigcontext.h:187:8: note: previous definition is here
struct _xstate
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:316:8: error: redefinition of 'sigcontext'
struct sigcontext {
^
/usr/include/bits/sigcontext.h:137:8: note: previous definition is here
struct sigcontext
^
7 errors generated.
configure:12053: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
| #include
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, struct sigcontext sc)
| {
| void *fault_address = (void *) (sc.cr2);
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
|
| action.sa_handler = (void (*) (int)) &sigsegv_handler;
| action.sa_flags = 0;
|
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:12064: result: no
configure:12072: checking whether a fault handler according to old Linux/i386 works
configure:12208: clang -o conftest conftest.c >&5
configure:12208: $? = 0
configure:12208: ./conftest
configure:12208: $? = 3
configure: program exited with status 3
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
|
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, unsigned int more)
| {
| void *fault_address = (void *) (((unsigned long *) &more) [21]);
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
|
| action.sa_handler = (void (*) (int)) &sigsegv_handler;
| action.sa_flags = 0;
|
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:12219: result: no
configure:12227: checking whether a fault handler according to Linux/m68k works
configure:12365: clang -o conftest conftest.c >&5
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:39:8: error: redefinition of '_fpx_sw_bytes'
struct _fpx_sw_bytes {
^
/usr/include/bits/sigcontext.h:29:8: note: previous definition is here
struct _fpx_sw_bytes
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:84:8: error: redefinition of '_fpreg'
struct _fpreg {
^
/usr/include/bits/sigcontext.h:38:8: note: previous definition is here
struct _fpreg
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:90:8: error: redefinition of '_fpxreg'
struct _fpxreg {
^
/usr/include/bits/sigcontext.h:44:8: note: previous definition is here
struct _fpxreg
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:97:8: error: redefinition of '_xmmreg'
struct _xmmreg {
^
/usr/include/bits/sigcontext.h:51:8: note: previous definition is here
struct _xmmreg
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:179:8: error: redefinition of '_ymmh_state'
struct _ymmh_state {
^
/usr/include/bits/sigcontext.h:182:8: note: previous definition is here
struct _ymmh_state
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:191:8: error: redefinition of '_xstate'
struct _xstate {
^
/usr/include/bits/sigcontext.h:187:8: note: previous definition is here
struct _xstate
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:316:8: error: redefinition of 'sigcontext'
struct sigcontext {
^
/usr/include/bits/sigcontext.h:137:8: note: previous definition is here
struct sigcontext
^
In file included from conftest.c:39:
././src/fault-linux-m68k-old.c:22:22: error: no member named 'sc_formatvec' in 'struct sigcontext'
int format = (scp->sc_formatvec >> 12) & 0xf;
~~~ ^
8 errors generated.
configure:12365: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
| #include
| #include "./src/fault-linux-m68k-old.c"
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, int code, struct sigcontext *scp)
| {
| void *fault_address = (void *) (get_fault_addr (scp));
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
|
| action.sa_handler = (void (*) (int)) &sigsegv_handler;
| action.sa_flags = 0;
|
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:12376: result: no
configure:12384: checking whether a fault handler according to Linux/PowerPC works
configure:12520: clang -o conftest conftest.c >&5
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:39:8: error: redefinition of '_fpx_sw_bytes'
struct _fpx_sw_bytes {
^
/usr/include/bits/sigcontext.h:29:8: note: previous definition is here
struct _fpx_sw_bytes
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:84:8: error: redefinition of '_fpreg'
struct _fpreg {
^
/usr/include/bits/sigcontext.h:38:8: note: previous definition is here
struct _fpreg
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:90:8: error: redefinition of '_fpxreg'
struct _fpxreg {
^
/usr/include/bits/sigcontext.h:44:8: note: previous definition is here
struct _fpxreg
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:97:8: error: redefinition of '_xmmreg'
struct _xmmreg {
^
/usr/include/bits/sigcontext.h:51:8: note: previous definition is here
struct _xmmreg
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:179:8: error: redefinition of '_ymmh_state'
struct _ymmh_state {
^
/usr/include/bits/sigcontext.h:182:8: note: previous definition is here
struct _ymmh_state
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:191:8: error: redefinition of '_xstate'
struct _xstate {
^
/usr/include/bits/sigcontext.h:187:8: note: previous definition is here
struct _xstate
^
In file included from conftest.c:38:
/usr/include/asm/sigcontext.h:316:8: error: redefinition of 'sigcontext'
struct sigcontext {
^
/usr/include/bits/sigcontext.h:137:8: note: previous definition is here
struct sigcontext
^
conftest.c:69:40: error: no member named 'regs' in 'struct sigcontext'
void *fault_address = (void *) (scp->regs->dar);
~~~ ^
8 errors generated.
configure:12520: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
| #include
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, struct sigcontext *scp)
| {
| void *fault_address = (void *) (scp->regs->dar);
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
|
| action.sa_handler = (void (*) (int)) &sigsegv_handler;
| action.sa_flags = 0;
|
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:12531: result: no
configure:12539: checking whether a fault handler according to Linux/HPPA works
configure:12674: clang -o conftest conftest.c >&5
configure:12674: $? = 0
configure:12674: ./conftest
configure:12674: $? = 3
configure: program exited with status 3
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
|
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, siginfo_t *sip, void *ucp)
| {
| void *fault_address = (void *) (sip->si_ptr);
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
| action.sa_sigaction = &sigsegv_handler;
| action.sa_flags = SA_SIGINFO;
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:12685: result: no
configure:12693: checking whether a fault handler according to BSD works
configure:12829: clang -o conftest conftest.c >&5
configure:12829: $? = 0
configure:12829: ./conftest
configure:12829: $? = 3
configure: program exited with status 3
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
|
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, int code, struct sigcontext *scp, void *addr)
| {
| void *fault_address = (void *) (addr);
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
|
| action.sa_handler = (void (*) (int)) &sigsegv_handler;
| action.sa_flags = 0;
|
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:12840: result: no
configure:12848: checking whether a fault handler according to IRIX works
configure:12984: clang -o conftest conftest.c >&5
conftest.c:69:56: error: no member named 'sc_badvaddr' in 'struct sigcontext'
void *fault_address = (void *) ((unsigned long) scp->sc_badvaddr);
~~~ ^
1 error generated.
configure:12984: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
|
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, int code, struct sigcontext *scp)
| {
| void *fault_address = (void *) ((unsigned long) scp->sc_badvaddr);
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
|
| action.sa_handler = (void (*) (int)) &sigsegv_handler;
| action.sa_flags = 0;
|
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:12995: result: no
configure:13003: checking whether a fault handler according to HP-UX HPPA works
configure:13149: clang -o conftest conftest.c >&5
conftest.c:72:50: error: no member named 'sc_sl' in 'struct sigcontext'
void *fault_address = (void *) (GET_CR21 (scp->sc_sl.sl_ss));
~~~ ^
conftest.c:40:40: note: expanded from macro 'GET_CR21'
#define GET_CR21(mc) (USE_64BIT_REGS(mc) ? (mc).ss_wide.ss_64.ss_cr21 : (mc).ss_narrow.ss_cr21)
^~
conftest.c:39:33: note: expanded from macro 'USE_64BIT_REGS'
#define USE_64BIT_REGS(mc) (((mc).ss_flags & SS_WIDEREGS) && ((mc).ss_flags & SS_NARROWISINVALID))
^~
conftest.c:72:35: error: use of undeclared identifier 'SS_WIDEREGS'
void *fault_address = (void *) (GET_CR21 (scp->sc_sl.sl_ss));
^
conftest.c:40:25: note: expanded from macro 'GET_CR21'
#define GET_CR21(mc) (USE_64BIT_REGS(mc) ? (mc).ss_wide.ss_64.ss_cr21 : (mc).ss_narrow.ss_cr21)
^
conftest.c:39:48: note: expanded from macro 'USE_64BIT_REGS'
#define USE_64BIT_REGS(mc) (((mc).ss_flags & SS_WIDEREGS) && ((mc).ss_flags & SS_NARROWISINVALID))
^
conftest.c:72:50: error: no member named 'sc_sl' in 'struct sigcontext'
void *fault_address = (void *) (GET_CR21 (scp->sc_sl.sl_ss));
~~~ ^
conftest.c:40:40: note: expanded from macro 'GET_CR21'
#define GET_CR21(mc) (USE_64BIT_REGS(mc) ? (mc).ss_wide.ss_64.ss_cr21 : (mc).ss_narrow.ss_cr21)
^~
conftest.c:39:66: note: expanded from macro 'USE_64BIT_REGS'
#define USE_64BIT_REGS(mc) (((mc).ss_flags & SS_WIDEREGS) && ((mc).ss_flags & SS_NARROWISINVALID))
^~
conftest.c:72:35: error: use of undeclared identifier 'SS_NARROWISINVALID'
void *fault_address = (void *) (GET_CR21 (scp->sc_sl.sl_ss));
^
conftest.c:40:25: note: expanded from macro 'GET_CR21'
#define GET_CR21(mc) (USE_64BIT_REGS(mc) ? (mc).ss_wide.ss_64.ss_cr21 : (mc).ss_narrow.ss_cr21)
^
conftest.c:39:81: note: expanded from macro 'USE_64BIT_REGS'
#define USE_64BIT_REGS(mc) (((mc).ss_flags & SS_WIDEREGS) && ((mc).ss_flags & SS_NARROWISINVALID))
^
conftest.c:72:50: error: no member named 'sc_sl' in 'struct sigcontext'
void *fault_address = (void *) (GET_CR21 (scp->sc_sl.sl_ss));
~~~ ^
conftest.c:40:47: note: expanded from macro 'GET_CR21'
#define GET_CR21(mc) (USE_64BIT_REGS(mc) ? (mc).ss_wide.ss_64.ss_cr21 : (mc).ss_narrow.ss_cr21)
^~
conftest.c:72:50: error: no member named 'sc_sl' in 'struct sigcontext'
void *fault_address = (void *) (GET_CR21 (scp->sc_sl.sl_ss));
~~~ ^
conftest.c:40:76: note: expanded from macro 'GET_CR21'
#define GET_CR21(mc) (USE_64BIT_REGS(mc) ? (mc).ss_wide.ss_64.ss_cr21 : (mc).ss_narrow.ss_cr21)
^~
6 errors generated.
configure:13149: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
|
| #define USE_64BIT_REGS(mc) (((mc).ss_flags & SS_WIDEREGS) && ((mc).ss_flags & SS_NARROWISINVALID))
| #define GET_CR21(mc) (USE_64BIT_REGS(mc) ? (mc).ss_wide.ss_64.ss_cr21 : (mc).ss_narrow.ss_cr21)
|
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, int code, struct sigcontext *scp)
| {
| void *fault_address = (void *) (GET_CR21 (scp->sc_sl.sl_ss));
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
|
| action.sa_handler = (void (*) (int)) &sigsegv_handler;
| action.sa_flags = 0;
|
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:13160: result: no
configure:13168: checking whether a fault handler according to OSF/1 Alpha works
configure:13304: clang -o conftest conftest.c >&5
conftest.c:69:40: error: no member named 'sc_traparg_a0' in 'struct sigcontext'
void *fault_address = (void *) (scp->sc_traparg_a0);
~~~ ^
1 error generated.
configure:13304: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
|
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, int code, struct sigcontext *scp)
| {
| void *fault_address = (void *) (scp->sc_traparg_a0);
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
|
| action.sa_handler = (void (*) (int)) &sigsegv_handler;
| action.sa_flags = 0;
|
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:13315: result: no
configure:13323: checking whether a fault handler according to NetBSD Alpha works
configure:13459: clang -o conftest conftest.c >&5
In file included from conftest.c:38:
././src/fault-netbsd-alpha.c:25:48: error: no member named 'sc_pc' in 'struct sigcontext'
unsigned int instr = *((unsigned int *)(scp->sc_pc));
~~~ ^
././src/fault-netbsd-alpha.c:36:20: error: no member named 'sc_regs' in 'struct sigcontext'
faultaddr = scp->sc_regs[(instr >> 16) & 0x1f];
~~~ ^
2 errors generated.
configure:13459: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
| #include "./src/fault-netbsd-alpha.c"
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, int code, struct sigcontext *scp)
| {
| void *fault_address = (void *) (get_fault_addr (scp));
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
|
| action.sa_handler = (void (*) (int)) &sigsegv_handler;
| action.sa_flags = 0;
|
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:13470: result: no
configure:13478: checking whether a fault handler according to AIX works
configure:13614: clang -o conftest conftest.c >&5
conftest.c:69:40: error: no member named 'sc_jmpbuf' in 'struct sigcontext'
void *fault_address = (void *) (scp->sc_jmpbuf.jmp_context.o_vaddr);
~~~ ^
1 error generated.
configure:13614: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
|
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, int code, struct sigcontext *scp)
| {
| void *fault_address = (void *) (scp->sc_jmpbuf.jmp_context.o_vaddr);
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
|
| action.sa_handler = (void (*) (int)) &sigsegv_handler;
| action.sa_flags = 0;
|
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:13625: result: no
configure:13633: checking whether a fault handler according to MacOSX/Darwin7 PowerPC works
configure:13768: clang -o conftest conftest.c >&5
In file included from conftest.c:38:
././src/fault-macosdarwin7-powerpc.c:43:22: error: member reference type 'mcontext_t' is not a pointer; did you mean to use '.'?
&ucp->uc_mcontext->ss.r0; /* r0..r31 */
~~~~~~~~~~~~~~~~^~
.
././src/fault-macosdarwin7-powerpc.c:43:24: error: no member named 'ss' in 'mcontext_t'
&ucp->uc_mcontext->ss.r0; /* r0..r31 */
~~~~~~~~~~~~~~~~ ^
././src/fault-macosdarwin7-powerpc.c:130:10: warning: cast to 'void *' from smaller integer type 'unsigned int' [-Wint-to-void-pointer-cast]
return (void *) addr;
^
conftest.c:107:21: warning: incompatible pointer types assigning to 'void (*)(int, siginfo_t *, void *)' from 'void (*)(int, siginfo_t *, ucontext_t *)' (aka 'void (*)(int, siginfo_t *, struct ucontext *)') [-Wincompatible-pointer-types]
action.sa_sigaction = &sigsegv_handler;
^ ~~~~~~~~~~~~~~~~
2 warnings and 2 errors generated.
configure:13768: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
| #include "./src/fault-macosdarwin7-powerpc.c"
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, siginfo_t *sip, ucontext_t *ucp)
| {
| void *fault_address = (void *) (get_fault_addr (sip, ucp));
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
| action.sa_sigaction = &sigsegv_handler;
| action.sa_flags = SA_SIGINFO;
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:13779: result: no
configure:13788: checking whether a fault handler according to MacOSX/Darwin5 PowerPC works
configure:13924: clang -o conftest conftest.c >&5
In file included from conftest.c:38:
././src/fault-macosdarwin5-powerpc.c:36:48: error: no member named 'sc_ir' in 'struct sigcontext'
unsigned int instr = *((unsigned int *) scp->sc_ir);
~~~ ^
././src/fault-macosdarwin5-powerpc.c:37:48: error: no member named 'sc_regs' in 'struct sigcontext'
unsigned int *regs = &((unsigned int *) scp->sc_regs)[2];
~~~ ^
././src/fault-macosdarwin5-powerpc.c:123:10: warning: cast to 'void *' from smaller integer type 'unsigned int' [-Wint-to-void-pointer-cast]
return (void *) addr;
^
1 warning and 2 errors generated.
configure:13924: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
| #include "./src/fault-macosdarwin5-powerpc.c"
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, int code, struct sigcontext *scp)
| {
| void *fault_address = (void *) (get_fault_addr (scp));
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
|
| action.sa_handler = (void (*) (int)) &sigsegv_handler;
| action.sa_flags = 0;
|
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:13935: result: no
configure:13944: checking whether a fault handler according to Hurd works
configure:14080: clang -o conftest conftest.c >&5
conftest.c:69:25: warning: cast to 'void *' from smaller integer type 'int' [-Wint-to-void-pointer-cast]
void *fault_address = (void *) (code);
^
1 warning generated.
configure:14080: $? = 0
configure:14080: ./conftest
configure:14080: $? = 3
configure: program exited with status 3
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| /* end confdefs.h. */
|
|
| #include
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
|
| #include
| #include
| #if HAVE_MMAP_DEVZERO
| # include
| # ifndef MAP_FILE
| # define MAP_FILE 0
| # endif
| #endif
| #ifndef PROT_NONE
| # define PROT_NONE 0
| #endif
| #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
| static int zero_fd;
| # define map_flags MAP_FILE | MAP_PRIVATE
| #endif
| #if defined __linux__ && (defined __s390__ || defined __s390x__)
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS (0x1000UL - 1)
| #else
| # define SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS 0UL
| #endif
| unsigned long page;
| int handler_called = 0;
| void sigsegv_handler (int sig, int code, struct sigcontext *scp)
| {
| void *fault_address = (void *) (code);
| handler_called++;
| if (handler_called == 10)
| exit (4);
| if (fault_address
| != (void*)((page + 0x678) & ~SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS))
| exit (3);
| if (mprotect ((void *) page, 0x10000, PROT_READ | PROT_WRITE) < 0)
| exit (2);
| }
| void crasher (unsigned long p)
| {
| *(int *) (p + 0x678) = 42;
| }
| int main ()
| {
| void *p;
| struct sigaction action;
| /* Preparations. */
| #if !HAVE_MMAP_ANON && !HAVE_MMAP_ANONYMOUS && HAVE_MMAP_DEVZERO
| zero_fd = open ("/dev/zero", O_RDONLY, 0644);
| #endif
| /* Setup some mmaped memory. */
| #ifdef __hpux
| /* HP-UX 10 mmap() often fails when given a hint. So give the OS complete
| freedom about the address range. */
| p = mmap ((void *) 0, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #else
| p = mmap ((void *) 0x12340000, 0x10000, PROT_READ | PROT_WRITE, map_flags, zero_fd, 0);
| #endif
| if (p == (void *)(-1))
| exit (2);
| page = (unsigned long) p;
| /* Make it read-only. */
| if (mprotect ((void *) page, 0x10000, PROT_READ) < 0)
| exit (2);
| /* Install the SIGSEGV handler. */
| sigemptyset(&action.sa_mask);
|
| action.sa_handler = (void (*) (int)) &sigsegv_handler;
| action.sa_flags = 0;
|
| sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
| sigaction (SIGBUS, &action, (struct sigaction *) NULL);
| /* 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! */
| return 0;
| }
configure:14091: result: no
configure:14207: checking ucontext.h usability
configure:14207: clang -c conftest.c >&5
configure:14207: $? = 0
configure:14207: result: yes
configure:14207: checking ucontext.h presence
configure:14207: clang -E conftest.c
configure:14207: $? = 0
configure:14207: result: yes
configure:14207: checking for ucontext.h
configure:14207: result: yes
configure:14445: checking for the fault handler specifics
configure:14456: result: fault-linux-i386.h
configure:14481: checking if the system supports catching SIGSEGV
configure:14483: result: yes
configure:14496: checking for stack direction
configure:14593: result: grows down
configure:14604: checking for PIOCMAP in sys/procfs.h
configure:14621: clang -o conftest conftest.c >&5
conftest.c:39:9: error: use of undeclared identifier 'PIOCNMAP'
int x = PIOCNMAP + PIOCMAP; prmap_t y;
^
conftest.c:39:20: error: use of undeclared identifier 'PIOCMAP'
int x = PIOCNMAP + PIOCMAP; prmap_t y;
^
conftest.c:39:29: error: use of undeclared identifier 'prmap_t'
int x = PIOCNMAP + PIOCMAP; prmap_t y;
^
3 errors generated.
configure:14621: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| #define HAVE_UCONTEXT_H 1
| #define CFG_FAULT "fault-linux-i386.h"
| #define CFG_MACHFAULT "fault-none.h"
| #define STACK_DIRECTION -1
| /* end confdefs.h. */
| #include
| int
| main ()
| {
| int x = PIOCNMAP + PIOCMAP; prmap_t y;
| ;
| return 0;
| }
configure:14630: result: no
configure:14635: checking for mquery
configure:14635: clang -o conftest conftest.c >&5
/tmp/conftest-d0e536.o: In function `main':
conftest.c:(.text+0x12): undefined reference to `mquery'
clang-3.8: error: linker command failed with exit code 1 (use -v to see invocation)
configure:14635: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| #define HAVE_UCONTEXT_H 1
| #define CFG_FAULT "fault-linux-i386.h"
| #define CFG_MACHFAULT "fault-none.h"
| #define STACK_DIRECTION -1
| /* end confdefs.h. */
| /* Define mquery to an innocuous variant, in case declares mquery.
| For example, HP-UX 11i declares gettimeofday. */
| #define mquery innocuous_mquery
|
| /* System header to define __stub macros and hopefully few prototypes,
| which can conflict with char mquery (); below.
| Prefer to if __STDC__ is defined, since
| exists even on freestanding compilers. */
|
| #ifdef __STDC__
| # include
| #else
| # include
| #endif
|
| #undef mquery
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char mquery ();
| /* The GNU C library defines this for functions which it implements
| to always fail with ENOSYS. Some functions are actually named
| something starting with __ and the normal name is an alias. */
| #if defined __stub_mquery || defined __stub___mquery
| choke me
| #endif
|
| int
| main ()
| {
| return mquery ();
| ;
| return 0;
| }
configure:14635: result: no
configure:14635: checking for mincore
configure:14635: clang -o conftest conftest.c >&5
configure:14635: $? = 0
configure:14635: result: yes
configure:14681: checking for getrlimit
configure:14681: clang -o conftest conftest.c >&5
configure:14681: $? = 0
configure:14681: result: yes
configure:14681: checking for setrlimit
configure:14681: clang -o conftest conftest.c >&5
configure:14681: $? = 0
configure:14681: result: yes
configure:14697: checking for sigaltstack
configure:14697: clang -o conftest conftest.c >&5
configure:14697: $? = 0
configure:14697: result: yes
configure:14708: checking for stack_t
configure:14708: clang -c conftest.c >&5
configure:14708: $? = 0
configure:14708: clang -c conftest.c >&5
conftest.c:51:22: error: expected expression
if (sizeof ((stack_t)))
^
1 error generated.
configure:14708: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| #define HAVE_UCONTEXT_H 1
| #define CFG_FAULT "fault-linux-i386.h"
| #define CFG_MACHFAULT "fault-none.h"
| #define STACK_DIRECTION -1
| #define HAVE_MINCORE 1
| #define HAVE_STACKVMA 1
| #define CFG_STACKVMA "stackvma-linux.c"
| #define HAVE_GETRLIMIT 1
| #define HAVE_SETRLIMIT 1
| #define HAVE_SIGALTSTACK 1
| /* end confdefs.h. */
|
| #include
| #if HAVE_SYS_SIGNAL_H
| # include
| #endif
|
|
| int
| main ()
| {
| if (sizeof ((stack_t)))
| return 0;
| ;
| return 0;
| }
configure:14708: result: yes
configure:14726: checking for working sigaltstack
configure:14850: clang -o conftest conftest.c >&5
configure:14850: $? = 0
configure:14850: ./conftest
configure:14850: $? = 0
configure:14866: result: yes
configure:14873: checking for correct stack_t interpretation
configure:14937: clang -o conftest conftest.c >&5
configure:14937: $? = 0
configure:14937: ./conftest
configure:14937: $? = 0
configure:14948: result: yes
configure:14974: checking whether a signal handler can be left through longjmp
configure:15063: clang -o conftest conftest.c >&5
configure:15063: $? = 0
configure:15063: ./conftest
configure:15063: $? = 0
configure:15074: result: yes
configure:15082: checking whether a signal handler can be left through longjmp and sigaltstack
configure:15181: clang -o conftest conftest.c >&5
configure:15181: $? = 0
configure:15181: ./conftest
configure:15181: $? = 0
configure:15192: result: yes
configure:15200: checking whether a signal handler can be left through longjmp and setcontext
configure:15304: clang -o conftest conftest.c >&5
configure:15304: $? = 0
configure:15304: ./conftest
configure:15304: $? = 0
configure:15315: result: yes
configure:15337: checking whether a signal handler can be left through siglongjmp
configure:15424: clang -o conftest conftest.c >&5
configure:15424: $? = 0
configure:15424: ./conftest
configure:15424: $? = 0
configure:15435: result: yes
configure:15443: checking whether a signal handler can be left through siglongjmp and sigaltstack
configure:15540: clang -o conftest conftest.c >&5
configure:15540: $? = 0
configure:15540: ./conftest
configure:15540: $? = 0
configure:15551: result: yes
configure:15559: checking whether a signal handler can be left through siglongjmp and setcontext
configure:15661: clang -o conftest conftest.c >&5
configure:15661: $? = 0
configure:15661: ./conftest
configure:15661: $? = 0
configure:15672: result: yes
configure:15711: checking if the system supports catching stack overflow
configure:15798: result: yes
configure:15932: checking for uintptr_t
configure:15932: clang -c conftest.c >&5
configure:15932: $? = 0
configure:15932: clang -c conftest.c >&5
conftest.c:80:24: error: expected expression
if (sizeof ((uintptr_t)))
^
1 error generated.
configure:15932: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libsigsegv"
| #define VERSION "2.10"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_SYS_SIGNAL_H 1
| #define CFG_SIGNALS "signals.h"
| #define HAVE_UNISTD_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_SYSCONF_PAGESIZE 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_DEVZERO 1
| #define HAVE_UCONTEXT_H 1
| #define CFG_FAULT "fault-linux-i386.h"
| #define CFG_MACHFAULT "fault-none.h"
| #define STACK_DIRECTION -1
| #define HAVE_MINCORE 1
| #define HAVE_STACKVMA 1
| #define CFG_STACKVMA "stackvma-linux.c"
| #define HAVE_GETRLIMIT 1
| #define HAVE_SETRLIMIT 1
| #define HAVE_SIGALTSTACK 1
| #define HAVE_WORKING_SIGALTSTACK 1
| #define CFG_LEAVE "leave-nop.c"
| #define CFG_HANDLER "handler-unix.c"
| /* end confdefs.h. */
| #include
| #ifdef HAVE_SYS_TYPES_H
| # include
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include
| #endif
| #ifdef STDC_HEADERS
| # include
| # include
| #else
| # ifdef HAVE_STDLIB_H
| # include
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| # include
| # endif
| # include
| #endif
| #ifdef HAVE_STRINGS_H
| # include
| #endif
| #ifdef HAVE_INTTYPES_H
| # include
| #endif
| #ifdef HAVE_STDINT_H
| # include
| #endif
| #ifdef HAVE_UNISTD_H
| # include
| #endif
| int
| main ()
| {
| if (sizeof ((uintptr_t)))
| return 0;
| ;
| return 0;
| }
configure:15932: result: yes
configure:15972: checking whether to activate relocatable installation
configure:15987: result: no
configure:16133: creating ./config.status
## ---------------------- ##
## Running config.status. ##
## ---------------------- ##
This file was extended by config.status, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES =
CONFIG_HEADERS =
CONFIG_LINKS =
CONFIG_COMMANDS =
$ ./config.status
on 0713cef7d819
config.status:1125: creating Makefile
config.status:1125: creating src/Makefile
config.status:1125: creating src/sigsegv.h
config.status:1125: creating tests/Makefile
config.status:1125: creating config.h
config.status:1354: executing depfiles commands
config.status:1354: executing libtool commands
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_build=x86_64-unknown-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_env_CC_set=set
ac_cv_env_CC_value=clang
ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=set
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_LDFLAGS_set=set
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=set
ac_cv_env_host_alias_value=x86_64-unknown-linux
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_func_getrlimit=yes
ac_cv_func_mincore=yes
ac_cv_func_mquery=no
ac_cv_func_setrlimit=yes
ac_cv_func_sigaltstack=yes
ac_cv_header_dlfcn_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_memory_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_signal_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_ucontext_h=yes
ac_cv_header_unistd_h=yes
ac_cv_host=x86_64-unknown-linux-gnu
ac_cv_objext=o
ac_cv_path_EGREP='/usr/bin/grep -E'
ac_cv_path_FGREP='/usr/bin/grep -F'
ac_cv_path_GREP=/usr/bin/grep
ac_cv_path_SED=/usr/bin/sed
ac_cv_path_install='/usr/bin/install -c'
ac_cv_path_mkdir=/usr/bin/mkdir
ac_cv_prog_AWK=gawk
ac_cv_prog_CC=clang
ac_cv_prog_CPP='clang -E'
ac_cv_prog_STRIP=strip
ac_cv_prog_ac_ct_AR=ar
ac_cv_prog_ac_ct_OBJDUMP=objdump
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_ac_ct_STRIP=strip
ac_cv_prog_cc_c89=
ac_cv_prog_cc_g=yes
ac_cv_prog_make_make_set=yes
ac_cv_type_stack_t=yes
ac_cv_type_uintptr_t=yes
am_cv_CC_dependencies_compiler_type=none
lt_cv_ar_at_file=@
lt_cv_archive_cmds_need_lc=no
lt_cv_deplibs_check_method=pass_all
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_ld_reload_flag=-r
lt_cv_nm_interface='BSD nm'
lt_cv_objdir=.libs
lt_cv_path_LD=/usr/bin/ld
lt_cv_path_NM='/usr/bin/nm -B'
lt_cv_path_mainfest_tool=no
lt_cv_prog_compiler_c_o=yes
lt_cv_prog_compiler_pic='-fPIC -DPIC'
lt_cv_prog_compiler_pic_works=yes
lt_cv_prog_compiler_rtti_exceptions=yes
lt_cv_prog_compiler_static_works=yes
lt_cv_prog_gnu_ld=yes
lt_cv_sharedlib_from_linklib_cmd='printf %s\n'
lt_cv_shlibpath_overrides_runpath=no
lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\'''
lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \([^ ]*\)[ ]*$/ {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/ {"\2", (void *) \&\2},/p'\'''
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \([^ ]*\)[ ]*$/ {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \(lib[^ ]*\)$/ {"\2", (void *) \&\2},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/ {"lib\2", (void *) \&\2},/p'\'''
lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\'''
lt_cv_sys_max_cmd_len=1572864
lt_cv_to_host_file_cmd=func_convert_file_noop
lt_cv_to_tool_file_cmd=func_convert_file_noop
sv_cv_fault_aix=no
sv_cv_fault_bsd=no
sv_cv_fault_hpux_hppa=no
sv_cv_fault_hurd=no
sv_cv_fault_include=fault-linux-i386.h
sv_cv_fault_irix=no
sv_cv_fault_linux_hppa=no
sv_cv_fault_linux_i386=no
sv_cv_fault_linux_i386_old=no
sv_cv_fault_linux_m68k=no
sv_cv_fault_linux_powerpc=no
sv_cv_fault_macosdarwin5_ppc=no
sv_cv_fault_macosdarwin7_ppc=no
sv_cv_fault_netbsd_alpha=no
sv_cv_fault_osf_alpha=no
sv_cv_fault_posix=yes
sv_cv_func_getpagesize=yes
sv_cv_func_mmap_anon=yes
sv_cv_func_mmap_anonymous=yes
sv_cv_func_mmap_devzero=yes
sv_cv_func_sysconf_pagesize=yes
sv_cv_have_sigsegv_recovery=yes
sv_cv_have_stack_overflow_recovery=yes
sv_cv_host=x86_64-unknown-linux4.10.6-gnu-glibc2.23
sv_cv_leave_handler_longjmp=yes
sv_cv_leave_handler_longjmp_setcontext=yes
sv_cv_leave_handler_longjmp_sigaltstack=yes
sv_cv_leave_handler_siglongjmp=yes
sv_cv_leave_handler_siglongjmp_setcontext=yes
sv_cv_leave_handler_siglongjmp_sigaltstack=yes
sv_cv_macro_pagesize=no
sv_cv_procfsvma=no
sv_cv_sigaltstack=yes
sv_cv_sigaltstack_low_base=yes
sv_cv_stack_direction=-1
sv_cv_stack_direction_msg='grows down'
## ----------------- ##
## Output variables. ##
## ----------------- ##
ACLOCAL='${SHELL} /tmp/libsigsegv/src/libsigsegv-2.10/build-aux/missing --run aclocal-1.11'
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='${SHELL} /tmp/libsigsegv/src/libsigsegv-2.10/build-aux/missing --run tar'
AR='ar'
AUTOCONF='${SHELL} /tmp/libsigsegv/src/libsigsegv-2.10/build-aux/missing --run autoconf'
AUTOHEADER='${SHELL} /tmp/libsigsegv/src/libsigsegv-2.10/build-aux/missing --run autoheader'
AUTOMAKE='${SHELL} /tmp/libsigsegv/src/libsigsegv-2.10/build-aux/missing --run automake-1.11'
AWK='gawk'
CC='clang'
CCDEPMODE='depmode=none'
CFG_HANDLER='handler-unix.c'
CFG_LEAVE='leave-nop.c'
CFG_STACKVMA='stackvma-linux.c'
CFLAGS=''
CPP='clang -E'
CPPFLAGS=''
CYGPATH_W='echo'
CYGWIN_FALSE=''
CYGWIN_TRUE='#'
DEFS='-DHAVE_CONFIG_H'
DEPDIR='.deps'
DLLTOOL='false'
DSYMUTIL=''
DUMPBIN=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/usr/bin/grep -E'
ENABLE_EFAULT_FALSE=''
ENABLE_EFAULT_TRUE='#'
EXEEXT=''
FAULT_CONTEXT='ucontext_t'
FAULT_CONTEXT_INCLUDE='#include '
FGREP='/usr/bin/grep -F'
GREP='/usr/bin/grep'
HAVE_SIGSEGV_RECOVERY='1'
HAVE_STACK_OVERFLOW_RECOVERY='1'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LD='/usr/bin/ld -m elf_x86_64'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
LIPO=''
LN_S='ln -s'
LTLIBOBJS=''
MAKEINFO='${SHELL} /tmp/libsigsegv/src/libsigsegv-2.10/build-aux/missing --run makeinfo'
MANIFEST_TOOL=':'
MKDIR_P='/usr/bin/mkdir -p'
NM='/usr/bin/nm -B'
NMEDIT=''
OBJDUMP='objdump'
OBJEXT='o'
OTOOL64=''
OTOOL=''
PACKAGE='libsigsegv'
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_URL=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
PLATFORM='x86_64-unknown-linux4.10.6-gnu-glibc2.23'
RANLIB='ranlib'
RELOCATABLE='no'
SED='/usr/bin/sed'
SET_MAKE=''
SHELL='/bin/sh'
STRIP='strip'
VERSION='2.10'
ac_ct_AR='ar'
ac_ct_CC=''
ac_ct_DUMPBIN=''
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE='#'
am__fastdepCC_FALSE=''
am__fastdepCC_TRUE='#'
am__include='include'
am__isrc=''
am__leading_dot='.'
am__quote=''
am__tar='${AMTAR} chf - --owner=root --group=root "$$tardir"'
am__untar='${AMTAR} xf -'
bindir='${exec_prefix}/bin'
build='x86_64-unknown-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='unknown'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE}'
dvidir='${docdir}'
exec_prefix='${prefix}'
host='x86_64-unknown-linux-gnu'
host_alias='x86_64-unknown-linux'
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='unknown'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /tmp/libsigsegv/src/libsigsegv-2.10/build-aux/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='/usr/bin/mkdir -p'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''
## ----------- ##
## confdefs.h. ##
## ----------- ##
/* confdefs.h */
#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""
#define PACKAGE "libsigsegv"
#define VERSION "2.10"
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
#define HAVE_SYS_SIGNAL_H 1
#define CFG_SIGNALS "signals.h"
#define HAVE_UNISTD_H 1
#define HAVE_GETPAGESIZE 1
#define HAVE_SYSCONF_PAGESIZE 1
#define HAVE_MMAP_ANON 1
#define HAVE_MMAP_ANONYMOUS 1
#define HAVE_MMAP_DEVZERO 1
#define HAVE_UCONTEXT_H 1
#define CFG_FAULT "fault-linux-i386.h"
#define CFG_MACHFAULT "fault-none.h"
#define STACK_DIRECTION -1
#define HAVE_MINCORE 1
#define HAVE_STACKVMA 1
#define CFG_STACKVMA "stackvma-linux.c"
#define HAVE_GETRLIMIT 1
#define HAVE_SETRLIMIT 1
#define HAVE_SIGALTSTACK 1
#define HAVE_WORKING_SIGALTSTACK 1
#define CFG_LEAVE "leave-nop.c"
#define CFG_HANDLER "handler-unix.c"
#define HAVE_UINTPTR_T 1
configure: exit 0