2002-12-22 Roland McGrath <roland@redhat.com>

Update to Autoconf 2.57, and Automakify with version 1.7.
	* Makefile.am: New file.
	* Makefile.in: File removed.
	* configure.in: Moved to ...
	* configure.ac: ... here.  Update for Autoconf 2.5x and Automake.
	* aclocal.m4: Moved to ...
	* acinclude.m4: ... here.  Update for Autoconf 2.5x.
	* AUTHORS: New file, makes automake happy.
	* autogen.sh: File removed.
	* README-CVS: Update to recommend autoreconf instead.
	* file.c: HAVE_ST_* -> HAVE_STRUCT_STAT_ST_*.
	* net.c: HAVE_SIN6_SCOPE_ID -> HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID,
	HAVE_MSG_CONTROL -> HAVE_STRUCT_MSGHDR_MSG_CONTROL.
	* strace.c: *_DECLARED -> HAVE_DECL_*
	* stream.c: HAVE_* -> HAVE_STRUCT_*
This commit is contained in:
Roland McGrath 2002-12-30 00:51:30 +00:00
parent e4d2890139
commit 6d2b34971b
9 changed files with 552 additions and 53 deletions

1
AUTHORS Normal file
View File

@ -0,0 +1 @@
See the file CREDITS. Automake likes us to have this file called AUTHORS.

23
Makefile.am Normal file
View File

@ -0,0 +1,23 @@
# Automake input for strace.
bin_PROGRAMS = strace
man_MANS = strace.1
# OS is one of `linux', `sunos4', `svr4', or `freebsd'.
OS = @opsys@
# ARCH is `i386', `m68k', `sparc', etc.
ARCH = @arch@
# OSARCH is OS/ARCH if a makefile exists there, otherwise just OS.
OSARCH = @osarch@
INCLUDES = -I$(OS)/$(ARCH) -I$(srcdir)/$(OS)/$(ARCH) -I$(OS) -I$(srcdir)/$(OS)
SUBDIRS = $(OSARCH)
DIST_SUBDIRS = test freebsd/i386 sunos4 svr4 linux
strace_SOURCES = strace.c version.c syscall.c util.c desc.c file.c ipc.c \
io.c ioctl.c mem.c net.c process.c bjm.c \
resource.c signal.c sock.c system.c term.c time.c \
proc.c stream.c
EXTRA_DIST = $(man_MANS) errnoent.sh signalent.sh syscallent.sh ioctlsort.c

View File

