|  | # Configure template for strace. | 
|  | # | 
|  | # Copyright (c) 1999-2001 Wichert Akkerman <wichert@deephackmode.org> | 
|  | # Copyright (c) 2002-2009 Roland McGrath <roland@redhat.com> | 
|  | # Copyright (c) 2006-2016 Dmitry V. Levin <ldv@altlinux.org> | 
|  | # Copyright (c) 2008-2015 Mike Frysinger <vapier@gentoo.org> | 
|  | # Copyright (c) 2015 Elvira Khabirova <lineprinter0@gmail.com> | 
|  | # Copyright (c) 2002-2018 The strace developers. | 
|  | # All rights reserved. | 
|  | # | 
|  | # Redistribution and use in source and binary forms, with or without | 
|  | # modification, are permitted provided that the following conditions | 
|  | # are met: | 
|  | # 1. Redistributions of source code must retain the above copyright | 
|  | #    notice, this list of conditions and the following disclaimer. | 
|  | # 2. Redistributions in binary form must reproduce the above copyright | 
|  | #    notice, this list of conditions and the following disclaimer in the | 
|  | #    documentation and/or other materials provided with the distribution. | 
|  | # 3. The name of the author may not be used to endorse or promote products | 
|  | #    derived from this software without specific prior written permission. | 
|  | # | 
|  | # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | 
|  | # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | 
|  | # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | 
|  | # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | 
|  | # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | 
|  | # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 
|  | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 
|  | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
|  | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 
|  | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
|  |  | 
|  | AC_PREREQ(2.57) | 
|  | AC_INIT([strace], | 
|  | m4_esyscmd([./git-version-gen .tarball-version]), | 
|  | [strace-devel@lists.strace.io], | 
|  | [strace], | 
|  | [https://strace.io]) | 
|  | m4_define([copyright_year], m4_esyscmd([./copyright-year-gen .year])) | 
|  | m4_define([manpage_date], m4_esyscmd([./file-date-gen strace.1.in])) | 
|  | AC_COPYRIGHT([Copyright (c) 1999-]copyright_year[ The strace developers.]) | 
|  | AC_CONFIG_SRCDIR([strace.c]) | 
|  | AC_CONFIG_AUX_DIR([.]) | 
|  | AC_CONFIG_HEADERS([config.h]) | 
|  | AM_INIT_AUTOMAKE([foreign nostdinc dist-xz silent-rules parallel-tests 1.13]) | 
|  | AM_MAINTAINER_MODE | 
|  | AC_CANONICAL_HOST | 
|  |  | 
|  | RPM_CHANGELOGTIME="$(LC_TIME=C date -u '+%a %b %d %Y')" | 
|  | AC_SUBST(RPM_CHANGELOGTIME) | 
|  | DEB_CHANGELOGTIME="$(LC_TIME=C date -u -R)" | 
|  | AC_SUBST(DEB_CHANGELOGTIME) | 
|  |  | 
|  | AC_PROG_CC | 
|  | AC_PROG_CC_STDC | 
|  | AC_PROG_CPP | 
|  | st_WARN_CFLAGS | 
|  | AX_PROG_CC_FOR_BUILD | 
|  | AC_PROG_INSTALL | 
|  | AC_PROG_RANLIB | 
|  |  | 
|  | AC_USE_SYSTEM_EXTENSIONS | 
|  | AX_CODE_COVERAGE | 
|  |  | 
|  | AC_DEFINE([COPYRIGHT_YEAR], "[copyright_year]", [Current copyright year.]) | 
|  | AC_SUBST([COPYRIGHT_YEAR], [copyright_year]) | 
|  |  | 
|  | AC_DEFINE([MANPAGE_DATE], "[manpage_date]", [Date]) | 
|  | AC_SUBST([MANPAGE_DATE], [manpage_date]) | 
|  |  | 
|  | AC_MSG_CHECKING([for supported architecture]) | 
|  | arch_m32= | 
|  | arch_mx32= | 
|  | cc_flags_m32=-m32 | 
|  | cc_flags_mx32=-mx32 | 
|  | case "$host_cpu" in | 
|  | aarch64*) | 
|  | arch=aarch64 | 
|  | arch_m32=arm | 
|  | AC_DEFINE([AARCH64], 1, [Define for the AArch64 architecture.]) | 
|  | ;; | 
|  | alpha*) | 
|  | arch=alpha | 
|  | AC_DEFINE([ALPHA], 1, [Define for the Alpha architecture.]) | 
|  | ;; | 
|  | arc*) | 
|  | arch=arc | 
|  | AC_DEFINE([ARC], 1, [Define for the ARC architecture.]) | 
|  | ;; | 
|  | arm*) | 
|  | arch=arm | 
|  | AC_DEFINE([ARM], 1, [Define for the ARM architecture.]) | 
|  | ;; | 
|  | avr32*) | 
|  | arch=avr32 | 
|  | AC_DEFINE([AVR32], 1, [Define for the AVR32 architecture.]) | 
|  | ;; | 
|  | bfin) | 
|  | arch=bfin | 
|  | AC_DEFINE([BFIN], 1, [Define for the Blackfin architecture.]) | 
|  | ;; | 
|  | hppa*|parisc*) | 
|  | arch=hppa | 
|  | AC_DEFINE([HPPA], 1, [Define for the HPPA architecture.]) | 
|  | ;; | 
|  | i[[3456]]86|pentium) | 
|  | arch=i386 | 
|  | AC_DEFINE([I386], 1, [Define for the i386 architecture.]) | 
|  | ;; | 
|  | ia64) | 
|  | arch=ia64 | 
|  | AC_DEFINE([IA64], 1, [Define for the IA64 architecture.]) | 
|  | ;; | 
|  | m68k) | 
|  | arch=m68k | 
|  | AC_DEFINE([M68K], 1, [Define for the m68k architecture.]) | 
|  | ;; | 
|  | metag*) | 
|  | arch=metag | 
|  | AC_DEFINE([METAG], 1, [Define for the Meta architecture.]) | 
|  | ;; | 
|  | microblaze*) | 
|  | arch=microblaze | 
|  | AC_DEFINE([MICROBLAZE], 1, [Define for the MicroBlaze architecture.]) | 
|  | ;; | 
|  | mips*) | 
|  | arch=mips | 
|  | AC_DEFINE([MIPS], 1, [Define for the MIPS architecture.]) | 
|  | ;; | 
|  | nios2*) | 
|  | arch=nios2 | 
|  | AC_DEFINE([NIOS2], 1, [Define for the Nios-II architecture.]) | 
|  | ;; | 
|  | or1k*) | 
|  | arch=or1k | 
|  | AC_DEFINE([OR1K], 1, [Define for the OpenRISC 1000 architecture.]) | 
|  | ;; | 
|  | powerpc*) | 
|  | AC_DEFINE([POWERPC], 1, [Define for the PowerPC architecture.]) | 
|  | AC_TRY_COMPILE( | 
|  | [#ifndef __LP64__ | 
|  | # error 32 bit | 
|  | #endif], [], arch=powerpc64, arch=powerpc) | 
|  | if test "$arch" = "powerpc64"; then | 
|  | arch_m32=powerpc | 
|  | AC_DEFINE([POWERPC64], 1, [Define for the PowerPC64 architecture.]) | 
|  | fi | 
|  | ;; | 
|  | riscv*) | 
|  | arch=riscv | 
|  | AC_DEFINE([RISCV], 1, [Define for the RISC-V architecture]) | 
|  | ;; | 
|  | s390) | 
|  | arch=s390 | 
|  | AC_DEFINE([S390], 1, [Define for the S390 architecture.]) | 
|  | ;; | 
|  | s390x) | 
|  | arch=s390x | 
|  | arch_m32=s390 | 
|  | cc_flags_m32=-m31 | 
|  | AC_DEFINE([S390X], 1, [Define for the S390x architecture.]) | 
|  | ;; | 
|  | sh64*) | 
|  | arch=sh64 | 
|  | AC_DEFINE([SH64], 1, [Define for the SH64 architecture.]) | 
|  | ;; | 
|  | sh*) | 
|  | arch=sh | 
|  | AC_DEFINE([SH], 1, [Define for the SH architecture.]) | 
|  | ;; | 
|  | sparc64*) | 
|  | arch=sparc64 | 
|  | arch_m32=sparc | 
|  | AC_DEFINE([SPARC64], 1, [Define for the SPARC64 architecture.]) | 
|  | ;; | 
|  | sparc*) | 
|  | arch=sparc | 
|  | AC_DEFINE([SPARC], 1, [Define for the SPARC architecture.]) | 
|  | ;; | 
|  | tile*) | 
|  | arch=tile | 
|  | AC_DEFINE([TILE], 1, [Define for the Tile architecture]) | 
|  | ;; | 
|  | x86?64*) | 
|  | arch_m32=i386 | 
|  | AC_TRY_COMPILE( | 
|  | [#ifndef __ILP32__ | 
|  | # error not x32 | 
|  | #endif], [], arch=x32, arch=x86_64) | 
|  | if test "$arch" = "x86_64"; then | 
|  | arch_mx32=x32 | 
|  | AC_DEFINE([X86_64], 1, [Define for the 64bit AMD x86-64 architecture.]) | 
|  | else | 
|  | AC_DEFINE([X32], 1, [Define for the 32bit AMD x86-64 architecture.]) | 
|  | fi | 
|  | ;; | 
|  | xtensa*) | 
|  | arch=xtensa | 
|  | AC_DEFINE([XTENSA], 1, [Define for the Xtensa architecture]) | 
|  | ;; | 
|  | *) | 
|  | AC_MSG_RESULT([NO!]) | 
|  | AC_MSG_ERROR([architecture $host_cpu is not supported by strace]) | 
|  | ;; | 
|  | esac | 
|  | AC_MSG_RESULT($arch) | 
|  |  | 
|  | arch_native=$arch | 
|  |  | 
|  | test -n "$arch_m32" || | 
|  | arch_m32=$arch | 
|  | test -n "$arch_mx32" || | 
|  | arch_mx32=$arch | 
|  | AC_SUBST(arch) | 
|  | AC_SUBST(arch_m32) | 
|  | AC_SUBST(arch_mx32) | 
|  | AC_SUBST(cc_flags_m32) | 
|  | AC_SUBST(cc_flags_mx32) | 
|  | AC_SUBST(arch_native) | 
|  |  | 
|  | MIPS_ABI= | 
|  | if test "$arch" = mips; then | 
|  | AC_CACHE_CHECK([for _MIPS_SIM], [st_cv__MIPS_SIM], | 
|  | [AC_COMPUTE_INT([st_cv__MIPS_SIM], [_MIPS_SIM], , | 
|  | [AC_MSG_FAILURE([_MIPS_SIM cannot be determined])])]) | 
|  |  | 
|  | # requires GCC >= 3.4 | 
|  | AC_CACHE_CHECK([for MIPS ABI], [st_cv_mips_abi], | 
|  | [AC_COMPILE_IFELSE( | 
|  | [AC_LANG_PROGRAM(, [[int i[_MIPS_SIM == _ABIO32 ? 1 : - 1];]])], | 
|  | [st_cv_mips_abi=o32], | 
|  | [AC_COMPILE_IFELSE( | 
|  | [AC_LANG_PROGRAM(, [[int i[_MIPS_SIM == _ABIN32 ? 1 : - 1];]])], | 
|  | [st_cv_mips_abi=n32], | 
|  | [AC_COMPILE_IFELSE( | 
|  | [AC_LANG_PROGRAM(, [[int i[_MIPS_SIM == _ABI64 ? 1 : - 1];]])], | 
|  | [st_cv_mips_abi=n64], | 
|  | [st_cv_mips_abi=unknown])])])]) | 
|  |  | 
|  | case "$st_cv_mips_abi" in | 
|  | o32) AC_DEFINE([LINUX_MIPSO32], [1], [Define for _ABIO32.]);; | 
|  | n32) AC_DEFINE([LINUX_MIPSN32], [1], [Define for _ABIN32.]);; | 
|  | n64) AC_DEFINE([LINUX_MIPSN64], [1], [Define for _ABI64.]);; | 
|  | *) AC_MSG_ERROR([Unsupported _MIPS_SIM]);; | 
|  | esac | 
|  | MIPS_ABI="$st_cv_mips_abi" | 
|  | fi | 
|  | AC_SUBST(MIPS_ABI) | 
|  |  | 
|  | AC_ARG_ENABLE([arm-oabi], | 
|  | [AS_HELP_STRING([--enable-arm-oabi], | 
|  | [enable OABI support on ARM EABI])], | 
|  | [], [enable_arm_oabi=no]) | 
|  | case "$enable_arm_oabi" in | 
|  | yes) enable_arm_oabi=1 ;; | 
|  | no) enable_arm_oabi=0 ;; | 
|  | *) AC_MSG_ERROR([bad value $enable_arm_oabi for arm-oabi option]) ;; | 
|  | esac | 
|  | AC_DEFINE_UNQUOTED([ENABLE_ARM_OABI], [$enable_arm_oabi], | 
|  | [Define to 1 if you want OABI support on ARM EABI.]) | 
|  |  | 
|  | AC_C_BIGENDIAN | 
|  | AC_C_TYPEOF | 
|  |  | 
|  | AC_TYPE_UID_T | 
|  |  | 
|  | AC_CHECK_FUNCS(m4_normalize([ | 
|  | accept4 | 
|  | be64toh | 
|  | fallocate | 
|  | fanotify_mark | 
|  | fopen64 | 
|  | fork | 
|  | fputs_unlocked | 
|  | fstatat | 
|  | ftruncate | 
|  | futimens | 
|  | iconv_open | 
|  | if_indextoname | 
|  | open64 | 
|  | prctl | 
|  | preadv | 
|  | process_vm_readv | 
|  | pwritev | 
|  | readahead | 
|  | signalfd | 
|  | stpcpy | 
|  | strerror | 
|  | strndup | 
|  | strsignal | 
|  | sync_file_range | 
|  | utimensat | 
|  | ])) | 
|  |  | 
|  | AC_CHECK_TYPES([sig_atomic_t, struct sigcontext],,, [#include <signal.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES([struct mmsghdr],,, [#include <sys/socket.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES([__kernel_long_t, __kernel_ulong_t],,, | 
|  | [#include <asm/posix_types.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES([struct stat64, struct __old_kernel_stat],,, | 
|  | [#include <sys/types.h> | 
|  | #include <asm/stat.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES([struct user_desc], | 
|  | [AC_CHECK_MEMBERS([struct user_desc.lm],,, | 
|  | [#include <asm/ldt.h>])],, | 
|  | [#include <asm/ldt.h>]) | 
|  |  | 
|  | AC_CHECK_MEMBERS([struct stat.st_mtime_nsec, struct stat64.st_mtime_nsec],,, | 
|  | [#include <sys/types.h> | 
|  | #include <asm/stat.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct pt_all_user_regs, | 
|  | struct ia64_fpreg, | 
|  | struct ptrace_peeksiginfo_args | 
|  | ]),,, [#include <sys/ptrace.h>]) | 
|  |  | 
|  | # For kernels that do not have v3.10-rc1~201^2~11 | 
|  | AC_CHECK_TYPES([s390_compat_regs],,, [#include <asm/ptrace.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct flock, | 
|  | struct flock64, | 
|  | struct __kernel_flock, | 
|  | struct __kernel_flock64, | 
|  | struct f_owner_ex, | 
|  | struct __kernel_f_owner_ex | 
|  | ]),,, | 
|  | [#include <sys/types.h> | 
|  | #include <linux/fcntl.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct crypto_report_aead, | 
|  | struct crypto_report_blkcipher, | 
|  | struct crypto_report_cipher, | 
|  | struct crypto_report_hash, | 
|  | struct crypto_report_rng | 
|  | ]),,, [#include <linux/cryptouser.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct kcmp_epoll_slot | 
|  | ]),,, [#include <linux/kcmp.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct keyctl_kdf_params | 
|  | ]),,, [#include <linux/keyctl.h>]) | 
|  |  | 
|  | AC_CHECK_MEMBERS([struct timex.tai],,, [#include <sys/timex.h>]) | 
|  |  | 
|  | AC_CHECK_MEMBERS([struct utsname.domainname],,, [#include <sys/utsname.h>]) | 
|  |  | 
|  | AC_CHECK_MEMBERS(m4_normalize([ | 
|  | siginfo_t.si_syscall, | 
|  | siginfo_t.si_timerid, | 
|  | siginfo_t.si_overrun | 
|  | ]),,, [#include <signal.h>]) | 
|  |  | 
|  | AC_CHECK_MEMBERS(m4_normalize([ | 
|  | struct perf_event_attr.precise_ip, | 
|  | struct perf_event_attr.mmap_data, | 
|  | struct perf_event_attr.sample_id_all, | 
|  | struct perf_event_attr.exclude_host, | 
|  | struct perf_event_attr.exclude_guest, | 
|  | struct perf_event_attr.exclude_callchain_kernel, | 
|  | struct perf_event_attr.exclude_callchain_user, | 
|  | struct perf_event_attr.mmap2, | 
|  | struct perf_event_attr.comm_exec, | 
|  | struct perf_event_attr.use_clockid, | 
|  | struct perf_event_attr.context_switch, | 
|  | struct perf_event_attr.write_backward, | 
|  | struct perf_event_attr.namespaces, | 
|  | struct perf_event_attr.bp_type, | 
|  | struct perf_event_attr.config1, | 
|  | struct perf_event_attr.config2, | 
|  | struct perf_event_attr.branch_sample_type, | 
|  | struct perf_event_attr.sample_regs_user, | 
|  | struct perf_event_attr.sample_stack_user, | 
|  | struct perf_event_attr.sample_regs_intr, | 
|  | struct perf_event_attr.aux_watermark, | 
|  | struct perf_event_attr.sample_max_stack | 
|  | ]),,, [#include <linux/perf_event.h>]) | 
|  |  | 
|  | AC_CHECK_HEADERS(m4_normalize([ | 
|  | asm/cachectl.h | 
|  | asm/guarded_storage.h | 
|  | asm/sysmips.h | 
|  | elf.h | 
|  | iconv.h | 
|  | inttypes.h | 
|  | linux/bsg.h | 
|  | linux/cryptouser.h | 
|  | linux/dm-ioctl.h | 
|  | linux/dqblk_xfs.h | 
|  | linux/falloc.h | 
|  | linux/fib_rules.h | 
|  | linux/fiemap.h | 
|  | linux/genetlink.h | 
|  | linux/hiddev.h | 
|  | linux/if_addr.h | 
|  | linux/if_link.h | 
|  | linux/ip_vs.h | 
|  | linux/ipc.h | 
|  | linux/kcmp.h | 
|  | linux/kvm.h | 
|  | linux/memfd.h | 
|  | linux/mmtimer.h | 
|  | linux/msg.h | 
|  | linux/neighbour.h | 
|  | linux/netfilter/ipset/ip_set.h | 
|  | linux/netfilter/nf_tables.h | 
|  | linux/netfilter/nf_tables_compat.h | 
|  | linux/netfilter/nfnetlink.h | 
|  | linux/netfilter/nfnetlink_acct.h | 
|  | linux/netfilter/nfnetlink_conntrack.h | 
|  | linux/netfilter/nfnetlink_cthelper.h | 
|  | linux/netfilter/nfnetlink_cttimeout.h | 
|  | linux/netfilter/nfnetlink_log.h | 
|  | linux/netfilter/nfnetlink_queue.h | 
|  | linux/nsfs.h | 
|  | linux/perf_event.h | 
|  | linux/quota.h | 
|  | linux/seccomp.h | 
|  | linux/securebits.h | 
|  | linux/sem.h | 
|  | linux/shm.h | 
|  | linux/userfaultfd.h | 
|  | linux/utsname.h | 
|  | mqueue.h | 
|  | netinet/sctp.h | 
|  | netipx/ipx.h | 
|  | paths.h | 
|  | scsi/sg.h | 
|  | stropts.h | 
|  | sys/conf.h | 
|  | sys/eventfd.h | 
|  | sys/fanotify.h | 
|  | sys/ipc.h | 
|  | sys/msg.h | 
|  | sys/quota.h | 
|  | sys/sem.h | 
|  | sys/shm.h | 
|  | sys/signalfd.h | 
|  | sys/xattr.h | 
|  | ustat.h | 
|  | ])) | 
|  |  | 
|  | AC_CHECK_HEADERS([asm/sigcontext.h],,, [#include <signal.h>]) | 
|  |  | 
|  | AC_CHECK_HEADERS([netinet/tcp.h netinet/udp.h],,, [#include <netinet/in.h>]) | 
|  |  | 
|  | AC_CHECK_HEADERS([linux/mqueue.h],,, [#include <linux/types.h>]) | 
|  |  | 
|  | AC_CHECK_HEADERS([linux/netfilter/xt_osf.h],,, [#include <linux/ip.h> | 
|  | #include <linux/tcp.h>]) | 
|  |  | 
|  | AC_CHECK_HEADERS(m4_normalize([ | 
|  | linux/netfilter_arp/arp_tables.h | 
|  | linux/netfilter_bridge/ebtables.h | 
|  | linux/netfilter_ipv4/ip_tables.h | 
|  | linux/netfilter_ipv6/ip6_tables.h | 
|  | ]),,, [#include <netinet/in.h> | 
|  | #include <net/if.h>]) | 
|  |  | 
|  | AC_CHECK_HEADERS([linux/input.h], [ | 
|  | AC_CHECK_MEMBERS([struct input_absinfo.resolution],,, [#include <linux/input.h>]) | 
|  | ]) | 
|  |  | 
|  | AC_CHECK_HEADERS([linux/bpf.h], [ | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct bpf_insn, | 
|  | struct bpf_map_info, | 
|  | struct bpf_prog_info | 
|  | ]),,, [#include <linux/bpf.h>]) | 
|  | st_BPF_ATTR | 
|  | ]) | 
|  |  | 
|  | AC_CHECK_HEADERS([bluetooth/bluetooth.h], [ | 
|  | AC_CHECK_MEMBERS([struct sockaddr_l2.l2_bdaddr_type],,, | 
|  | [#include <bluetooth/bluetooth.h> | 
|  | #include <bluetooth/l2cap.h>]) | 
|  | ]) | 
|  |  | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct br_mdb_entry, | 
|  | struct br_port_msg | 
|  | ]),,, [#include <linux/if_bridge.h>]) | 
|  | AC_CHECK_MEMBERS(m4_normalize([ | 
|  | struct br_mdb_entry.flags, | 
|  | struct br_mdb_entry.vid | 
|  | ]),,, [#include <linux/if_bridge.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES([struct dcbmsg],,, [#include <linux/dcbnl.h>]) | 
|  | AC_CHECK_TYPES([struct ifaddrlblmsg],,, [#include <linux/if_addrlabel.h>]) | 
|  | AC_CHECK_TYPES([struct netconfmsg],,, [#include <linux/netconf.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct rta_mfc_stats, | 
|  | struct rtvia | 
|  | ]),,, [#include <sys/socket.h> | 
|  | #include <linux/rtnetlink.h>]) | 
|  |  | 
|  | AC_CHECK_MEMBERS([struct ndt_stats.ndts_table_fulls],,, [#include <linux/neighbour.h>]) | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct ndt_config, | 
|  | struct ndt_stats | 
|  | ]),,, [#include <linux/neighbour.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct ifla_bridge_id, | 
|  | struct ifla_cacheinfo, | 
|  | struct ifla_port_vsi, | 
|  | struct rtnl_link_stats64 | 
|  | ]),,, [#include <sys/socket.h> | 
|  | #include <linux/rtnetlink.h>]) | 
|  | AC_CHECK_MEMBERS(m4_normalize([ | 
|  | struct rtnl_link_stats.rx_nohandler, | 
|  | struct rtnl_link_stats64.rx_nohandler | 
|  | ]),,, [#include <sys/socket.h> | 
|  | #include <linux/rtnetlink.h>]) | 
|  | AC_CHECK_DECLS(m4_normalize([ | 
|  | IFLA_PORT_SELF, | 
|  | IFLA_PROTINFO, | 
|  | IFLA_AF_SPEC, | 
|  | IFLA_XDP | 
|  | ]),,, [#include <sys/socket.h> | 
|  | #include <linux/rtnetlink.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct gnet_stats_basic, | 
|  | struct gnet_stats_queue, | 
|  | struct gnet_stats_rate_est, | 
|  | struct gnet_stats_rate_est64 | 
|  | ]),,, [#include <linux/gen_stats.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES([struct tc_sizespec],,, [#include <linux/types.h> | 
|  | #include <linux/pkt_sched.h>]) | 
|  | AC_CHECK_DECLS([TCA_STAB_DATA],,, [#include <linux/types.h> | 
|  | #include <linux/pkt_sched.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct fib_rule_uid_range, | 
|  | struct fib_rule_port_range | 
|  | ]),,, [#include <linux/fib_rules.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES([struct statfs], [ | 
|  | AC_CHECK_MEMBERS(m4_normalize([ | 
|  | struct statfs.f_frsize, | 
|  | struct statfs.f_flags, | 
|  | struct statfs.f_fsid.val, | 
|  | struct statfs.f_fsid.__val | 
|  | ]),,, [#include <linux/types.h> | 
|  | #include <asm/statfs.h>]) | 
|  | ],, [#include <linux/types.h> | 
|  | #include <asm/statfs.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES([struct statfs64], [ | 
|  | AC_CHECK_MEMBERS(m4_normalize([ | 
|  | struct statfs64.f_frsize, | 
|  | struct statfs64.f_flags, | 
|  | struct statfs64.f_fsid.val, | 
|  | struct statfs64.f_fsid.__val | 
|  | ]),,, [#include <linux/types.h> | 
|  | #include <asm/statfs.h>]) | 
|  | ],, [#include <linux/types.h> | 
|  | #include <asm/statfs.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES([struct blk_user_trace_setup],,, [#include <linux/blktrace_api.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES([struct mtd_write_req],,, [#include <mtd/mtd-abi.h>]) | 
|  |  | 
|  | AC_CHECK_MEMBERS([struct ubi_attach_req.max_beb_per1024],,, [#include <mtd/ubi-user.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct ptp_sys_offset | 
|  | ]),,, [#include <linux/ptp_clock.h>]) | 
|  |  | 
|  | AC_CHECK_TYPES(m4_normalize([ | 
|  | struct kvm_cpuid2, | 
|  | struct kvm_regs, | 
|  | struct kvm_sregs, | 
|  | struct kvm_userspace_memory_region | 
|  | ]),,, [#include <linux/kvm.h>]) | 
|  |  | 
|  | saved_CPPFLAGS="$CPPFLAGS" | 
|  |  | 
|  | AC_CACHE_CHECK([whether <linux/signal.h> can be used along with <signal.h>], | 
|  | [st_cv_linux_signal], | 
|  | [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ | 
|  | #include <signal.h> | 
|  | #include <linux/signal.h>]],[])], | 
|  | [st_cv_linux_signal=yes], | 
|  | [st_cv_linux_signal=no])]) | 
|  | if test "x$st_cv_linux_signal" = xno; then | 
|  | mkdir -p linux/linux | 
|  | cp $srcdir/linux/signal.h.in linux/linux/signal.h | 
|  | CPPFLAGS="$CPPFLAGS -Ilinux" | 
|  | fi | 
|  |  | 
|  | AC_CHECK_TYPES([struct __aio_sigset],,, [#include <linux/aio_abi.h>]) | 
|  |  | 
|  | CPPFLAGS="$saved_CPPFLAGS" | 
|  |  | 
|  | AC_CHECK_HEADERS([linux/btrfs.h], [ | 
|  | AC_CHECK_MEMBERS(m4_normalize([ | 
|  | struct btrfs_ioctl_feature_flags.compat_flags, | 
|  | struct btrfs_ioctl_fs_info_args.nodesize, | 
|  | struct btrfs_ioctl_defrag_range_args.start, | 
|  | struct btrfs_ioctl_search_args_v2.buf_size, | 
|  | struct btrfs_ioctl_logical_ino_args.flags | 
|  | ]),,, [ #include <stdio.h> | 
|  | #include <linux/btrfs.h>]) | 
|  | AC_CHECK_DECLS(m4_normalize([BTRFS_COMPRESS_NONE, BTRFS_COMPRESS_ZLIB, | 
|  | BTRFS_COMPRESS_LZO]),,,[ #include <stdio.h> | 
|  | #include <linux/btrfs.h>])]) | 
|  |  | 
|  | AC_CHECK_DECLS([sys_errlist]) | 
|  | AC_CHECK_DECLS(m4_normalize([ | 
|  | PTRACE_PEEKUSER, | 
|  | PTRACE_POKEUSER | 
|  | ]),,, [#include <sys/ptrace.h>]) | 
|  |  | 
|  | AC_CHECK_DECLS(m4_normalize([ | 
|  | P_PID, | 
|  | P_PPID, | 
|  | P_PGID, | 
|  | P_SID, | 
|  | P_CID, | 
|  | P_UID, | 
|  | P_GID, | 
|  | P_ALL, | 
|  | P_LWPID | 
|  | ]),,, [#include <sys/wait.h>]) | 
|  |  | 
|  | AC_CHECK_DECLS(m4_normalize([ | 
|  | LO_FLAGS_READ_ONLY, | 
|  | LO_FLAGS_USE_AOPS, | 
|  | LO_FLAGS_AUTOCLEAR, | 
|  | LO_FLAGS_PARTSCAN, | 
|  | LO_FLAGS_DIRECT_IO | 
|  | ]),,, [#include <linux/loop.h>]) | 
|  |  | 
|  | AC_CHECK_DECLS(m4_normalize([ | 
|  | CTL_PROC, | 
|  | CTL_ARLAN, | 
|  | CTL_S390DBF, | 
|  | CTL_SUNRPC, | 
|  | CTL_PM, | 
|  | CTL_FRV, | 
|  | KERN_PRINTK_RATELIMIT, | 
|  | KERN_PRINTK_RATELIMIT_BURST, | 
|  | KERN_PTY, | 
|  | KERN_NGROUPS_MAX, | 
|  | KERN_SPARC_SCONS_PWROFF, | 
|  | KERN_HZ_TIMER, | 
|  | KERN_UNKNOWN_NMI_PANIC, | 
|  | KERN_BOOTLOADER_TYPE, | 
|  | KERN_RANDOMIZE, | 
|  | KERN_SETUID_DUMPABLE, | 
|  | KERN_SPIN_RETRY, | 
|  | KERN_ACPI_VIDEO_FLAGS, | 
|  | KERN_IA64_UNALIGNED, | 
|  | KERN_COMPAT_LOG, | 
|  | KERN_MAX_LOCK_DEPTH, | 
|  | KERN_NMI_WATCHDOG, | 
|  | KERN_PANIC_ON_NMI, | 
|  | NET_LLC, | 
|  | NET_NETFILTER, | 
|  | NET_DCCP, | 
|  | NET_IRDA, | 
|  | NET_CORE_DESTROY_DELAY, | 
|  | NET_CORE_BUDGET, | 
|  | NET_CORE_AEVENT_ETIME, | 
|  | NET_CORE_AEVENT_RSEQTH, | 
|  | NET_CORE_WARNINGS, | 
|  | NET_IPV4_IGMP_MAX_MSF, | 
|  | NET_TCP_NO_METRICS_SAVE, | 
|  | NET_TCP_DEFAULT_WIN_SCALE, | 
|  | NET_TCP_MODERATE_RCVBUF, | 
|  | NET_TCP_TSO_WIN_DIVISOR, | 
|  | NET_TCP_BIC_BETA, | 
|  | NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR, | 
|  | NET_TCP_CONG_CONTROL, | 
|  | NET_TCP_ABC, | 
|  | NET_IPV4_IPFRAG_MAX_DIST, | 
|  | NET_TCP_MTU_PROBING, | 
|  | NET_TCP_BASE_MSS, | 
|  | NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS, | 
|  | NET_TCP_DMA_COPYBREAK, | 
|  | NET_TCP_SLOW_START_AFTER_IDLE, | 
|  | NET_CIPSOV4_CACHE_ENABLE, | 
|  | NET_CIPSOV4_CACHE_BUCKET_SIZE, | 
|  | NET_CIPSOV4_RBM_OPTFMT, | 
|  | NET_CIPSOV4_RBM_STRICTVALID, | 
|  | NET_TCP_AVAIL_CONG_CONTROL, | 
|  | NET_TCP_ALLOWED_CONG_CONTROL, | 
|  | NET_TCP_MAX_SSTHRESH, | 
|  | NET_TCP_FRTO_RESPONSE, | 
|  | NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS, | 
|  | NET_IPV4_CONF_FORCE_IGMP_VERSION, | 
|  | NET_IPV4_CONF_ARP_ANNOUNCE, | 
|  | NET_IPV4_CONF_ARP_IGNORE, | 
|  | NET_IPV4_CONF_PROMOTE_SECONDARIES, | 
|  | NET_IPV4_CONF_ARP_ACCEPT, | 
|  | NET_IPV4_CONF_ARP_NOTIFY, | 
|  | NET_IPV6_MLD_MAX_MSF, | 
|  | NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS, | 
|  | VM_MAX_MAP_COUNT, | 
|  | VM_LAPTOP_MODE, | 
|  | VM_BLOCK_DUMP, | 
|  | VM_HUGETLB_GROUP, | 
|  | VM_VFS_CACHE_PRESSURE, | 
|  | VM_LEGACY_VA_LAYOUT, | 
|  | VM_SWAP_TOKEN_TIMEOUT | 
|  | ]),,, | 
|  | [#include <sys/types.h> | 
|  | #include <linux/sysctl.h>]) | 
|  |  | 
|  | AC_CHECK_DECLS(m4_normalize([ | 
|  | V4L2_FIELD_ANY, | 
|  | V4L2_FIELD_NONE, | 
|  | V4L2_FIELD_TOP, | 
|  | V4L2_FIELD_BOTTOM, | 
|  | V4L2_FIELD_INTERLACED, | 
|  | V4L2_FIELD_SEQ_TB, | 
|  | V4L2_FIELD_SEQ_BT, | 
|  | V4L2_FIELD_ALTERNATE, | 
|  | V4L2_FIELD_INTERLACED_TB, | 
|  | V4L2_FIELD_INTERLACED_BT, | 
|  | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 
|  | V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, | 
|  | V4L2_BUF_TYPE_VIDEO_OUTPUT, | 
|  | V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, | 
|  | V4L2_BUF_TYPE_VIDEO_OVERLAY, | 
|  | V4L2_BUF_TYPE_VBI_CAPTURE, | 
|  | V4L2_BUF_TYPE_VBI_OUTPUT, | 
|  | V4L2_BUF_TYPE_SLICED_VBI_CAPTURE, | 
|  | V4L2_BUF_TYPE_SLICED_VBI_OUTPUT, | 
|  | V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY, | 
|  | V4L2_BUF_TYPE_SDR_CAPTURE, | 
|  | V4L2_BUF_TYPE_SDR_OUTPUT, | 
|  | V4L2_TUNER_RADIO, | 
|  | V4L2_TUNER_ANALOG_TV, | 
|  | V4L2_TUNER_DIGITAL_TV, | 
|  | V4L2_MEMORY_MMAP, | 
|  | V4L2_MEMORY_USERPTR, | 
|  | V4L2_MEMORY_OVERLAY, | 
|  | V4L2_MEMORY_DMABUF, | 
|  | V4L2_COLORSPACE_SMPTE170M, | 
|  | V4L2_COLORSPACE_SMPTE240M, | 
|  | V4L2_COLORSPACE_REC709, | 
|  | V4L2_COLORSPACE_BT878, | 
|  | V4L2_COLORSPACE_470_SYSTEM_M, | 
|  | V4L2_COLORSPACE_470_SYSTEM_BG, | 
|  | V4L2_COLORSPACE_JPEG, | 
|  | V4L2_COLORSPACE_SRGB, | 
|  | V4L2_PRIORITY_UNSET, | 
|  | V4L2_PRIORITY_BACKGROUND, | 
|  | V4L2_PRIORITY_INTERACTIVE, | 
|  | V4L2_PRIORITY_RECORD, | 
|  | V4L2_FRMSIZE_TYPE_DISCRETE, | 
|  | V4L2_FRMSIZE_TYPE_CONTINUOUS, | 
|  | V4L2_FRMSIZE_TYPE_STEPWISE, | 
|  | V4L2_FRMIVAL_TYPE_DISCRETE, | 
|  | V4L2_FRMIVAL_TYPE_CONTINUOUS, | 
|  | V4L2_FRMIVAL_TYPE_STEPWISE, | 
|  | V4L2_CTRL_TYPE_INTEGER, | 
|  | V4L2_CTRL_TYPE_BOOLEAN, | 
|  | V4L2_CTRL_TYPE_MENU, | 
|  | V4L2_CTRL_TYPE_BUTTON, | 
|  | V4L2_CTRL_TYPE_INTEGER64, | 
|  | V4L2_CTRL_TYPE_CTRL_CLASS, | 
|  | V4L2_CTRL_TYPE_STRING, | 
|  | V4L2_CTRL_TYPE_BITMASK, | 
|  | V4L2_CTRL_TYPE_INTEGER_MENU | 
|  | ]),,, [#include <sys/time.h> | 
|  | #include <linux/ioctl.h> | 
|  | #include <linux/types.h> | 
|  | #include <linux/videodev2.h>]) | 
|  |  | 
|  | AC_CHECK_MEMBERS(m4_normalize([ | 
|  | struct v4l2_window.global_alpha, | 
|  | struct v4l2_sdr_format.buffersize | 
|  | ]),,, [#include <sys/time.h> | 
|  | #include <linux/ioctl.h> | 
|  | #include <linux/types.h> | 
|  | #include <linux/videodev2.h>]) | 
|  |  | 
|  | AC_CHECK_SIZEOF([long]) | 
|  | SIZEOF_LONG="$ac_cv_sizeof_long" | 
|  | AC_SUBST(SIZEOF_LONG) | 
|  | AC_CHECK_SIZEOF([long long]) | 
|  | AC_CHECK_SIZEOF([off_t],,[#include <sys/types.h>]) | 
|  | AC_CHECK_SIZEOF([kernel_long_t],,[#include "$srcdir/kernel_types.h"]) | 
|  | SIZEOF_KERNEL_LONG_T="$ac_cv_sizeof_kernel_long_t" | 
|  | AC_SUBST(SIZEOF_KERNEL_LONG_T) | 
|  | AC_CHECK_SIZEOF([struct i64_i32],,[struct i64_i32 {long long i64; int i32;};]) | 
|  |  | 
|  |  | 
|  | AC_CACHE_CHECK([for SIGRTMIN], [st_cv_SIGRTMIN], | 
|  | [[st_cv_SIGRTMIN="$(echo SIGRTMIN | | 
|  | $CPP $CPPFLAGS -P -imacros asm/signal.h - | | 
|  | grep '^[0-9]')" | 
|  | test -n "$st_cv_SIGRTMIN" || st_cv_SIGRTMIN=no]]) | 
|  | if test "x$st_cv_SIGRTMIN" != xno; then | 
|  | AC_DEFINE_UNQUOTED([ASM_SIGRTMIN], [$st_cv_SIGRTMIN], | 
|  | [SIGRTMIN defined in <asm/signal.h>]) | 
|  | fi | 
|  | AC_CACHE_CHECK([for SA_RESTORER], [st_cv_SA_RESTORER], | 
|  | [st_cv_SA_RESTORER="$(echo SA_RESTORER | | 
|  | $CPP $CPPFLAGS -P -imacros asm/signal.h - | | 
|  | grep ^0x)" | 
|  | test -n "$st_cv_SA_RESTORER" || st_cv_SA_RESTORER=no]) | 
|  | if test "x$st_cv_SA_RESTORER" != xno; then | 
|  | AC_DEFINE_UNQUOTED([ASM_SA_RESTORER], [$st_cv_SA_RESTORER], | 
|  | [SA_RESTORER defined in <asm/signal.h>]) | 
|  | fi | 
|  |  | 
|  | AC_CACHE_CHECK([for __builtin_popcount], [st_cv_have___builtin_popcount], | 
|  | [AC_LINK_IFELSE([AC_LANG_PROGRAM([], [__builtin_popcount(0)])], | 
|  | [st_cv_have___builtin_popcount=yes], | 
|  | [st_cv_have___builtin_popcount=no])]) | 
|  | if test "x$st_cv_have___builtin_popcount" = xyes; then | 
|  | AC_DEFINE([HAVE___BUILTIN_POPCOUNT], [1], | 
|  | [Define to 1 if the system provides __builtin_popcount function]) | 
|  | fi | 
|  |  | 
|  | AC_CACHE_CHECK([for program_invocation_name], [st_cv_have_program_invocation_name], | 
|  | [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], | 
|  | [[return !*program_invocation_name]])], | 
|  | [st_cv_have_program_invocation_name=yes], | 
|  | [st_cv_have_program_invocation_name=no])]) | 
|  | if test "x$st_cv_have_program_invocation_name" = xyes; then | 
|  | AC_DEFINE([HAVE_PROGRAM_INVOCATION_NAME], [1], | 
|  | [Define to 1 if the system provides program_invocation_name variable]) | 
|  | fi | 
|  |  | 
|  | AC_CACHE_CHECK([for static_assert], [st_cv_have_static_assert], | 
|  | [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <assert.h>]], | 
|  | [[static_assert(1,"")]] | 
|  | ) | 
|  | ], | 
|  | [st_cv_have_static_assert=yes], | 
|  | [AC_LINK_IFELSE([AC_LANG_PROGRAM([], | 
|  | [[_Static_assert(1,"")]] | 
|  | ) | 
|  | ], | 
|  | [st_cv_have_static_assert=_Static_assert], | 
|  | [st_cv_have_static_assert=no] | 
|  | ) | 
|  | ] | 
|  | ) | 
|  | ] | 
|  | ) | 
|  | case "x$st_cv_have_static_assert" in | 
|  | xyes) | 
|  | AC_DEFINE([HAVE_STATIC_ASSERT], [1], | 
|  | [Define to 1 if the system provides static_assert]) | 
|  | ;; | 
|  | x_Static_assert) | 
|  | AC_DEFINE([HAVE__STATIC_ASSERT], [1], | 
|  | [Define to 1 if the system provides _Static_assert]) | 
|  | ;; | 
|  | esac | 
|  |  | 
|  | AC_CHECK_LIB([dl], [dladdr], [dl_LIBS='-ldl'], [dl_LIBS=]) | 
|  | if test "x$ac_cv_lib_dl_dladdr" = xyes; then | 
|  | AC_DEFINE([HAVE_DLADDR], [1], [Define to 1 if the system provides dladdr]) | 
|  | fi | 
|  | AC_SUBST(dl_LIBS) | 
|  |  | 
|  | saved_LIBS="$LIBS" | 
|  | AC_SEARCH_LIBS([timer_create], [rt]) | 
|  | LIBS="$saved_LIBS" | 
|  | case "$ac_cv_search_timer_create" in | 
|  | no) AC_MSG_FAILURE([failed to find timer_create]) ;; | 
|  | -l*) timer_LIBS="$ac_cv_search_timer_create" ;; | 
|  | *) timer_LIBS= ;; | 
|  | esac | 
|  | AC_SUBST(timer_LIBS) | 
|  |  | 
|  | saved_LIBS="$LIBS" | 
|  | AC_SEARCH_LIBS([clock_gettime], [rt]) | 
|  | LIBS="$saved_LIBS" | 
|  | case "$ac_cv_search_clock_gettime" in | 
|  | no) AC_MSG_FAILURE([failed to find clock_gettime]) ;; | 
|  | -l*) clock_LIBS="$ac_cv_search_clock_gettime" ;; | 
|  | *) clock_LIBS= ;; | 
|  | esac | 
|  | AC_SUBST(clock_LIBS) | 
|  |  | 
|  | saved_LIBS="$LIBS" | 
|  | AC_SEARCH_LIBS([mq_open], [rt]) | 
|  | LIBS="$saved_LIBS" | 
|  | case "$ac_cv_search_mq_open" in | 
|  | -l*) mq_LIBS="$ac_cv_search_mq_open" ;; | 
|  | *) mq_LIBS= ;; | 
|  | esac | 
|  | AC_SUBST(mq_LIBS) | 
|  |  | 
|  | AC_PATH_PROG([PERL], [perl]) | 
|  |  | 
|  | AC_CHECK_TOOL([READELF], [readelf]) | 
|  |  | 
|  | st_STACKTRACE | 
|  |  | 
|  | if test "$arch" = mips && test "$no_create" != yes; then | 
|  | mkdir -p linux/mips | 
|  | if $srcdir/linux/mips/genstub.sh linux/mips; then | 
|  | AC_MSG_RESULT([Generated MIPS syscallent stubs]) | 
|  | else | 
|  | AC_MSG_ERROR([Failed to generate syscallent stubs]) | 
|  | fi | 
|  | fi | 
|  |  | 
|  | AC_ARG_ENABLE([mpers], | 
|  | [AS_HELP_STRING([--enable-mpers=yes|no|check|m32|mx32], | 
|  | [whether to enable multiple personalities support required | 
|  | for proper decoding of structures used by tracees with | 
|  | personalities that differ from the personality of strace, | 
|  | default is yes.])], | 
|  | [case "$enableval" in | 
|  | yes|no|check|m32|mx32) enable_mpers="$enableval" ;; | 
|  | *) AC_MSG_ERROR([bad value $enableval for enable-mpers option. | 
|  | Valid options are: yes, no, check, m32, mx32.]) | 
|  | ;; | 
|  | esac], | 
|  | [enable_mpers=yes]) | 
|  |  | 
|  | st_MPERS([m32], [aarch64|powerpc64|riscv|s390x|sparc64|tile|x32|x86_64]) | 
|  | st_MPERS([mx32], [x86_64]) | 
|  |  | 
|  | AX_VALGRIND_DFLT([sgcheck], [off]) | 
|  | AX_VALGRIND_CHECK | 
|  |  | 
|  | AC_CONFIG_FILES([Makefile | 
|  | tests/Makefile | 
|  | tests-m32/Makefile | 
|  | tests-mx32/Makefile | 
|  | strace.1 | 
|  | strace-log-merge.1 | 
|  | strace.spec | 
|  | debian/changelog]) | 
|  | AC_OUTPUT |