dnl Process this file with autoconf to create configure. Use autoreconf.
AC_PREREQ(2.57)
-AC_INIT([strace],[4.7])
+AC_INIT([strace],
+ m4_esyscmd([./git-version-gen .tarball-version]),
+ [strace-devel@lists.sourceforge.net])
AC_CONFIG_SRCDIR([strace.c])
AC_CONFIG_AUX_DIR([.])
-AM_CONFIG_HEADER([config.h])
-AM_INIT_AUTOMAKE([foreign check-news dist-xz no-dist-gzip silent-rules])
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE([foreign dist-xz no-dist-gzip silent-rules parallel-tests])
AM_MAINTAINER_MODE
AC_CANONICAL_HOST
arch=sparc
AC_DEFINE([SPARC], 1, [Define for the SPARC architecture.])
;;
+metag*)
+ arch=metag
+ AC_DEFINE([METAG], 1, [Define for the Meta architecture.])
+ ;;
mips*)
arch=mips
AC_DEFINE([MIPS], 1, [Define for the MIPS architecture.])
powerpc*)
arch=powerpc
AC_DEFINE([POWERPC], 1, [Define for the PowerPC architecture.])
- if test $host_cpu = powerpc64; then
+ AC_TRY_COMPILE(
+[#ifndef __LP64__
+# error 32 bit
+#endif], [], ppc_bits=64, ppc_bits=32)
+ if test "$ppc_bits" = "64"; then
AC_DEFINE([POWERPC64], 1, [Define for the PowerPC64 architecture.])
fi
;;
arch=arm
AC_DEFINE([ARM], 1, [Define for the ARM architecture.])
;;
+aarch64*)
+ arch=aarch64
+ AC_DEFINE([AARCH64], 1, [Define for the AArch64 architecture.])
+ ;;
avr32*)
arch=avr32
AC_DEFINE([AVR32], 1, [Define for the AVR32 architecture.])
;;
+arc*)
+ arch=arc
+ AC_DEFINE([ARC], 1, [Define for the ARC architecture.])
+ ;;
s390)
arch=s390
AC_DEFINE([S390], 1, [Define for the S390 architecture.])
arch=microblaze
AC_DEFINE([MICROBLAZE], 1, [Define for the MicroBlaze architecture.])
;;
+or1k*)
+ arch=or1k
+ AC_DEFINE([OR1K], 1, [Define for the OpenRISC 1000 architecture.])
+ ;;
+
+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])
[#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>])
-AC_CHECK_TYPES([long long])
AC_LITTLE_ENDIAN_LONG_LONG
-AC_OFF_T_IS_LONG_LONG
-AC_CHECK_TYPES([struct opthdr],,, [#include <sys/socket.h>])
-AC_CHECK_TYPES([struct t_opthdr],,, [#include <sys/tiuser.h>])
AC_CHECK_FUNCS(m4_normalize([
+ fopen64
fork
+ fputs_unlocked
if_indextoname
inet_ntop
prctl
stpcpy
strerror
strsignal
- _sys_siglist
- sys_siglist
]))
AC_CHECK_HEADERS(m4_normalize([
asm/cachectl.h
asm/sysmips.h
+ elf.h
inttypes.h
ioctls.h
- libaio.h
linux/capability.h
+ linux/perf_event.h
linux/ptrace.h
linux/utsname.h
mqueue.h
netinet/sctp.h
poll.h
+ scsi/sg.h
stropts.h
sys/acl.h
sys/asynch.h
#include <sys/socket.h>
#include <asm/types.h>])
AC_CHECK_HEADERS([asm/sigcontext.h], [], [], [#include <signal.h>])
-AC_CHECK_TYPES([struct sigcontext_struct,
- struct sigcontext],,, [#include <signal.h>])
+AC_CHECK_TYPES([struct sigcontext],,, [#include <signal.h>])
AC_CHECK_HEADERS([netinet/tcp.h netinet/udp.h],,, [#include <netinet/in.h>])
AC_CHECK_MEMBERS([struct msghdr.msg_control],,, [#include <sys/socket.h>])
-AC_CHECK_MEMBERS([struct T_conn_res.QUEUE_ptr,
- struct T_conn_res.ACCEPTOR_id],,,
-[#include <sys/stream.h>
-#include <sys/tihdr.h>])
-
AC_CHECK_TYPES([struct __old_kernel_stat],,, [#include <asm/stat.h>])
-AC_CHECK_TYPES([struct pt_all_user_regs, struct ia64_fpreg],,,
+AC_CHECK_TYPES([struct pt_all_user_regs, struct ia64_fpreg, struct ptrace_peeksiginfo_args],,,
[#include <sys/ptrace.h>])
AC_CHECK_TYPES([struct user_desc],,, [#include <asm/ldt.h>])
-AC_CHECK_MEMBERS([struct dqblk.dqb_curblocks],,, [#include <sys/quota.h>])
+AC_CHECK_MEMBERS([struct utsname.domainname],,, [#include <sys/utsname.h>])
-AC_CHECK_MEMBERS([struct sigcontext.sc_hi2],,, [#include <signal.h>
-#ifdef HAVE_ASM_SIGCONTEXT_H
-# include <asm/sigcontext.h>
-#endif])
+AC_CHECK_MEMBERS([struct sigevent._sigev_un._pad,
+ struct sigevent.__pad],,, [#include <signal.h>])
-AC_CHECK_MEMBERS([struct utsname.domainname],,, [#include <sys/utsname.h>])
+AC_CHECK_TYPES([struct flock64],,, [#include <fcntl.h>])
AC_CHECK_DECLS([sys_errlist])
-AC_CHECK_DECLS([sys_siglist, _sys_siglist],,, [#include <signal.h>])
AC_CHECK_DECLS(m4_normalize([
PTRACE_EVENT_CLONE,
PTRACE_EVENT_EXEC,
PTRACE_O_TRACEFORK,
PTRACE_O_TRACESYSGOOD,
PTRACE_O_TRACEVFORK,
+ PTRACE_PEEKUSER,
+ PTRACE_POKEUSER,
PTRACE_SETOPTIONS
]),,, [#include <sys/ptrace.h>])
fi)
AC_CHECK_SIZEOF([long])
+AC_CHECK_SIZEOF([long long])
AC_CHECK_SIZEOF([rlim_t],,[#include <sys/resource.h>])
+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_PATH_PROG([PERL], [perl])
AC_CONFIG_FILES([Makefile tests/Makefile])