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