@ -1,9 +1,5 @@
If you use the CVS version of strace there will be some files missing
that you need to build strace. These files are generated by tools from
the GNU autoconf package.
In order to generate the missing package you can run the autogen.sh script.
For some architectures (powerpc, (ultra)sparc) you need a recent version
of autoconf, otherwise it might fail to recognize your system.
the GNU Autoconf and Automake packages. You need recent versions, which
provide the `autoreconf -i' command that will do everything you need.

281
acinclude.m4 Normal file
View File

@ -0,0 +1,281 @@
dnl
dnl This file contains macros used in configure.ac.
dnl automake uses this file to generate aclocal.m4, which is used by autoconf.
dnl
dnl ### A macro to find the include directory, useful for cross-compiling.
AC_DEFUN(AC_INCLUDEDIR,
[AC_REQUIRE([AC_PROG_AWK])dnl
AC_SUBST(includedir)
AC_MSG_CHECKING(for primary include directory)
includedir=/usr/include
if test -n "$GCC"
then
>conftest.c
new_includedir=`
$CC -v -E conftest.c 2>&1 | $AWK '
/^End of search list/ { print last; exit }
{ last = [$]1 }
'
`
rm -f conftest.c
if test -n "$new_includedir" && test -d "$new_includedir"
then
includedir=$new_includedir
fi
fi
AC_MSG_RESULT($includedir)
])
dnl ### A macro to set gcc warning flags.
define(AC_WARNFLAGS,
[AC_SUBST(WARNFLAGS)
if test -z "$WARNFLAGS"
then
if test -n "$GCC"
then
# If we're using gcc we want warning flags.
WARNFLAGS=-Wall
fi
fi
])
dnl ### A macro to determine if we have a "MP" type procfs
AC_DEFUN(AC_MP_PROCFS,
[AC_MSG_CHECKING(for MP procfs)
AC_CACHE_VAL(ac_cv_mp_procfs,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdio.h>
#include <signal.h>
#include <sys/procfs.h>
main()
{
int pid;
char proc[32];
FILE *ctl;
FILE *status;
int cmd;
struct pstatus pstatus;
if ((pid = fork()) == 0) {
pause();
exit(0);
}
sprintf(proc, "/proc/%d/ctl", pid);
if ((ctl = fopen(proc, "w")) == NULL)
goto fail;
sprintf(proc, "/proc/%d/status", pid);
if ((status = fopen (proc, "r")) == NULL)
goto fail;
cmd = PCSTOP;
if (write (fileno (ctl), &cmd, sizeof cmd) < 0)
goto fail;
if (read (fileno (status), &pstatus, sizeof pstatus) < 0)
goto fail;
kill(pid, SIGKILL);
exit(0);
fail:
kill(pid, SIGKILL);
exit(1);
}
]])],[ac_cv_mp_procfs=yes],[ac_cv_mp_procfs=no],[
# Guess or punt.
case "$host_os" in
svr4.2*|svr5*)
ac_cv_mp_procfs=yes
;;
*)
ac_cv_mp_procfs=no
;;
esac
])])
AC_MSG_RESULT($ac_cv_mp_procfs)
if test "$ac_cv_mp_procfs" = yes
then
AC_DEFINE([HAVE_MP_PROCFS], 1,
[Define if you have a SVR4 MP type procfs.
I.E. /dev/xxx/ctl, /dev/xxx/status.
Also implies that you have the pr_lwp member in prstatus.])
fi
])
dnl ### A macro to determine if procfs is pollable.
AC_DEFUN(AC_POLLABLE_PROCFS,
[AC_MSG_CHECKING(for pollable procfs)
AC_CACHE_VAL(ac_cv_pollable_procfs,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdio.h>
#include <signal.h>
#include <sys/procfs.h>
#include <sys/stropts.h>
#include <poll.h>
#ifdef HAVE_MP_PROCFS
#define PIOCSTOP PCSTOP
#define POLLWANT POLLWRNORM
#define PROC "/proc/%d/ctl"
#define PROC_MODE "w"
int IOCTL (int fd, int cmd, int arg) {
return write (fd, &cmd, sizeof cmd);
}
#else
#define POLLWANT POLLPRI
#define PROC "/proc/%d"
#define PROC_MODE "r+"
#define IOCTL ioctl
#endif
main()
{
int pid;
char proc[32];
FILE *pfp;
struct pollfd pfd;
if ((pid = fork()) == 0) {
pause();
exit(0);
}
sprintf(proc, PROC, pid);
if ((pfp = fopen(proc, PROC_MODE)) == NULL)
goto fail;
if (IOCTL(fileno(pfp), PIOCSTOP, NULL) < 0)
goto fail;
pfd.fd = fileno(pfp);
pfd.events = POLLWANT;
if (poll(&pfd, 1, 0) < 0)
goto fail;
if (!(pfd.revents & POLLWANT))
goto fail;
kill(pid, SIGKILL);
exit(0);
fail:
kill(pid, SIGKILL);
exit(1);
}
]])],[ac_cv_pollable_procfs=yes],[ac_cv_pollable_procfs=no],[
# Guess or punt.
case "$host_os" in
solaris2*|irix5*|svr4.2uw*|svr5*)
ac_cv_pollable_procfs=yes
;;
*)
ac_cv_pollable_procfs=no
;;
esac
])])
AC_MSG_RESULT($ac_cv_pollable_procfs)
if test "$ac_cv_pollable_procfs" = yes
then
AC_DEFINE([HAVE_POLLABLE_PROCFS], 1,
[Define if you have SVR4 and the poll system call works on /proc files.])
fi
])
dnl ### A macro to determine if the prstatus structure has a pr_syscall member.
AC_DEFUN(AC_STRUCT_PR_SYSCALL,
[AC_MSG_CHECKING(for pr_syscall in struct prstatus)
AC_CACHE_VAL(ac_cv_struct_pr_syscall,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/procfs.h>]], [[#ifdef HAVE_MP_PROCFS
pstatus_t s;
s.pr_lwp.pr_syscall
#else
prstatus_t s;
s.pr_syscall
#endif]])],[ac_cv_struct_pr_syscall=yes],[ac_cv_struct_pr_syscall=no])])
AC_MSG_RESULT($ac_cv_struct_pr_syscall)
if test "$ac_cv_struct_pr_syscall" = yes
then
AC_DEFINE([HAVE_PR_SYSCALL], 1,
[Define if the prstatus structure in sys/procfs.h has a pr_syscall member.])
fi
])
dnl ### A macro to determine whether stat64 is defined.
AC_DEFUN(AC_STAT64,
[AC_MSG_CHECKING(for stat64 in (asm|sys)/stat.h)
AC_CACHE_VAL(ac_cv_type_stat64,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef LINUX
#include <linux/types.h>
#include <asm/stat.h>
#else
#include <sys/stat.h>
#endif]], [[struct stat64 st;]])],[ac_cv_type_stat64=yes],[ac_cv_type_stat64=no])])
AC_MSG_RESULT($ac_cv_type_stat64)
if test "$ac_cv_type_stat64" = yes
then
AC_DEFINE([HAVE_STAT64], 1,
[Define if stat64 is available in asm/stat.h.])
fi
])
dnl ### A macro to determine if off_t is a long long
AC_DEFUN(AC_OFF_T_IS_LONG_LONG,
[AC_MSG_CHECKING(for long long off_t)
AC_CACHE_VAL(ac_cv_have_long_long_off_t,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/types.h>
main () {
if (sizeof (off_t) == sizeof (long long) &&
sizeof (off_t) > sizeof (long))
return 0;
return 1;
}
]])],[ac_cv_have_long_long_off_t=yes],[ac_cv_have_long_long_off_t=no],[# Should try to guess here
ac_cv_have_long_long_off_t=no
])])
AC_MSG_RESULT($ac_cv_have_long_long_off_t)
if test "$ac_cv_have_long_long_off_t" = yes
then
AC_DEFINE([HAVE_LONG_LONG_OFF_T], 1, [Define if off_t is a long long.])
fi
])
dnl ### A macro to determine if rlim_t is a long long
AC_DEFUN(AC_RLIM_T_IS_LONG_LONG,
[AC_MSG_CHECKING(for long long rlim_t)
AC_CACHE_VAL(ac_cv_have_long_long_rlim_t,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
main () {
if (sizeof (rlim_t) == sizeof (long long) &&
sizeof (rlim_t) > sizeof (long))
return 0;
return 1;
}
]])],[ac_cv_have_long_long_rlim_t=yes],[ac_cv_have_long_long_rlim_t=no],[# Should try to guess here
ac_cv_have_long_long_rlim_t=no
])])
AC_MSG_RESULT($ac_cv_have_long_long_rlim_t)
if test "$ac_cv_have_long_long_rlim_t" = yes
then
AC_DEFINE([HAVE_LONG_LONG_RLIM_T], 1, [Define if rlim_t is a long long.])
fi
])
dnl ### A macro to determine endianness of long long
AC_DEFUN(AC_LITTLE_ENDIAN_LONG_LONG,
[AC_MSG_CHECKING(for little endian long long)
AC_CACHE_VAL(ac_cv_have_little_endian_long_long,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
int main () {
union {
long long ll;
long l [2];
} u;
u.ll = 0x12345678;
if (u.l[0] == 0x12345678)
return 0;
return 1;
}
]])],[ac_cv_have_little_endian_long_long=yes],[ac_cv_have_little_endian_long_long=no],[# Should try to guess here
ac_cv_have_little_endian_long_long=no
])])
AC_MSG_RESULT($ac_cv_have_little_endian_long_long)
if test "$ac_cv_have_little_endian_long_long" = yes
then
AC_DEFINE([HAVE_LITTLE_ENDIAN_LONG_LONG], 1,
[Define if long long is little-endian.])
fi
])

198
configure.ac Normal file
View File

@ -0,0 +1,198 @@
dnl Process this file with autoconf to create configure. Use autoreconf.
AC_PREREQ(2.57)
AC_INIT([strace],[4.4.90])
AC_CONFIG_SRCDIR([strace.c])
AM_CONFIG_HEADER([config.h])
AM_INIT_AUTOMAKE([foreign check-news dist-bzip2])
AM_MAINTAINER_MODE
AC_CANONICAL_HOST
AC_MSG_CHECKING([for supported operating system])
case "$host_os" in
linux*)
opsys=linux
AC_DEFINE([LINUX], 1, [Define for the Linux operating system.])
;;
sunos4*)
opsys=sunos4
AC_DEFINE([SUNOS4], 1, [Define for the SunOS 4.x operating system.])
;;
solaris2* | sysv[[45]]* | irix[[56]]*)
opsys=svr4
AC_DEFINE([SVR4], 1, [Define for the System V release 4 operating
system or a derivative like Solaris 2.x or Irix 5.x.])
case "$host_os" in
sysv4.2uw*)
AC_DEFINE(UNIXWARE, 2, [Define for UnixWare systems.])
;;
sysv5*)
AC_DEFINE(UNIXWARE, 7, [Define for UnixWare systems.])
;;
esac
;;
freebsd*)
opsys=freebsd
AC_DEFINE([FREEBSD], 1, [Define for the FreeBSD operating system.])
;;
*)
AC_MSG_RESULT([NO!])
AC_MSG_ERROR([operating system $host_os is not supported by strace])
;;
esac
AC_MSG_RESULT($opsys)
AC_MSG_CHECKING([for supported architecture])
case "$host_cpu" in
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.])
;;
sparc*)
arch=sparc
AC_DEFINE([SPARC], 1, [Define for the SPARC architecture.])
;;
mips*)
arch=mips
AC_DEFINE([MIPS], 1, [Define for the MIPS architecture.])
;;
alpha*)
arch=alpha
AC_DEFINE([ALPHA], 1, [Define for the Alpha architecture.])
;;
ppc|powerpc)
arch=powerpc
AC_DEFINE([POWERPC], 1, [Define for the PowerPC architecture.])
;;
arm*)
arch=arm
AC_DEFINE([ARM], 1, [Define for the ARM architecture.])
;;
s390)
arch=s390
AC_DEFINE([S390], 1, [Define for the S390 architecture.])
;;
s390x)
arch=s390x
AC_DEFINE([S390X], 1, [Define for the S390x architecture.])
;;
hppa*|parisc*)
arch=hppa
AC_DEFINE([HPPA], 1, [Define for the HPPA architecture.])
;;
sh)
arch=sh
AC_DEFINE([SH], 1, [Define for the SH architecture.])
;;
x86?64*)
arch=x86_64
AC_DEFINE([X86_64], 1, [Define for the AMD x86-64 architecture.])
;;
*)
AC_MSG_RESULT([NO!])
AC_MSG_ERROR([architecture $host_cpu is not supported by strace])
;;
esac
AC_MSG_RESULT($arch)
osarch="$opsys"
if test -r "$srcdir/$opsys/$arch/Makefile.in"; then
osarch="$opsys/$arch"
fi
AC_SUBST(opsys)
AC_SUBST(arch)
AC_SUBST(osarch)
CFLAGS="-D_GNU_SOURCE $CFLAGS"
AC_PROG_CC
AC_INCLUDEDIR
if test "x$opsys" = "xsunos4" && test "x$arch" = "xsparc"
then
AC_MSG_CHECKING(for valid machine include directory)
if test -d "$includedir/sun4"
then
rm -f machine
ln -s $includedir/sun4 machine
AC_MSG_RESULT(yes)
AC_DEFINE(SUNOS4_KERNEL_ARCH_KLUDGE, 1, [
Define if you are have a SPARC with SUNOS4 and your want a version
of strace that will work on sun4, sun4c and sun4m kernel architectures.
Only useful if you have a symbolic link from machine to /usr/include/sun4
in the compilation directory.])
else
AC_MSG_RESULT(no)
fi
fi
AC_WARNFLAGS
if test "x$opsys" = "xsunos4"
then
if test -n "$GCC"
then
# SunOS 4.x header files don't declare int functions.
WARNFLAGS="$WARNFLAGS -Wno-implicit"
fi
fi
AC_PROG_CPP
AC_PROG_GCC_TRADITIONAL
AC_PROG_INSTALL
AC_C_CONST
AC_HEADER_STDC
AC_HEADER_DIRENT
AC_HEADER_STAT
AC_CHECK_MEMBERS([struct stat.st_blksize,
struct stat.st_blocks,
struct stat.st_aclcnt,
struct stat.st_flags,
struct stat.st_fstype,
struct stat.st_gen,
struct stat.st_level,
struct stat.st_rdev])
AC_STAT64
AC_TYPE_SIGNAL
AC_TYPE_UID_T
AC_TYPE_MODE_T
AC_TYPE_GETGROUPS
AC_HEADER_MAJOR
AC_CHECK_TYPES(sig_atomic_t siginfo_t,,, [#include <signal.h>])
AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,, [#include <netinet/in.h])
AC_CHECK_TYPES([long long])
AC_LITTLE_ENDIAN_LONG_LONG
AC_OFF_T_IS_LONG_LONG
AC_RLIM_T_IS_LONG_LONG
AC_CHECK_TYPES([struct opthdr],,, [#include <sys/socket.h>])
AC_CHECK_TYPES([struct t_opthdr],,, [#include <sys/tiuser.h>])
if test x$opsys != xlinux; then
AC_CHECK_LIB(nsl, main)
fi
AC_CHECK_FUNCS(sigaction strerror strsignal pread sys_siglist _sys_siglist getdents mctl prctl sendmsg inet_ntop if_indextoname)
AC_CHECK_HEADERS([sys/reg.h sys/filio.h sys/acl.h sys/asynch.h sys/door.h stropts.h sys/conf.h sys/stream.h sys/tihdr.h sys/tiuser.h sys/sysconfig.h asm/sigcontext.h ioctls.h sys/ioctl.h sys/ptrace.h termio.h linux/ptrace.h asm/reg.h sys/uio.h sys/aio.h poll.h sys/poll.h sys/vfs.h netinet/tcp.h netinet/udp.h asm/sysmips.h linux/utsname.h sys/nscsys.h], [], [])
AC_CHECK_HEADERS([linux/icmp.h linux/in6.h linux/netlink.h linux/if_packet.h],
[], [], [#include <linux/socket.h>])
AC_MP_PROCFS
AC_POLLABLE_PROCFS
AC_CHECK_MEMBERS([struct msghdr.msg_control],,, [#include <sys/socket.h>])
AC_STRUCT_PR_SYSCALL
AC_CHECK_DECLS([sys_errlist])
AC_CHECK_DECLS([sys_siglist, _sys_siglist],,, [#include <signal.h>])
AC_PATH_PROG([PERL], [perl])
AC_CONFIG_FILES([Makefile $osarch/Makefile])
AC_OUTPUT

48
file.c
View File

@ -725,26 +725,26 @@ struct stat *statbuf;
(unsigned long) statbuf->st_nlink,
(unsigned long) statbuf->st_uid,
(unsigned long) statbuf->st_gid);
#ifdef HAVE_ST_BLKSIZE
#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
tprintf("st_blksize=%lu, ", (unsigned long) statbuf->st_blksize);
#endif /* HAVE_ST_BLKSIZE */
#ifdef HAVE_ST_BLOCKS
#endif /* HAVE_STRUCT_STAT_ST_BLKSIZE */
#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
tprintf("st_blocks=%lu, ", (unsigned long) statbuf->st_blocks);
#endif /* HAVE_ST_BLOCKS */
#endif /* HAVE_STRUCT_STAT_ST_BLOCKS */
}
else
tprintf("{st_mode=%s, ", sprintmode(statbuf->st_mode));
switch (statbuf->st_mode & S_IFMT) {
case S_IFCHR: case S_IFBLK:
#ifdef HAVE_ST_RDEV
#ifdef HAVE_STRUCT_STAT_ST_RDEV
tprintf("st_rdev=makedev(%lu, %lu), ",
(unsigned long) major(statbuf->st_rdev),
(unsigned long) minor(statbuf->st_rdev));
#else /* !HAVE_ST_RDEV */
#else /* !HAVE_STRUCT_STAT_ST_RDEV */
tprintf("st_size=makedev(%lu, %lu), ",
(unsigned long) major(statbuf->st_size),
(unsigned long) minor(statbuf->st_size));
#endif /* !HAVE_ST_RDEV */
#endif /* !HAVE_STRUCT_STAT_ST_RDEV */
break;
default:
tprintf("st_size=%lu, ", statbuf->st_size);
@ -754,24 +754,24 @@ struct stat *statbuf;
tprintf("st_atime=%s, ", sprinttime(statbuf->st_atime));
tprintf("st_mtime=%s, ", sprinttime(statbuf->st_mtime));
tprintf("st_ctime=%s", sprinttime(statbuf->st_ctime));
#if HAVE_ST_FLAGS
#if HAVE_STRUCT_STAT_ST_FLAGS
tprintf(", st_flags=");
if (statbuf->st_flags) {
printflags(fileflags, statbuf->st_flags);
} else
tprintf("0");
#endif
#if HAVE_ST_ACLCNT
#if HAVE_STRUCT_STAT_ST_ACLCNT
tprintf(", st_aclcnt=%d", statbuf->st_aclcnt);
#endif
#if HAVE_ST_LEVEL
#if HAVE_STRUCT_STAT_ST_LEVEL
tprintf(", st_level=%ld", statbuf->st_level);
#endif
#if HAVE_ST_FSTYPE
#if HAVE_STRUCT_STAT_ST_FSTYPE
tprintf(", st_fstype=%.*s",
(int) sizeof statbuf->st_fstype, statbuf->st_fstype);
#endif
#if HAVE_ST_GEN
#if HAVE_STRUCT_STAT_ST_GEN
tprintf(", st_gen=%u", statbuf->st_gen);
#endif
tprintf("}");
@ -858,27 +858,27 @@ long addr;
(unsigned long) statbuf.st_nlink,
(unsigned long) statbuf.st_uid,
(unsigned long) statbuf.st_gid);
#ifdef HAVE_ST_BLKSIZE
#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
tprintf("st_blksize=%lu, ",
(unsigned long) statbuf.st_blksize);
#endif /* HAVE_ST_BLKSIZE */
#ifdef HAVE_ST_BLOCKS
#endif /* HAVE_STRUCT_STAT_ST_BLKSIZE */
#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
tprintf("st_blocks=%lu, ", (unsigned long) statbuf.st_blocks);
#endif /* HAVE_ST_BLOCKS */
#endif /* HAVE_STRUCT_STAT_ST_BLOCKS */
}
else
tprintf("{st_mode=%s, ", sprintmode(statbuf.st_mode));
switch (statbuf.st_mode & S_IFMT) {
case S_IFCHR: case S_IFBLK:
#ifdef HAVE_ST_RDEV
#ifdef HAVE_STRUCT_STAT_ST_RDEV
tprintf("st_rdev=makedev(%lu, %lu), ",
(unsigned long) major(statbuf.st_rdev),
(unsigned long) minor(statbuf.st_rdev));
#else /* !HAVE_ST_RDEV */
#else /* !HAVE_STRUCT_STAT_ST_RDEV */
tprintf("st_size=makedev(%lu, %lu), ",
(unsigned long) major(statbuf.st_size),
(unsigned long) minor(statbuf.st_size));
#endif /* !HAVE_ST_RDEV */
#endif /* !HAVE_STRUCT_STAT_ST_RDEV */
break;
default:
tprintf("st_size=%llu, ", statbuf.st_size);
@ -888,24 +888,24 @@ long addr;
tprintf("st_atime=%s, ", sprinttime(statbuf.st_atime));
tprintf("st_mtime=%s, ", sprinttime(statbuf.st_mtime));
tprintf("st_ctime=%s", sprinttime(statbuf.st_ctime));
#if HAVE_ST_FLAGS
#if HAVE_STRUCT_STAT_ST_FLAGS
tprintf(", st_flags=");
if (statbuf.st_flags) {
printflags(fileflags, statbuf.st_flags);
} else
tprintf("0");
#endif
#if HAVE_ST_ACLCNT
#if HAVE_STRUCT_STAT_ST_ACLCNT
tprintf(", st_aclcnt=%d", statbuf.st_aclcnt);
#endif
#if HAVE_ST_LEVEL
#if HAVE_STRUCT_STAT_ST_LEVEL
tprintf(", st_level=%ld", statbuf.st_level);
#endif
#if HAVE_ST_FSTYPE
#if HAVE_STRUCT_STAT_ST_FSTYPE
tprintf(", st_fstype=%.*s",
(int) sizeof statbuf.st_fstype, statbuf.st_fstype);
#endif
#if HAVE_ST_GEN
#if HAVE_STRUCT_STAT_ST_GEN
tprintf(", st_gen=%u", statbuf.st_gen);
#endif
tprintf("}");

8
net.c
View File

@ -766,7 +766,7 @@ int addrlen;
tprintf("sin6_port=htons(%u), inet_pton(AF_INET6, \"%s\", &sin6_addr), sin6_flowinfo=%u",
ntohs(addrbuf.sa6.sin6_port), string_addr,
addrbuf.sa6.sin6_flowinfo);
#ifdef HAVE_SIN6_SCOPE_ID
#ifdef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
{
#if defined(HAVE_IF_INDEXTONAME) && defined(IN6_IS_ADDR_LINKLOCAL) && defined(IN6_IS_ADDR_MC_LINKLOCAL)
int numericscope = 0;
@ -860,17 +860,17 @@ long addr;
tprintf(", msg_iov(%lu)=", (unsigned long)msg.msg_iovlen);
tprint_iov(tcp, msg.msg_iovlen, (long) msg.msg_iov);
#ifdef HAVE_MSG_CONTROL
#ifdef HAVE_STRUCT_MSGHDR_MSG_CONTROL
tprintf(", msg_controllen=%lu", (unsigned long)msg.msg_controllen);
if (msg.msg_controllen)
tprintf(", msg_control=%#lx, ", (unsigned long) msg.msg_control);
tprintf(", msg_flags=");
if (printflags(msg_flags, msg.msg_flags)==0)
tprintf("0");
#else /* !HAVE_MSG_CONTROL */
#else /* !HAVE_STRUCT_MSGHDR_MSG_CONTROL */
tprintf("msg_accrights=%#lx, msg_accrightslen=%u",
(unsigned long) msg.msg_accrights, msg.msg_accrightslen);
#endif /* !HAVE_MSG_CONTROL */
#endif /* !HAVE_STRUCT_MSGHDR_MSG_CONTROL */
tprintf("}");
}

View File

@ -1209,10 +1209,10 @@ int sig;
#ifndef HAVE_STRERROR
#ifndef SYS_ERRLIST_DECLARED
#if !HAVE_DECL_SYS_ERRLIST
extern int sys_nerr;
extern char *sys_errlist[];
#endif /* SYS_ERRLIST_DECLARED */
#endif /* HAVE_DECL_SYS_ERRLIST */
const char *
strerror(errno)
@ -1231,11 +1231,11 @@ int errno;
#ifndef HAVE_STRSIGNAL
#ifndef SYS_SIGLIST_DECLARED
#ifdef HAVE__SYS_SIGLIST
#if !HAVE_DECL_SYS_SIGLIST
extern char *sys_siglist[];
extern char *_sys_siglist[];
#else
extern char *sys_siglist[];
#endif
#endif /* SYS_SIGLIST_DECLARED */

View File

@ -481,7 +481,7 @@ static struct xlat transport_user_flags [] = {
};
#ifdef HAVE_T_OPTHDR
#ifdef HAVE_STRUCT_T_OPTHDR
static struct xlat xti_level [] = {
{ XTI_GENERIC, "XTI_GENERIC" },
@ -562,9 +562,9 @@ int len;
{
/* We don't know how to tell if TLI (socket) or XTI
optmgmt is being used yet, assume TLI. */
#if defined (HAVE_OPTHDR)
#if defined (HAVE_STRUCT_OPTHDR)
print_sock_optmgmt (tcp, addr, len);
#elif defined (HAVE_T_OPTHDR)
#elif defined (HAVE_STRUCT_T_OPTHDR)
print_xti_optmgmt (tcp, addr, len);
#else
printstr (tcp, addr, len);