patches/strace/4.5.18/140-statfs64-check.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 17 22:43:07 2011 +0200 (2011-07-17)
changeset 2893 a8a65758664f
permissions -rw-r--r--
cc/gcc: do not use the core pass-2 to build the baremetal compiler

In case we build a baremetal compiler, use the standard passes:
- core_cc is used to build the C library;
- as such, it is meant to run on build, not host;
- the final compiler is meant to run on host;

As the current final compiler step can not build a baremetal compiler,
call the core backend from the final step.

NB: Currently, newlib is built during the start_files pass, so we have
to have a core compiler by then... Once we can build the baremetal
compiler from the final cc step, then we can move the newlib build to
the proper step, and then get rid of the core pass-1 static compiler...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@951
     1
diff -dur strace-4.5.16.orig/acinclude.m4 strace-4.5.16/acinclude.m4
yann@951
     2
--- strace-4.5.16.orig/acinclude.m4	2004-04-14 04:21:01.000000000 +0200
yann@951
     3
+++ strace-4.5.16/acinclude.m4	2007-07-14 19:25:25.000000000 +0200
yann@951
     4
@@ -210,6 +210,26 @@
yann@951
     5
 fi
yann@951
     6
 ])
yann@951
     7
yann@951
     8
+dnl ### A macro to determine whether statfs64 is defined.
yann@951
     9
+AC_DEFUN([AC_STATFS64],
yann@951
    10
+[AC_MSG_CHECKING(for statfs64 in sys/(statfs|vfs).h)
yann@951
    11
+AC_CACHE_VAL(ac_cv_type_statfs64,
yann@951
    12
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef LINUX
yann@951
    13
+#include <linux/types.h>
yann@951
    14
+#include <sys/statfs.h>
yann@951
    15
+#else
yann@951
    16
+#include <sys/vfs.h>
yann@951
    17
+#endif]], [[struct statfs64 st;]])],[ac_cv_type_statfs64=yes],[ac_cv_type_statfs64=no])])
yann@951
    18
+AC_MSG_RESULT($ac_cv_type_statfs64)
yann@951
    19
+if test "$ac_cv_type_statfs64" = yes
yann@951
    20
+then
yann@951
    21
+	AC_DEFINE([HAVE_STATFS64], 1,
yann@951
    22
+[Define if statfs64 is available in sys/statfs.h or sys/vfs.h.])
yann@951
    23
+fi
yann@951
    24
+])
yann@951
    25
+
yann@951
    26
+
yann@951
    27
+
yann@951
    28
 dnl ### A macro to determine if off_t is a long long
yann@951
    29
 AC_DEFUN([AC_OFF_T_IS_LONG_LONG],
yann@951
    30
 [AC_MSG_CHECKING(for long long off_t)
yann@951
    31
diff -dur strace-4.5.16.orig/configure.ac strace-4.5.16/configure.ac
yann@951
    32
--- strace-4.5.16.orig/configure.ac	2007-01-11 12:37:55.000000000 +0100
yann@951
    33
+++ strace-4.5.16/configure.ac	2007-07-14 19:25:25.000000000 +0200
yann@951
    34
@@ -169,6 +169,7 @@
yann@951
    35
 		  struct stat.st_level,
yann@951
    36
 		  struct stat.st_rdev])
yann@951
    37
 AC_STAT64
yann@951
    38
+AC_STATFS64
yann@951
    39
yann@951
    40
 AC_TYPE_SIGNAL
yann@951
    41
 AC_TYPE_UID_T
yann@951
    42
diff -dur strace-4.5.16.orig/file.c strace-4.5.16/file.c
yann@951
    43
--- strace-4.5.16.orig/file.c	2007-01-15 21:25:52.000000000 +0100
yann@951
    44
+++ strace-4.5.16/file.c	2007-07-14 19:25:25.000000000 +0200
yann@951
    45
@@ -1636,7 +1636,7 @@
yann@951
    46
 	return 0;
yann@951
    47
 }
yann@951
    48
yann@951
    49
-#ifdef LINUX
yann@951
    50
+#ifdef HAVE_STATFS64
yann@951
    51
 static void
yann@951
    52
 printstatfs64(tcp, addr)
yann@951
    53
 struct tcb *tcp;