ping^2: [PATCH] add configure check for statfs64()
Bernhard Reutner-Fischer
rep.dot.nop at gmail.com
Tue Dec 9 10:14:34 UTC 2008
On Tue, Nov 25, 2008 at 03:11:41PM +0100, Bernhard Reutner-Fischer wrote:
>ping
ping^2
>
>On Mon, Nov 17, 2008 at 11:40:53AM +0100, Bernhard Reutner-Fischer wrote:
>>Hi,
>>
>>Please find attached 2 patches which
>>
>>- add configure check for statfs64
>>- add fallbacks for !LFS
>>
>>2008-11-17 Bernhard Reutner-Fischer <>
>>
>> * acinclude.m4 (AC_STATFS64): New.
>> * configure.ac (AC_STATFS64): Call.
>> * file.c (printstatfs64): Only compile if
>> the non-standard statfs64() is available.
>> Fallback to stat() if stat64() is unavailable.
>>
>>2008-11-17 Bernhard Reutner-Fischer <>
>>
>> * syscall.c (sys_truncate64, sys_ftruncate64, sys_getdents64,
>> sys_statfs64, sys_fstatfs64): Fallback to !LFS variants if
>> largefile support is unavailable.
>>
>>
>>Please apply.
>
>>diff -u strace-4.5.18.orig/acinclude.m4 strace-4.5.18/acinclude.m4
>>--- strace-4.5.18.orig/acinclude.m4 2004-04-14 04:21:01.000000000 +0200
>>+++ strace-4.5.18/acinclude.m4 2008-10-28 14:24:30.000000000 +0100
>>@@ -210,6 +210,23 @@
>> fi
>> ])
>>
>>+dnl ### A macro to determine whether statfs64 is defined.
>>+AC_DEFUN([AC_STATFS64],
>>+[AC_MSG_CHECKING(for statfs64 in sys/vfs.h)
>>+AC_CACHE_VAL(ac_cv_type_statfs64,
>>+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef LINUX
>>+#include <linux/types.h>
>>+#include <sys/vfs.h>
>>+#endif]], [[struct statfs64 st;]])],[ac_cv_type_statfs64=yes],[ac_cv_type_statfs64=no])])
>>+AC_MSG_RESULT($ac_cv_type_statfs64)
>>+if test "$ac_cv_type_statfs64" = yes
>>+then
>>+ AC_DEFINE([HAVE_STATFS64], 1,
>>+[Define if statfs64 is available in sys/vfs.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)
>>diff -u strace-4.5.18.orig/configure.ac strace-4.5.18/configure.ac
>>--- strace-4.5.18.orig/configure.ac 2008-08-28 23:15:56.000000000 +0200
>>+++ strace-4.5.18/configure.ac 2008-10-28 14:24:41.000000000 +0100
>>@@ -170,6 +170,7 @@
>> struct stat.st_level,
>> struct stat.st_rdev])
>> AC_STAT64
>>+AC_STATFS64
>>
>> AC_TYPE_SIGNAL
>> AC_TYPE_UID_T
>>diff -u strace-4.5.18.orig/file.c strace-4.5.18/file.c
>>--- strace-4.5.18.orig/file.c 2008-08-01 03:13:10.000000000 +0200
>>+++ strace-4.5.18/file.c 2008-10-28 14:27:03.000000000 +0100
>>@@ -1704,13 +1704,17 @@
>> return 0;
>> }
>>
>>-#ifdef LINUX
>>+#if defined LINUX && defined HAVE_STATFS64
>> static void
>> printstatfs64(tcp, addr)
>> struct tcb *tcp;
>> long addr;
>> {
>>+#ifdef HAVE_STAT64
>> struct statfs64 statbuf;
>>+#else
>>+ struct statfs statbuf;
>>+#endif
>>
>> if (syserror(tcp) || !verbose(tcp)) {
>> tprintf("%#lx", addr);
>
>>--- strace-4.5.18/syscall.c 2008-08-25 05:16:26.000000000 +0200
>>+++ strace-4.5.18.new/syscall.c 2008-10-28 14:36:08.000000000 +0100
>>@@ -125,6 +125,18 @@
>> #define TP TRACE_PROCESS
>> #define TS TRACE_SIGNAL
>>
>>+#ifndef HAVE_STATFS64
>>+/*
>>+ * Ugly hacks for systems that do not have LFS
>>+ */
>>+
>>+#define sys_truncate64 sys_truncate
>>+#define sys_ftruncate64 sys_ftruncate
>>+#define sys_getdents64 sys_getdents
>>+#define sys_statfs64 sys_statfs
>>+#define sys_fstatfs64 sys_fstatfs
>>+#endif
>>+
>> static const struct sysent sysent0[] = {
>> #include "syscallent.h"
>> };
>
More information about the Strace-devel
mailing list