1 # Configure template for strace. 2 # 3 # Copyright (c) 1999-2001 Wichert Akkerman <wichert (a] deephackmode.org> 4 # Copyright (c) 2002-2009 Roland McGrath <roland (a] redhat.com> 5 # Copyright (c) 2006-2015 Dmitry V. Levin <ldv (a] altlinux.org> 6 # Copyright (c) 2008-2015 Mike Frysinger <vapier (a] gentoo.org> 7 # Copyright (c) 2015 Elvira Khabirova <lineprinter0 (a] gmail.com> 8 # All rights reserved. 9 # 10 # Redistribution and use in source and binary forms, with or without 11 # modification, are permitted provided that the following conditions 12 # are met: 13 # 1. Redistributions of source code must retain the above copyright 14 # notice, this list of conditions and the following disclaimer. 15 # 2. Redistributions in binary form must reproduce the above copyright 16 # notice, this list of conditions and the following disclaimer in the 17 # documentation and/or other materials provided with the distribution. 18 # 3. The name of the author may not be used to endorse or promote products 19 # derived from this software without specific prior written permission. 20 # 21 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 22 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 23 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 24 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 25 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 26 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 30 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 32 AC_PREREQ(2.57) 33 AC_INIT([strace], 34 m4_esyscmd([./git-version-gen .tarball-version]), 35 [strace-devel (a] lists.sourceforge.net]) 36 AC_CONFIG_SRCDIR([strace.c]) 37 AC_CONFIG_AUX_DIR([.]) 38 AC_CONFIG_HEADERS([config.h]) 39 AM_INIT_AUTOMAKE([foreign nostdinc dist-xz no-dist-gzip silent-rules parallel-tests]) 40 AM_MAINTAINER_MODE 41 AC_CANONICAL_HOST 42 43 AC_PROG_CC 44 AX_PROG_CC_FOR_BUILD 45 AC_USE_SYSTEM_EXTENSIONS 46 AC_PROG_RANLIB 47 48 AC_MSG_CHECKING([for supported architecture]) 49 arch_m32= 50 arch_mx32= 51 case "$host_cpu" in 52 bfin) 53 arch=bfin 54 AC_DEFINE([BFIN], 1, [Define for the Blackfin architecture.]) 55 ;; 56 i[[3456]]86|pentium) 57 arch=i386 58 AC_DEFINE([I386], 1, [Define for the i386 architecture.]) 59 ;; 60 ia64) 61 arch=ia64 62 AC_DEFINE([IA64], 1, [Define for the IA64 architecture.]) 63 ;; 64 m68k) 65 arch=m68k 66 AC_DEFINE([M68K], 1, [Define for the m68k architecture.]) 67 ;; 68 sparc64*) 69 arch=sparc64 70 arch_m32=sparc 71 AC_DEFINE([SPARC64], 1, [Define for the SPARC64 architecture.]) 72 ;; 73 sparc*) 74 arch=sparc 75 AC_DEFINE([SPARC], 1, [Define for the SPARC architecture.]) 76 ;; 77 metag*) 78 arch=metag 79 AC_DEFINE([METAG], 1, [Define for the Meta architecture.]) 80 ;; 81 mips*) 82 arch=mips 83 AC_DEFINE([MIPS], 1, [Define for the MIPS architecture.]) 84 ;; 85 alpha*) 86 arch=alpha 87 AC_DEFINE([ALPHA], 1, [Define for the Alpha architecture.]) 88 ;; 89 powerpc*) 90 AC_DEFINE([POWERPC], 1, [Define for the PowerPC architecture.]) 91 AC_TRY_COMPILE( 92 [#ifndef __LP64__ 93 # error 32 bit 94 #endif], [], arch=powerpc64, arch=powerpc) 95 if test "$arch" = "powerpc64"; then 96 arch_m32=powerpc 97 AC_DEFINE([POWERPC64], 1, [Define for the PowerPC64 architecture.]) 98 fi 99 ;; 100 arm*) 101 arch=arm 102 AC_DEFINE([ARM], 1, [Define for the ARM architecture.]) 103 ;; 104 aarch64*) 105 arch=aarch64 106 arch_m32=arm 107 AC_DEFINE([AARCH64], 1, [Define for the AArch64 architecture.]) 108 ;; 109 avr32*) 110 arch=avr32 111 AC_DEFINE([AVR32], 1, [Define for the AVR32 architecture.]) 112 ;; 113 arc*) 114 arch=arc 115 AC_DEFINE([ARC], 1, [Define for the ARC architecture.]) 116 ;; 117 s390) 118 arch=s390 119 AC_DEFINE([S390], 1, [Define for the S390 architecture.]) 120 ;; 121 s390x) 122 arch=s390x 123 AC_DEFINE([S390X], 1, [Define for the S390x architecture.]) 124 ;; 125 hppa*|parisc*) 126 arch=hppa 127 AC_DEFINE([HPPA], 1, [Define for the HPPA architecture.]) 128 ;; 129 sh64*) 130 arch=sh64 131 AC_DEFINE([SH64], 1, [Define for the SH64 architecture.]) 132 ;; 133 sh*) 134 arch=sh 135 AC_DEFINE([SH], 1, [Define for the SH architecture.]) 136 ;; 137 x86?64*) 138 arch_m32=i386 139 AC_TRY_COMPILE( 140 [#ifndef __ILP32__ 141 # error not x32 142 #endif], [], arch=x32, arch=x86_64) 143 if test "$arch" = "x86_64"; then 144 arch_mx32=x32 145 AC_DEFINE([X86_64], 1, [Define for the 64bit AMD x86-64 architecture.]) 146 else 147 AC_DEFINE([X32], 1, [Define for the 32bit AMD x86-64 architecture.]) 148 fi 149 ;; 150 cris|crisv10) 151 arch=crisv10 152 AC_DEFINE([CRISV10], 1, [Define for the CRISv10 architecture.]) 153 ;; 154 crisv32) 155 arch=crisv32 156 AC_DEFINE([CRISV32], 1, [Define for the CRISv32 architecture.]) 157 ;; 158 tile*) 159 arch=tile 160 AC_DEFINE([TILE], 1, [Define for the Tile architecture]) 161 ;; 162 microblaze*) 163 arch=microblaze 164 AC_DEFINE([MICROBLAZE], 1, [Define for the MicroBlaze architecture.]) 165 ;; 166 nios2*) 167 arch=nios2 168 AC_DEFINE([NIOS2], 1, [Define for the Nios-II architecture.]) 169 ;; 170 171 or1k*) 172 arch=or1k 173 AC_DEFINE([OR1K], 1, [Define for the OpenRISC 1000 architecture.]) 174 ;; 175 176 xtensa*) 177 arch=xtensa 178 AC_DEFINE([XTENSA], 1, [Define for the Xtensa architecture]) 179 ;; 180 181 *) 182 AC_MSG_RESULT([NO!]) 183 AC_MSG_ERROR([architecture $host_cpu is not supported by strace]) 184 ;; 185 esac 186 AC_MSG_RESULT($arch) 187 188 test -n "$arch_m32" || 189 arch_m32=$arch 190 test -n "$arch_mx32" || 191 arch_mx32=$arch 192 AC_SUBST(arch) 193 AC_SUBST(arch_m32) 194 AC_SUBST(arch_mx32) 195 196 if test "$arch" = mips; then 197 AC_CACHE_CHECK([for _MIPS_SIM], [st_cv__MIPS_SIM], 198 [AC_COMPUTE_INT([st_cv__MIPS_SIM], [_MIPS_SIM], 199 [#include <sgidefs.h>], 200 [AC_MSG_ERROR([_MIPS_SIM cannot be determined])])]) 201 202 AC_CACHE_CHECK([for MIPS ABI], [st_cv_mips_abi], 203 [AC_COMPILE_IFELSE( 204 [AC_LANG_PROGRAM([[#include <sgidefs.h>]], 205 [[int i[_MIPS_SIM == _MIPS_SIM_ABI32 ? 1 : - 1];]])], 206 [st_cv_mips_abi=o32], 207 [AC_COMPILE_IFELSE( 208 [AC_LANG_PROGRAM([[#include <sgidefs.h>]], 209 [[int i[_MIPS_SIM == _MIPS_SIM_NABI32 ? 1 : - 1];]])], 210 [st_cv_mips_abi=n32], 211 [AC_COMPILE_IFELSE( 212 [AC_LANG_PROGRAM([[#include <sgidefs.h>]], 213 [[int i[_MIPS_SIM == _MIPS_SIM_ABI64 ? 1 : - 1];]])], 214 [st_cv_mips_abi=n64], 215 [st_cv_mips_abi=unknown])])])]) 216 217 case "$st_cv_mips_abi" in 218 o32) AC_DEFINE([LINUX_MIPSO32], [1], [Define for _MIPS_SIM_ABI32.]);; 219 n32) AC_DEFINE([LINUX_MIPSN32], [1], [Define for _MIPS_SIM_NABI32.]);; 220 n64) AC_DEFINE([LINUX_MIPSN64], [1], [Define for _MIPS_SIM_ABI64.]);; 221 *) AC_MSG_ERROR([Unsupported _MIPS_SIM]);; 222 esac 223 fi 224 225 AC_ARG_ENABLE([arm-oabi], 226 [AS_HELP_STRING([--enable-arm-oabi], 227 [enable OABI support on ARM EABI])], 228 [], [enable_arm_oabi=no]) 229 case "$enable_arm_oabi" in 230 yes) enable_arm_oabi=1 ;; 231 no) enable_arm_oabi=0 ;; 232 *) AC_MSG_ERROR([bad value $enable_arm_oabi for arm-oabi option]) ;; 233 esac 234 AC_DEFINE_UNQUOTED([ENABLE_ARM_OABI], [$enable_arm_oabi], 235 [Define to 1 if you want OABI support on ARM EABI.]) 236 237 gl_WARN_ADD([-Wall]) 238 gl_WARN_ADD([-Wwrite-strings]) 239 gl_WARN_ADD([-Wsign-compare]) 240 AC_ARG_ENABLE([gcc-Werror], 241 [AS_HELP_STRING([--enable-gcc-Werror], [turn on gcc's -Werror option])], 242 [case $enableval in 243 yes) gl_WARN_ADD([-Werror]) ;; 244 no) ;; 245 *) AC_MSG_ERROR([bad value $enableval for gcc-Werror option]) ;; 246 esac] 247 ) 248 AC_SUBST([WARN_CFLAGS]) 249 250 AC_PROG_CPP 251 AC_PROG_INSTALL 252 AC_C_CONST 253 AC_C_BIGENDIAN 254 AC_HEADER_STDC 255 AC_HEADER_STDBOOL 256 AC_HEADER_DIRENT 257 AC_HEADER_STAT 258 AC_CHECK_MEMBERS(m4_normalize([ 259 struct stat.st_atim.tv_nsec, 260 struct stat.st_blksize, 261 struct stat.st_blocks, 262 struct stat.st_ctim.tv_nsec, 263 struct stat.st_flags, 264 struct stat.st_fstype, 265 struct stat.st_gen, 266 struct stat.st_mtim.tv_nsec, 267 struct stat.st_rdev 268 ])) 269 270 AC_TYPE_SIGNAL 271 AC_TYPE_UID_T 272 AC_TYPE_MODE_T 273 AC_TYPE_GETGROUPS 274 AC_HEADER_MAJOR 275 AC_CHECK_TYPES([sig_atomic_t],,, [#include <signal.h>]) 276 AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,, 277 [#include <sys/types.h> 278 #include <sys/socket.h> 279 #include <netinet/in.h>]) 280 281 AC_CHECK_FUNCS(m4_normalize([ 282 fanotify_mark 283 fopen64 284 fork 285 fputs_unlocked 286 fstatat 287 ftruncate 288 futimens 289 if_indextoname 290 inet_ntop 291 inet_pton 292 pipe2 293 prctl 294 preadv 295 process_vm_readv 296 pwritev 297 sendmmsg 298 sigaction 299 signalfd 300 stpcpy 301 strerror 302 strsignal 303 utimensat 304 ])) 305 AC_CHECK_HEADERS(m4_normalize([ 306 asm/cachectl.h 307 asm/sysmips.h 308 bluetooth/bluetooth.h 309 elf.h 310 inttypes.h 311 ioctls.h 312 linux/bsg.h 313 linux/falloc.h 314 linux/filter.h 315 linux/hiddev.h 316 linux/ip_vs.h 317 linux/ipc.h 318 linux/mmtimer.h 319 linux/msg.h 320 linux/perf_event.h 321 linux/seccomp.h 322 linux/securebits.h 323 linux/sem.h 324 linux/shm.h 325 linux/utsname.h 326 mqueue.h 327 netinet/sctp.h 328 scsi/sg.h 329 stropts.h 330 sys/conf.h 331 sys/epoll.h 332 sys/eventfd.h 333 sys/fanotify.h 334 sys/ioctl.h 335 sys/ipc.h 336 sys/msg.h 337 sys/reg.h 338 sys/sem.h 339 sys/shm.h 340 sys/signalfd.h 341 sys/vfs.h 342 sys/xattr.h 343 ])) 344 AC_CHECK_HEADERS([linux/mqueue.h],,, [#include <linux/types.h>]) 345 AC_CHECK_HEADERS([linux/icmp.h linux/in6.h linux/netlink.h linux/if_packet.h], 346 [], [], [#include <stddef.h> 347 #include <sys/socket.h> 348 #include <asm/types.h>]) 349 AC_CHECK_HEADERS([asm/sigcontext.h], [], [], [#include <signal.h>]) 350 AC_CHECK_TYPES([struct sigcontext],,, [#include <signal.h>]) 351 AC_CHECK_HEADERS([netinet/tcp.h netinet/udp.h],,, [#include <netinet/in.h>]) 352 AC_CHECK_HEADERS(m4_normalize([ 353 linux/netfilter_arp/arp_tables.h 354 linux/netfilter_bridge/ebtables.h 355 linux/netfilter_ipv4/ip_tables.h 356 linux/netfilter_ipv6/ip6_tables.h 357 ]), [], [], [#include <netinet/in.h> 358 #include <net/if.h>]) 359 360 AC_CHECK_TYPES([struct mmsghdr],,, [#include <sys/socket.h>]) 361 AC_CHECK_MEMBERS([struct msghdr.msg_control],,, [#include <sys/socket.h>]) 362 363 AC_CHECK_MEMBERS(m4_normalize([ 364 struct stat.st_atime_nsec, 365 struct stat.st_ctime_nsec, 366 struct stat.st_mtime_nsec 367 ]),,, [#include <sys/types.h> 368 #include <asm/stat.h>]) 369 370 AC_CHECK_TYPES([struct stat64],,, [#include <sys/types.h> 371 #include <asm/stat.h>]) 372 AC_CHECK_TYPES([struct __old_kernel_stat],,, [#include <asm/stat.h>]) 373 AC_CHECK_TYPES([struct statfs64],,, [#include <sys/vfs.h>]) 374 375 AC_CHECK_TYPES([struct pt_all_user_regs, struct ia64_fpreg, struct ptrace_peeksiginfo_args],,, 376 [#include <sys/ptrace.h>]) 377 378 AC_CHECK_MEMBERS([struct utsname.domainname],,, [#include <sys/utsname.h>]) 379 380 AC_CHECK_MEMBERS([struct sigevent._sigev_un._pad, 381 struct sigevent.__pad, 382 siginfo_t.si_syscall, 383 siginfo_t.si_timerid, 384 siginfo_t.si_overrun],,, [#include <signal.h>]) 385 386 AC_CHECK_TYPES([struct flock, 387 struct flock64, 388 struct __kernel_flock, 389 struct __kernel_flock64],,, [#include <sys/types.h> 390 #include <linux/fcntl.h>]) 391 392 AC_CHECK_TYPES([__kernel_long_t, __kernel_ulong_t],,, [#include <asm/posix_types.h>]) 393 394 AC_CHECK_MEMBERS([struct timex.tai],,, [#include <sys/timex.h>]) 395 396 AC_CHECK_HEADERS([linux/input.h], [ 397 AC_CHECK_MEMBERS([struct input_absinfo.resolution],,, [#include <linux/input.h>]) 398 ]) 399 400 AC_CHECK_HEADERS([linux/bpf.h], [ 401 AC_CACHE_CHECK([whether union bpf_attr.log_buf initialization works], 402 [st_cv_have_union_bpf_attr_log_buf], 403 [AC_COMPILE_IFELSE( 404 [AC_LANG_PROGRAM([[#include <linux/bpf.h>]], 405 [[union bpf_attr a = { .log_buf = 0 };]])], 406 [st_cv_have_union_bpf_attr_log_buf=yes], 407 [st_cv_have_union_bpf_attr_log_buf=no])]) 408 if test $st_cv_have_union_bpf_attr_log_buf = yes; then 409 AC_DEFINE(HAVE_UNION_BPF_ATTR_LOG_BUF, [1], 410 [Define to 1 if union bpf_attr.log_buf initialization works]) 411 fi 412 ]) 413 414 AC_CHECK_DECLS([sys_errlist]) 415 AC_CHECK_DECLS(m4_normalize([ 416 PTRACE_PEEKUSER, 417 PTRACE_POKEUSER 418 ]),,, [#include <sys/ptrace.h>]) 419 420 AC_CHECK_DECLS(m4_normalize([ 421 P_PID, 422 P_PPID, 423 P_PGID, 424 P_SID, 425 P_CID, 426 P_UID, 427 P_GID, 428 P_ALL, 429 P_LWPID 430 ]),,, [#include <sys/wait.h>]) 431 432 AC_CHECK_DECLS(m4_normalize([ 433 LO_FLAGS_READ_ONLY, 434 LO_FLAGS_AUTOCLEAR, 435 LO_FLAGS_PARTSCAN 436 ]),,, [#include <linux/loop.h>]) 437 438 AC_CHECK_DECLS(m4_normalize([ 439 CTL_KERN, 440 CTL_VM, 441 CTL_NET, 442 CTL_PROC, 443 CTL_FS, 444 CTL_DEBUG, 445 CTL_DEV, 446 CTL_BUS, 447 CTL_ABI, 448 CTL_CPU, 449 CTL_ARLAN, 450 CTL_S390DBF, 451 CTL_SUNRPC, 452 CTL_PM, 453 CTL_FRV, 454 KERN_OSTYPE, 455 KERN_OSRELEASE, 456 KERN_OSREV, 457 KERN_VERSION, 458 KERN_SECUREMASK, 459 KERN_PROF, 460 KERN_NODENAME, 461 KERN_DOMAINNAME, 462 KERN_PANIC, 463 KERN_REALROOTDEV, 464 KERN_SPARC_REBOOT, 465 KERN_CTLALTDEL, 466 KERN_PRINTK, 467 KERN_NAMETRANS, 468 KERN_PPC_HTABRECLAIM, 469 KERN_PPC_ZEROPAGED, 470 KERN_PPC_POWERSAVE_NAP, 471 KERN_MODPROBE, 472 KERN_SG_BIG_BUFF, 473 KERN_ACCT, 474 KERN_PPC_L2CR, 475 KERN_RTSIGNR, 476 KERN_RTSIGMAX, 477 KERN_SHMMAX, 478 KERN_MSGMAX, 479 KERN_MSGMNB, 480 KERN_MSGPOOL, 481 KERN_SYSRQ, 482 KERN_MAX_THREADS, 483 KERN_RANDOM, 484 KERN_SHMALL, 485 KERN_MSGMNI, 486 KERN_SEM, 487 KERN_SPARC_STOP_A, 488 KERN_SHMMNI, 489 KERN_OVERFLOWUID, 490 KERN_OVERFLOWGID, 491 KERN_SHMPATH, 492 KERN_HOTPLUG, 493 KERN_IEEE_EMULATION_WARNINGS, 494 KERN_S390_USER_DEBUG_LOGGING, 495 KERN_CORE_USES_PID, 496 KERN_TAINTED, 497 KERN_CADPID, 498 KERN_PIDMAX, 499 KERN_CORE_PATTERN, 500 KERN_PANIC_ON_OOPS, 501 KERN_HPPA_PWRSW, 502 KERN_HPPA_UNALIGNED, 503 KERN_PRINTK_RATELIMIT, 504 KERN_PRINTK_RATELIMIT_BURST, 505 KERN_PTY, 506 KERN_NGROUPS_MAX, 507 KERN_SPARC_SCONS_PWROFF, 508 KERN_HZ_TIMER, 509 KERN_UNKNOWN_NMI_PANIC, 510 KERN_BOOTLOADER_TYPE, 511 KERN_RANDOMIZE, 512 KERN_SETUID_DUMPABLE, 513 KERN_SPIN_RETRY, 514 KERN_ACPI_VIDEO_FLAGS, 515 KERN_IA64_UNALIGNED, 516 KERN_COMPAT_LOG, 517 KERN_MAX_LOCK_DEPTH, 518 KERN_NMI_WATCHDOG, 519 KERN_PANIC_ON_NMI, 520 NET_CORE, 521 NET_ETHER, 522 NET_802, 523 NET_UNIX, 524 NET_IPV4, 525 NET_IPX, 526 NET_ATALK, 527 NET_NETROM, 528 NET_AX25, 529 NET_BRIDGE, 530 NET_ROSE, 531 NET_IPV6, 532 NET_X25, 533 NET_TR, 534 NET_DECNET, 535 NET_ECONET, 536 NET_SCTP, 537 NET_LLC, 538 NET_NETFILTER, 539 NET_DCCP, 540 NET_IRDA, 541 NET_CORE_WMEM_MAX, 542 NET_CORE_RMEM_MAX, 543 NET_CORE_WMEM_DEFAULT, 544 NET_CORE_RMEM_DEFAULT, 545 NET_CORE_DESTROY_DELAY, 546 NET_CORE_MAX_BACKLOG, 547 NET_CORE_FASTROUTE, 548 NET_CORE_MSG_COST, 549 NET_CORE_MSG_BURST, 550 NET_CORE_OPTMEM_MAX, 551 NET_CORE_HOT_LIST_LENGTH, 552 NET_CORE_DIVERT_VERSION, 553 NET_CORE_NO_CONG_THRESH, 554 NET_CORE_NO_CONG, 555 NET_CORE_LO_CONG, 556 NET_CORE_MOD_CONG, 557 NET_CORE_DEV_WEIGHT, 558 NET_CORE_SOMAXCONN, 559 NET_CORE_BUDGET, 560 NET_CORE_AEVENT_ETIME, 561 NET_CORE_AEVENT_RSEQTH, 562 NET_CORE_WARNINGS, 563 NET_IPV4_FORWARD, 564 NET_IPV4_DYNADDR, 565 NET_IPV4_CONF, 566 NET_IPV4_NEIGH, 567 NET_IPV4_ROUTE, 568 NET_IPV4_FIB_HASH, 569 NET_IPV4_NETFILTER, 570 NET_IPV4_TCP_TIMESTAMPS, 571 NET_IPV4_TCP_WINDOW_SCALING, 572 NET_IPV4_TCP_SACK, 573 NET_IPV4_TCP_RETRANS_COLLAPSE, 574 NET_IPV4_DEFAULT_TTL, 575 NET_IPV4_AUTOCONFIG, 576 NET_IPV4_NO_PMTU_DISC, 577 NET_IPV4_TCP_SYN_RETRIES, 578 NET_IPV4_IPFRAG_HIGH_THRESH, 579 NET_IPV4_IPFRAG_LOW_THRESH, 580 NET_IPV4_IPFRAG_TIME, 581 NET_IPV4_TCP_MAX_KA_PROBES, 582 NET_IPV4_TCP_KEEPALIVE_TIME, 583 NET_IPV4_TCP_KEEPALIVE_PROBES, 584 NET_IPV4_TCP_RETRIES1, 585 NET_IPV4_TCP_RETRIES2, 586 NET_IPV4_TCP_FIN_TIMEOUT, 587 NET_IPV4_IP_MASQ_DEBUG, 588 NET_TCP_SYNCOOKIES, 589 NET_TCP_STDURG, 590 NET_TCP_RFC1337, 591 NET_TCP_SYN_TAILDROP, 592 NET_TCP_MAX_SYN_BACKLOG, 593 NET_IPV4_LOCAL_PORT_RANGE, 594 NET_IPV4_ICMP_ECHO_IGNORE_ALL, 595 NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS, 596 NET_IPV4_ICMP_SOURCEQUENCH_RATE, 597 NET_IPV4_ICMP_DESTUNREACH_RATE, 598 NET_IPV4_ICMP_TIMEEXCEED_RATE, 599 NET_IPV4_ICMP_PARAMPROB_RATE, 600 NET_IPV4_ICMP_ECHOREPLY_RATE, 601 NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES, 602 NET_IPV4_IGMP_MAX_MEMBERSHIPS, 603 NET_TCP_TW_RECYCLE, 604 NET_IPV4_ALWAYS_DEFRAG, 605 NET_IPV4_TCP_KEEPALIVE_INTVL, 606 NET_IPV4_INET_PEER_THRESHOLD, 607 NET_IPV4_INET_PEER_MINTTL, 608 NET_IPV4_INET_PEER_MAXTTL, 609 NET_IPV4_INET_PEER_GC_MINTIME, 610 NET_IPV4_INET_PEER_GC_MAXTIME, 611 NET_TCP_ORPHAN_RETRIES, 612 NET_TCP_ABORT_ON_OVERFLOW, 613 NET_TCP_SYNACK_RETRIES, 614 NET_TCP_MAX_ORPHANS, 615 NET_TCP_MAX_TW_BUCKETS, 616 NET_TCP_FACK, 617 NET_TCP_REORDERING, 618 NET_TCP_ECN, 619 NET_TCP_DSACK, 620 NET_TCP_MEM, 621 NET_TCP_WMEM, 622 NET_TCP_RMEM, 623 NET_TCP_APP_WIN, 624 NET_TCP_ADV_WIN_SCALE, 625 NET_IPV4_NONLOCAL_BIND, 626 NET_IPV4_ICMP_RATELIMIT, 627 NET_IPV4_ICMP_RATEMASK, 628 NET_TCP_TW_REUSE, 629 NET_TCP_FRTO, 630 NET_TCP_LOW_LATENCY, 631 NET_IPV4_IPFRAG_SECRET_INTERVAL, 632 NET_IPV4_IGMP_MAX_MSF, 633 NET_TCP_NO_METRICS_SAVE, 634 NET_TCP_DEFAULT_WIN_SCALE, 635 NET_TCP_MODERATE_RCVBUF, 636 NET_TCP_TSO_WIN_DIVISOR, 637 NET_TCP_BIC_BETA, 638 NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR, 639 NET_TCP_CONG_CONTROL, 640 NET_TCP_ABC, 641 NET_IPV4_IPFRAG_MAX_DIST, 642 NET_TCP_MTU_PROBING, 643 NET_TCP_BASE_MSS, 644 NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS, 645 NET_TCP_DMA_COPYBREAK, 646 NET_TCP_SLOW_START_AFTER_IDLE, 647 NET_CIPSOV4_CACHE_ENABLE, 648 NET_CIPSOV4_CACHE_BUCKET_SIZE, 649 NET_CIPSOV4_RBM_OPTFMT, 650 NET_CIPSOV4_RBM_STRICTVALID, 651 NET_TCP_AVAIL_CONG_CONTROL, 652 NET_TCP_ALLOWED_CONG_CONTROL, 653 NET_TCP_MAX_SSTHRESH, 654 NET_TCP_FRTO_RESPONSE, 655 NET_IPV4_ROUTE_FLUSH, 656 NET_IPV4_ROUTE_MIN_DELAY, 657 NET_IPV4_ROUTE_MAX_DELAY, 658 NET_IPV4_ROUTE_GC_THRESH, 659 NET_IPV4_ROUTE_MAX_SIZE, 660 NET_IPV4_ROUTE_GC_MIN_INTERVAL, 661 NET_IPV4_ROUTE_GC_TIMEOUT, 662 NET_IPV4_ROUTE_GC_INTERVAL, 663 NET_IPV4_ROUTE_REDIRECT_LOAD, 664 NET_IPV4_ROUTE_REDIRECT_NUMBER, 665 NET_IPV4_ROUTE_REDIRECT_SILENCE, 666 NET_IPV4_ROUTE_ERROR_COST, 667 NET_IPV4_ROUTE_ERROR_BURST, 668 NET_IPV4_ROUTE_GC_ELASTICITY, 669 NET_IPV4_ROUTE_MTU_EXPIRES, 670 NET_IPV4_ROUTE_MIN_PMTU, 671 NET_IPV4_ROUTE_MIN_ADVMSS, 672 NET_IPV4_ROUTE_SECRET_INTERVAL, 673 NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS, 674 NET_IPV4_CONF_FORWARDING, 675 NET_IPV4_CONF_MC_FORWARDING, 676 NET_IPV4_CONF_PROXY_ARP, 677 NET_IPV4_CONF_ACCEPT_REDIRECTS, 678 NET_IPV4_CONF_SECURE_REDIRECTS, 679 NET_IPV4_CONF_SEND_REDIRECTS, 680 NET_IPV4_CONF_SHARED_MEDIA, 681 NET_IPV4_CONF_RP_FILTER, 682 NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE, 683 NET_IPV4_CONF_BOOTP_RELAY, 684 NET_IPV4_CONF_LOG_MARTIANS, 685 NET_IPV4_CONF_TAG, 686 NET_IPV4_CONF_ARPFILTER, 687 NET_IPV4_CONF_MEDIUM_ID, 688 NET_IPV4_CONF_NOXFRM, 689 NET_IPV4_CONF_NOPOLICY, 690 NET_IPV4_CONF_FORCE_IGMP_VERSION, 691 NET_IPV4_CONF_ARP_ANNOUNCE, 692 NET_IPV4_CONF_ARP_IGNORE, 693 NET_IPV4_CONF_PROMOTE_SECONDARIES, 694 NET_IPV4_CONF_ARP_ACCEPT, 695 NET_IPV4_CONF_ARP_NOTIFY, 696 NET_IPV6_CONF, 697 NET_IPV6_NEIGH, 698 NET_IPV6_ROUTE, 699 NET_IPV6_ICMP, 700 NET_IPV6_BINDV6ONLY, 701 NET_IPV6_IP6FRAG_HIGH_THRESH, 702 NET_IPV6_IP6FRAG_LOW_THRESH, 703 NET_IPV6_IP6FRAG_TIME, 704 NET_IPV6_IP6FRAG_SECRET_INTERVAL, 705 NET_IPV6_MLD_MAX_MSF, 706 NET_IPV6_ROUTE_FLUSH, 707 NET_IPV6_ROUTE_GC_THRESH, 708 NET_IPV6_ROUTE_MAX_SIZE, 709 NET_IPV6_ROUTE_GC_MIN_INTERVAL, 710 NET_IPV6_ROUTE_GC_TIMEOUT, 711 NET_IPV6_ROUTE_GC_INTERVAL, 712 NET_IPV6_ROUTE_GC_ELASTICITY, 713 NET_IPV6_ROUTE_MTU_EXPIRES, 714 NET_IPV6_ROUTE_MIN_ADVMSS, 715 NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS, 716 NET_UNIX_DESTROY_DELAY, 717 NET_UNIX_DELETE_DELAY, 718 NET_UNIX_MAX_DGRAM_QLEN, 719 VM_OVERCOMMIT_MEMORY, 720 VM_PAGE_CLUSTER, 721 VM_DIRTY_BACKGROUND, 722 VM_DIRTY_RATIO, 723 VM_DIRTY_WB_CS, 724 VM_DIRTY_EXPIRE_CS, 725 VM_NR_PDFLUSH_THREADS, 726 VM_OVERCOMMIT_RATIO, 727 VM_PAGEBUF, 728 VM_HUGETLB_PAGES, 729 VM_SWAPPINESS, 730 VM_LOWMEM_RESERVE_RATIO, 731 VM_MIN_FREE_KBYTES, 732 VM_MAX_MAP_COUNT, 733 VM_LAPTOP_MODE, 734 VM_BLOCK_DUMP, 735 VM_HUGETLB_GROUP, 736 VM_VFS_CACHE_PRESSURE, 737 VM_LEGACY_VA_LAYOUT, 738 VM_SWAP_TOKEN_TIMEOUT 739 ]),,, 740 [#include <sys/types.h> 741 #include <linux/sysctl.h>]) 742 743 AC_CHECK_DECLS(m4_normalize([ 744 V4L2_FIELD_ANY, 745 V4L2_FIELD_NONE, 746 V4L2_FIELD_TOP, 747 V4L2_FIELD_BOTTOM, 748 V4L2_FIELD_INTERLACED, 749 V4L2_FIELD_SEQ_TB, 750 V4L2_FIELD_SEQ_BT, 751 V4L2_FIELD_ALTERNATE, 752 V4L2_FIELD_INTERLACED_TB, 753 V4L2_FIELD_INTERLACED_BT, 754 V4L2_BUF_TYPE_VIDEO_CAPTURE, 755 V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, 756 V4L2_BUF_TYPE_VIDEO_OUTPUT, 757 V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, 758 V4L2_BUF_TYPE_VIDEO_OVERLAY, 759 V4L2_BUF_TYPE_VBI_CAPTURE, 760 V4L2_BUF_TYPE_VBI_OUTPUT, 761 V4L2_BUF_TYPE_SLICED_VBI_CAPTURE, 762 V4L2_BUF_TYPE_SLICED_VBI_OUTPUT, 763 V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY, 764 V4L2_TUNER_RADIO, 765 V4L2_TUNER_ANALOG_TV, 766 V4L2_TUNER_DIGITAL_TV, 767 V4L2_MEMORY_MMAP, 768 V4L2_MEMORY_USERPTR, 769 V4L2_MEMORY_OVERLAY, 770 V4L2_MEMORY_DMABUF, 771 V4L2_COLORSPACE_SMPTE170M, 772 V4L2_COLORSPACE_SMPTE240M, 773 V4L2_COLORSPACE_REC709, 774 V4L2_COLORSPACE_BT878, 775 V4L2_COLORSPACE_470_SYSTEM_M, 776 V4L2_COLORSPACE_470_SYSTEM_BG, 777 V4L2_COLORSPACE_JPEG, 778 V4L2_COLORSPACE_SRGB, 779 V4L2_PRIORITY_UNSET, 780 V4L2_PRIORITY_BACKGROUND, 781 V4L2_PRIORITY_INTERACTIVE, 782 V4L2_PRIORITY_RECORD, 783 V4L2_FRMSIZE_TYPE_DISCRETE, 784 V4L2_FRMSIZE_TYPE_CONTINUOUS, 785 V4L2_FRMSIZE_TYPE_STEPWISE, 786 V4L2_FRMIVAL_TYPE_DISCRETE, 787 V4L2_FRMIVAL_TYPE_CONTINUOUS, 788 V4L2_FRMIVAL_TYPE_STEPWISE, 789 V4L2_CTRL_TYPE_INTEGER, 790 V4L2_CTRL_TYPE_BOOLEAN, 791 V4L2_CTRL_TYPE_MENU, 792 V4L2_CTRL_TYPE_BUTTON, 793 V4L2_CTRL_TYPE_INTEGER64, 794 V4L2_CTRL_TYPE_CTRL_CLASS, 795 V4L2_CTRL_TYPE_STRING, 796 V4L2_CTRL_TYPE_BITMASK, 797 V4L2_CTRL_TYPE_INTEGER_MENU 798 ]),,, [#include <linux/videodev2.h>]) 799 800 AC_CACHE_CHECK([for BLKGETSIZE64], [ac_cv_have_blkgetsize64], 801 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ 802 #include <stdlib.h> 803 #include <linux/fs.h>], [return !BLKGETSIZE64;])], 804 [ac_cv_have_blkgetsize64=yes], [ac_cv_have_blkgetsize64=no])] 805 if test $ac_cv_have_blkgetsize64 = yes; then 806 AC_DEFINE([HAVE_BLKGETSIZE64], [1], [Define to 1 if you have BLKGETSIZE64.]) 807 fi) 808 809 AC_CHECK_SIZEOF([long]) 810 AC_CHECK_SIZEOF([long long]) 811 AC_CHECK_SIZEOF([off_t],,[#include <sys/types.h>]) 812 AC_CHECK_SIZEOF([struct i64_i32],,[struct i64_i32 {long long i64; int i32;};]) 813 814 AC_CACHE_CHECK([for SIGRTMIN], [st_cv_SIGRTMIN], 815 [[st_cv_SIGRTMIN="$(echo SIGRTMIN | 816 $CPP $CPPFLAGS -P -imacros asm/signal.h - | 817 grep '^[0-9]')" 818 test -n "$st_cv_SIGRTMIN" || st_cv_SIGRTMIN=no]]) 819 if test "x$st_cv_SIGRTMIN" != xno; then 820 AC_DEFINE_UNQUOTED([ASM_SIGRTMIN], [$st_cv_SIGRTMIN], 821 [SIGRTMIN defined in <asm/signal.h>]) 822 fi 823 AC_CACHE_CHECK([for SA_RESTORER], [st_cv_SA_RESTORER], 824 [st_cv_SA_RESTORER="$(echo SA_RESTORER | 825 $CPP $CPPFLAGS -P -imacros asm/signal.h - | 826 grep ^0x)" 827 test -n "$st_cv_SA_RESTORER" || st_cv_SA_RESTORER=no]) 828 if test "x$st_cv_SA_RESTORER" != xno; then 829 AC_DEFINE_UNQUOTED([ASM_SA_RESTORER], [$st_cv_SA_RESTORER], 830 [SA_RESTORER defined in <asm/signal.h>]) 831 fi 832 833 AC_CACHE_CHECK([for __builtin_popcount], [st_cv_have___builtin_popcount], 834 [AC_LINK_IFELSE([AC_LANG_PROGRAM([], [__builtin_popcount(0)])], 835 [st_cv_have___builtin_popcount=yes], 836 [st_cv_have___builtin_popcount=no])]) 837 if test "x$st_cv_have___builtin_popcount" = xyes; then 838 AC_DEFINE([HAVE___BUILTIN_POPCOUNT], [1], 839 [Define to 1 if the system provides __builtin_popcount function]) 840 fi 841 842 AC_CHECK_LIB([dl], [dladdr], [dl_LIBS='-ldl'], [dl_LIBS=]) 843 if test "x$ac_cv_lib_dl_dladdr" = xyes; then 844 AC_DEFINE([HAVE_DLADDR], [1], [Define to 1 if the system provides dladdr]) 845 fi 846 AC_SUBST(dl_LIBS) 847 848 AC_PATH_PROG([PERL], [perl]) 849 850 dnl stack trace with libunwind 851 libunwind_CPPFLAGS= 852 libunwind_LDFLAGS= 853 libunwind_LIBS= 854 AC_ARG_WITH([libunwind], 855 [AS_HELP_STRING([--with-libunwind], 856 [use libunwind to implement stack tracing support])], 857 [case "${withval}" in 858 yes|no|check) ;; 859 *) with_libunwind=yes 860 libunwind_CPPFLAGS="-I${withval}/include" 861 libunwind_LDFLAGS="-L${withval}/lib" ;; 862 esac], 863 [with_libunwind=check] 864 ) 865 866 use_libunwind=no 867 AS_IF([test "x$with_libunwind" != xno], 868 [saved_CPPFLAGS="$CPPFLAGS" 869 CPPFLAGS="$CPPFLAGS $libunwind_CPPFLAGS" 870 871 AC_CHECK_HEADERS([libunwind-ptrace.h], 872 [saved_LDFLAGS="$LDFLAGS" 873 LDFLAGS="$LDFLAGS $libunwind_LDFLAGS" 874 875 AC_CHECK_LIB([unwind], [backtrace], 876 [libunwind_LIBS="-lunwind $libunwind_LIBS" 877 878 AC_MSG_CHECKING([for unw_create_addr_space in libunwind-generic]) 879 saved_LIBS="$LIBS" 880 LIBS="-lunwind-generic $libunwind_LIBS $LIBS" 881 882 AC_LINK_IFELSE( 883 [AC_LANG_PROGRAM([[#include <libunwind-ptrace.h>]], 884 [[return !unw_create_addr_space(0, 0)]]) 885 ], 886 [AC_MSG_RESULT([yes]) 887 libunwind_LIBS="-lunwind-generic $libunwind_LIBS" 888 889 AC_CHECK_LIB([unwind-ptrace], [_UPT_create], 890 [libunwind_LIBS="-lunwind-ptrace $libunwind_LIBS" 891 use_libunwind=yes 892 ], 893 [if test "x$with_libunwind" != xcheck; then 894 AC_MSG_FAILURE([failed to find _UPT_create in libunwind-ptrace]) 895 fi 896 ], 897 [$libunwind_LIBS] 898 ) 899 ], 900 [AC_MSG_RESULT([no]) 901 if test "x$with_libunwind" != xcheck; then 902 AC_MSG_FAILURE([failed to find unw_create_addr_space in libunwind-generic]) 903 fi 904 ] 905 ) 906 907 LIBS="$saved_LIBS" 908 ], 909 [if test "x$with_libunwind" != xcheck; then 910 AC_MSG_FAILURE([failed to find libunwind]) 911 fi 912 ], 913 [$libunwind_LIBS] 914 ) 915 916 LDFLAGS="$saved_LDFLAGS" 917 ], 918 [if test "x$with_libunwind" != xcheck; then 919 AC_MSG_FAILURE([failed to find libunwind-ptrace.h]) 920 fi 921 ] 922 ) 923 924 CPPFLAGS="$saved_CPPFLAGS" 925 ] 926 ) 927 928 dnl enable libunwind 929 AC_MSG_CHECKING([whether to enable stack tracing support using libunwind]) 930 if test "x$use_libunwind" = xyes; then 931 AC_DEFINE([USE_LIBUNWIND], 1, [Compile stack tracing functionality]) 932 AC_SUBST(libunwind_LIBS) 933 AC_SUBST(libunwind_LDFLAGS) 934 AC_SUBST(libunwind_CPPFLAGS) 935 fi 936 AM_CONDITIONAL([USE_LIBUNWIND], [test "x$use_libunwind" = xyes]) 937 AC_MSG_RESULT([$use_libunwind]) 938 939 if test "$arch" = mips && test "$no_create" != yes; then 940 mkdir -p linux/mips 941 if $srcdir/linux/mips/genstub.sh linux/mips; then 942 AC_MSG_RESULT([Generated MIPS syscallent stubs]) 943 else 944 AC_MSG_FAILURE([Failed to generate syscallent stubs]) 945 fi 946 fi 947 948 st_MPERS([m32], [aarch64|powerpc64|sparc64|tile|x32|x86_64]) 949 st_MPERS([mx32], [x86_64]) 950 951 AC_CONFIG_FILES([Makefile tests/Makefile tests-m32/Makefile tests-mx32/Makefile]) 952 AC_OUTPUT 953