I've found that ltp didn't compile on Debian because of old kernel  headers, which contain taskstats struct without some of the needed fields. This autoconf test detects it and disables the code that would otherwise break. Signed-off-by: Jiri Palecek <jpalecek@web.de>.
diff --git a/configure.ac b/configure.ac
index c534c97..9fc1696 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,5 +20,6 @@
 LTP_CHECK_SYSCALL_SIGNALFD
 LTP_CHECK_SELINUX
 LTP_CHECK_CRYPTO
+LTP_CHECK_TASKSTATS
 
 AC_OUTPUT
diff --git a/include/config.h.default b/include/config.h.default
index 9125d85..b9a6731 100644
--- a/include/config.h.default
+++ b/include/config.h.default
@@ -14,3 +14,5 @@
 
 /* ifaddrs.h is in glibc-2.3+ */
 #define HAVE_IFADDRS_H 1
+
+#define HAVE_TASKSTATS_FREEPAGES_COUNT 1
diff --git a/m4/ltp-taskstats.m4 b/m4/ltp-taskstats.m4
new file mode 100644
index 0000000..54da783
--- /dev/null
+++ b/m4/ltp-taskstats.m4
@@ -0,0 +1,38 @@
+dnl
+dnl Copyright (c) Jiri Palecek 2009
+dnl
+dnl This program is free software;  you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY;  without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+dnl the GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program;  if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+dnl
+
+
+AC_DEFUN([LTP_CHECK_TASKSTATS],
+_LTP_CHECK_TASKSTATS_FREEPAGES
+)dnl
+
+dnl _LTP_CHECK_TASKSTATS_FREEPAGES
+dnl ----------------------------------------
+dnl
+dnl Check for taskstat.freepages_* members, introduced to the kernel
+dnl in commit 016ae219 in July 2008
+dnl
+
+AC_DEFUN([_LTP_CHECK_TASKSTATS_FREEPAGES],
+[dnl
+AC_CHECK_MEMBERS([struct taskstats.freepages_count],[],[],[dnl
+#include <linux/types.h>
+#include <linux/taskstats.h>
+])
+]dnl
+)dnl
diff --git a/testcases/kernel/controllers/cgroup/getdelays.c b/testcases/kernel/controllers/cgroup/getdelays.c
index 13f7b3a..9fe2831 100644
--- a/testcases/kernel/controllers/cgroup/getdelays.c
+++ b/testcases/kernel/controllers/cgroup/getdelays.c
@@ -199,8 +199,10 @@
 	       "SWAP  %15s%15s\n"
 	       "      %15llu%15llu\n"
 	       "RECLAIM  %12s%15s\n"
-	       "      %15llu%15llu\n",
-	       "count", "real total", "virtual total", "delay total",
+#ifdef HAVE_TASKSTATS_FREEPAGES_COUNT
+	       "      %15llu%15llu\n"
+#endif
+	       , "count", "real total", "virtual total", "delay total",
 	       (unsigned long long)t->cpu_count,
 	       (unsigned long long)t->cpu_run_real_total,
 	       (unsigned long long)t->cpu_run_virtual_total,
@@ -211,9 +213,12 @@
 	       "count", "delay total",
 	       (unsigned long long)t->swapin_count,
 	       (unsigned long long)t->swapin_delay_total,
-	       "count", "delay total",
-	       (unsigned long long)t->freepages_count,
-	       (unsigned long long)t->freepages_delay_total);
+	       "count", "delay total"
+#ifdef HAVE_TASKSTATS_FREEPAGES_COUNT
+	       , (unsigned long long)t->freepages_count,
+	       (unsigned long long)t->freepages_delay_total
+#endif
+	       );
 }
 
 void task_context_switch_counts(struct taskstats *t)