patches/strace/4.5.19/150-undef-syscall.patch
author Joachim Nilsson <jocke@vmlinux.org>
Fri Jan 01 12:17:39 2010 +0100 (2010-01-01)
changeset 1671 08a5129e6eb0
permissions -rw-r--r--
debug/strace: fix strace 4.5.19 to properly build with latest Linux kernels

Here's a couple of patches to get strace 4.5.19 to configure and build
properly with the latest kernel headers. Not pretty, but hopefully
enough while we wait for 4.5.20 to be released.

With the current strace-4.5.19 patches I failed to get the configure
script running even on my host environment. Also, when cross building
the configure script needs to look for the proper system headers to be
able to properly set HAVE_LINUX_NETLINK_H. Otherwise you get:

[EXTRA] Building strace
[ERROR] /home/jocke/x-tools/targets/src/strace-4.5.19/net.c:976:
error: field 'nl' has incomplete type
[ERROR] make[2]: *** [net.o] Error 1
[ERROR] make[1]: *** [all] Error 2

The fix was simple, backport a change set from the git[1] tree and run
autoreconf to update the configure script.

[1] - http://strace.git.sourceforge.net/git/gitweb.cgi?p=strace/strace;a=commit;h=f0df31e71a58c6e79ba77c1a9d84b2f38d44bec7
yann@1613
     1
diff -durN strace-4.5.19.orig/linux/syscallent.h strace-4.5.19/linux/syscallent.h
yann@1613
     2
--- strace-4.5.19.orig/linux/syscallent.h	2009-09-01 21:53:29.000000000 +0200
yann@1613
     3
+++ strace-4.5.19/linux/syscallent.h	2009-10-28 18:47:18.000000000 +0100
yann@1613
     4
@@ -130,7 +130,11 @@
yann@1613
     5
 	{ 2,	TF,	sys_statfs,		"statfs"	}, /* 99 */
yann@1613
     6
 	{ 2,	TD,	sys_fstatfs,		"fstatfs"	}, /* 100 */
yann@1613
     7
 	{ 3,	0,	sys_ioperm,		"ioperm"	}, /* 101 */
yann@1613
     8
-	{ 2,	TD,	sys_socketcall,		"socketcall", SYS_socketcall }, /* 102 */
yann@1613
     9
+	{ 2,	TD,	sys_socketcall,		"socketcall"
yann@1613
    10
+#ifdef __NR_socketcall
yann@1613
    11
+	    , SYS_socketcall
yann@1613
    12
+#endif
yann@1613
    13
+								}, /* 102 */
yann@1613
    14
 	{ 3,	0,	sys_syslog,		"syslog"	}, /* 103 */
yann@1613
    15
 	{ 3,	0,	sys_setitimer,		"setitimer"	}, /* 104 */
yann@1613
    16
 	{ 2,	0,	sys_getitimer,		"getitimer"	}, /* 105 */
yann@1613
    17
@@ -145,7 +149,11 @@
yann@1613
    18
 	{ 4,	TP,	sys_wait4,		"wait4", SYS_wait4 }, /* 114 */
yann@1613
    19
 	{ 1,	0,	sys_swapoff,		"swapoff"	}, /* 115 */
yann@1613
    20
 	{ 1,	0,	sys_sysinfo,		"sysinfo"	}, /* 116 */
yann@1613
    21
-	{ 6,	0,	sys_ipc,		"ipc", SYS_ipc }, /* 117 */
yann@1613
    22
+	{ 6,	0,	sys_ipc,		"ipc"
yann@1613
    23
+#ifdef __NR_ipc
yann@1613
    24
+	    , SYS_ipc
yann@1613
    25
+#endif
yann@1613
    26
+								}, /* 117 */
yann@1613
    27
 	{ 1,	TD,	sys_fsync,		"fsync"		}, /* 118 */
yann@1613
    28
 	{ 1,	TS,	sys_sigreturn,		"sigreturn"	}, /* 119 */
yann@1613
    29
 	{ 5,	TP,	sys_clone,		"clone", SYS_clone }, /* 120 */
yann@1613
    30
@@ -282,7 +290,11 @@
yann@1613
    31
 	{ 3,	0,	sys_io_cancel,		"io_cancel"	}, /* 249 */
yann@1613
    32
 	{ 5,	0,	sys_fadvise64,		"fadvise64"	}, /* 250 */
yann@1613
    33
 	{ 5,	0,	printargs,		"SYS_251"	}, /* 251 */
yann@1613
    34
-	{ 1,	TP,	sys_exit,		"exit_group", __NR_exit_group }, /* 252 */
yann@1613
    35
+	{ 1,	TP,	sys_exit,		"exit_group"
yann@1613
    36
+#ifdef __NR_exit_group
yann@1613
    37
+	    , __NR_exit_group
yann@1613
    38
+#endif
yann@1613
    39
+								}, /* 252 */
yann@1613
    40
 	{ 4,	0,	printargs,		"lookup_dcookie"}, /* 253 */
yann@1613
    41
 	{ 1,	0,	sys_epoll_create,	"epoll_create"	}, /* 254 */
yann@1613
    42
 	{ 4,	TD,	sys_epoll_ctl,		"epoll_ctl"	}, /* 255 */