All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mikko Rapeli <mikko.rapeli@iki.fi>
To: linux-kernel@vger.kernel.org
Cc: mikko.rapeli@iki.fi
Subject: [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers
Date: Thu, 15 Oct 2015 07:55:40 +0200	[thread overview]
Message-ID: <1444888618-4506-3-git-send-email-mikko.rapeli@iki.fi> (raw)
In-Reply-To: <1444888618-4506-1-git-send-email-mikko.rapeli@iki.fi>

Users of kernel header files would be happier if they did not contain
kernel specific parts and would contain #include statements for all
other header files that they depend on, and in general would compile.

For each header file exported to userspace, this script creates
a simple .c file which just includes the header file. Then it
tries to compile it together with minimal header files from GCC
and libc, and reports results.

Default libc and GCC header file locations are parsed from compiler
configuration.

Kernel headers depend on GCC headers so their path is included in
the test compiler command line.

Some gcc and kernel headers depend on libc headers which are made available
by copying from the compiler default location to a temporary location and
removing possibly existing kernel headers from this directory. This is a bit
of a hack but seems to work in multiple environments.

Tested natively on:

Debian unstable, i586-linux-gnu and gcc 4.9.2
Raspbian Wheezy, arm-linux-gnueabihf and gcc 4.6.3
Ubuntu 12.04 LTS, x86_64-linux-gnu and gcc 4.6.3

Tested cross compilation using standard CROSS_COMPILE=/path/to/gcc with:

arm-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09) 4.9.2 20140904 (prerelease)

Execute the script in the directory where kernel header files are installed.
For example:

$ make headers_install
$ cd usr/include
$ ../../scripts/headers_compile_test.sh

Example statistics from 3.18.4 kernel:

130 files failed the compile test.
609 files passed the compile test.

Example error types from 3.18.4 kernel:

$ ../../scripts/headers_compile_test.sh 2>&1 | \
grep error: | sed -e 's/.*error://g' | sort | uniq -c | sort -rn

    352  unknown type name ‘uint32_t’
    134  unknown type name ‘uint64_t’
    103  unknown type name ‘size_t’
     43  unknown type name ‘__kernel_ulong_t’
     38  unknown type name ‘uint8_t’
     24  unknown type name ‘int32_t’
     22  field ‘addr’ has incomplete type
     18  field ‘tstamp’ has incomplete type
     16  unknown type name ‘__kernel_time_t’
     16  field ‘in’ has incomplete type
     16  field ‘in6’ has incomplete type
     14  unknown type name ‘__be16’
     13  ‘IFNAMSIZ’ undeclared here (not in a function)
     12  unknown type name ‘uint16_t’
      9  field ‘ifru_netmask’ has incomplete type
      9  field ‘ifru_hwaddr’ has incomplete type
      9  field ‘ifru_dstaddr’ has incomplete type
      9  field ‘ifru_broadaddr’ has incomplete type
      9  field ‘ifru_addr’ has incomplete type
      8  unknown type name ‘__kernel_pid_t’
      7  unknown type name ‘u_short’
      7  unknown type name ‘pid_t’
      6  invalid application of ‘sizeof’ to incomplete type ‘struct timespec’
      6  field ‘src’ has incomplete type
      6  field ‘audio_tstamp’ has incomplete type
      6  array type has incomplete element type
      5  unknown type name ‘__kernel_long_t’
      5  requested alignment is not an integer constant
      5  field ‘smsk’ has incomplete type
      4  unknown type name ‘__kernel_uid32_t’
      4  unknown type name ‘__kernel_gid32_t’
      4  ‘ETH_ALEN’ undeclared here (not in a function)
      3  unknown type name ‘int64_t’
      3  unknown type name ‘caddr_t’
      3  ‘IPSET_ERR_TYPE_SPECIFIC’ undeclared here (not in a function)
      3  field ‘trigger_tstamp’ has incomplete type
      3  field ‘src_addr’ has incomplete type
      3  field ‘sin_addr’ has incomplete type
      3  field ‘laddr’ has incomplete type
      3  field ‘id’ has incomplete type
      3  field ‘dmsk’ has incomplete type
      3  field ‘bssid’ has incomplete type
      3  expected specifier-qualifier-list before ‘uint64_t’
      2  unknown type name ‘u_long’
      2  unknown type name ‘stack_t’
      2  unknown type name ‘sigset_t’
      2  unknown type name ‘sa_family_t’
      2  unknown type name ‘__kernel_mode_t’
      2  unknown type name ‘__kernel_key_t’
      2  unknown type name ‘elf_gregset_t’
      2  unknown type name ‘bool’
      2  ‘uint64_t’ undeclared here (not in a function)
      2  ‘true’ undeclared (first use in this function)
      2  ‘NAME_MAX’ undeclared here (not in a function)
      2  ‘__kernel_mode_t’ undeclared here (not in a function)
      2  invalid application of ‘sizeof’ to incomplete type ‘struct sockaddr’
      2  field ‘uc_mcontext’ has incomplete type
      2  field ‘tmsk’ has incomplete type
      2  field ‘tgt’ has incomplete type
      2  field ‘shm_perm’ has incomplete type
      2  field ‘sem_perm’ has incomplete type
      2  field ‘raddr’ has incomplete type
      2  field ‘msg_perm’ has incomplete type
      2  field ‘grp’ has incomplete type
      2  field ‘dst’ has incomplete type
      2  field ‘dst_addr’ has incomplete type
      2  field ‘arp_pa’ has incomplete type
      2  field ‘arp_netmask’ has incomplete type
      2  field ‘arp_ha’ has incomplete type
      2  ‘false’ undeclared (first use in this function)
      1  xen/interface/xen.h: No such file or directory
      1  via_drmclient.h: No such file or directory
      1  unknown type name ‘wait_queue_head_t’
      1  unknown type name ‘snd_seq_client_type_t’
      1  unknown type name ‘int16_t’
      1  unknown type name ‘ino_t’
      1  unknown type name ‘elf_greg_t’
      1  unknown type name ‘elf_fpxregset_t’
      1  unknown type name ‘elf_fpregset_t’
      1  unknown type name ‘__be32’
      1  ‘SIOCDEVPRIVATE’ undeclared here (not in a function)
      1  ‘sa_family_t’ undeclared here (not in a function)
      1  ‘NULL’ undeclared (first use in this function)
      1  ‘MSG_FIN’ undeclared here (not in a function)
      1  ‘MAX_IPOPTLEN’ undeclared here (not in a function)
      1  ‘MAX_ADDR_LEN’ undeclared here (not in a function)
      1  ‘IFHWADDRLEN’ undeclared here (not in a function)
      1  field ‘vmask’ has incomplete type
      1  field ‘vifc_rmt_addr’ has incomplete type
      1  field ‘vifc_lcl_addr’ has incomplete type
      1  field ‘vaddr’ has incomplete type
      1  field ‘uc_chain’ has incomplete type
      1  field ‘tgt_ip’ has incomplete type
      1  field ‘tcp’ has incomplete type
      1  field ‘sw_reserved’ has incomplete type
      1  field ‘sspp_addr’ has incomplete type
      1  field ‘ssp_addr’ has incomplete type
      1  field ‘src_mask’ has incomplete type
      1  field ‘src_ip’ has incomplete type
      1  field ‘spt_address’ has incomplete type
      1  field ‘spp_address’ has incomplete type
      1  field ‘spinfo_address’ has incomplete type
      1  field ‘spc_aaddr’ has incomplete type
      1  field ‘sas_obs_rto_ipaddr’ has incomplete type
      1  field ‘saddr’ has incomplete type
      1  field ‘rtmsg_src’ has incomplete type
      1  field ‘rtmsg_gateway’ has incomplete type
      1  field ‘rtmsg_dst’ has incomplete type
      1  field ‘rt_genmask’ has incomplete type
      1  field ‘rt_gateway’ has incomplete type
      1  field ‘rt_dst’ has incomplete type
      1  field ‘real’ has incomplete type
      1  field ‘prefix’ has incomplete type
      1  field ‘obj_list’ has incomplete type
      1  field ‘mfcc_origin’ has incomplete type
      1  field ‘mfcc_mcastgrp’ has incomplete type
      1  field ‘mf6cc_origin’ has incomplete type
      1  field ‘mf6cc_mcastgrp’ has incomplete type
      1  field ‘mask’ has incomplete type
      1  field ‘ival2’ has incomplete type
      1  field ‘ival1’ has incomplete type
      1  field ‘iph’ has incomplete type
      1  field ‘ip’ has incomplete type
      1  field ‘im_src’ has incomplete type
      1  field ‘im_dst’ has incomplete type
      1  field ‘im6_src’ has incomplete type
      1  field ‘im6_dst’ has incomplete type
      1  field ‘gw’ has incomplete type
      1  field ‘expected’ has incomplete type
      1  field ‘dst_mask’ has incomplete type
      1  field ‘dest_addr’ has incomplete type
      1  field ‘daddr’ has incomplete type
      1  field ‘ap_addr’ has incomplete type
      1  field ‘a6’ has incomplete type
      1  field ‘a4’ has incomplete type
      1  expected specifier-qualifier-list before ‘DECLARE_BITMAP’
      1  expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘snd_seq_client_type_t’
      1  #error "patchkey.h included directly"
      1  ‘DLM_RESNAME_MAXLEN’ undeclared here (not in a function)

Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
 scripts/headers_compile_test.sh | 143 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 143 insertions(+)
 create mode 100755 scripts/headers_compile_test.sh

diff --git a/scripts/headers_compile_test.sh b/scripts/headers_compile_test.sh
new file mode 100755
index 0000000..9a73945
--- /dev/null
+++ b/scripts/headers_compile_test.sh
@@ -0,0 +1,143 @@
+#!/bin/bash
+# bash due to arithmetics and pipefail
+set -euo pipefail
+
+# Debugging
+#set -x
+
+echo Simple compile test for header files meant for userspace.
+
+# sanity test
+if [ ! -d ./linux ]; then
+	echo Sanity check error: ./linux directory not found
+	echo Should be called in usr/include after \'make headers_install\'.
+	echo Returns number of failed files, 0 if none.
+	exit 1
+fi
+
+# Support CC variable for compiler and ccache, and cross compiling.
+# CC is used without quotes to support CC="ccache gcc".
+set +u
+if [ "$CC"foobar == "foobar" ]; then
+	CC=cc
+fi
+
+if [ "$CROSS_COMPILE"foobar != "foobar" ]; then
+	# Using gcc name since some cross compiler tool chains don't provide
+	# the cc symlink
+	CC="$CROSS_COMPILE"gcc
+fi
+set -u
+
+# Kernel headers refer to some gcc and libc headers so make them available.
+set +u
+if [ "$ARCH_TRIPLET"foobar == "foobar" ]; then
+	# Taking triplet from gcc/cpp
+	ARCH_TRIPLET="$( $CC -v -x c -E - < /dev/null 2>&1 | \
+			grep Target | sed -e 's/Target: //' )"
+fi
+
+if [ "$LIBC"foobar == "foobar" ]; then
+	# trying to grep libc includes from gcc/cpp defaults
+	_TEMP="$( $CC -v -x c -E - < /dev/null 2>&1 | \
+		sed -n -e '/^#include <...> search starts here:$/,/^End of search list.$/{//!p}' | \
+		sed -e 's/^\ \//\//g' | \
+		grep '/usr/include' )"
+
+	# sanity check and prepare LIBC dirs
+	for d in $_TEMP; do
+		if [ ! -d "$d" ]; then
+			echo "$d not a directory"
+			exit 1
+		fi
+		LIBC="$LIBC $d"
+	done
+fi
+set -u
+
+# Copy libc include files to temp directory for the tests.
+
+COMPILE_TEST_INC=../headers_compile_test_include
+rm -rf "$COMPILE_TEST_INC"
+mkdir -p "$COMPILE_TEST_INC"
+
+for d in $LIBC; do
+	# check if last part of dir is the arch triplet, cross compile paths
+	# can have it also elsewhere so just the last one counts.
+	if !( echo "$d" | egrep "$ARCH_TRIPLET$" > /dev/null ); then
+		# hopefully just main libc dir, e.g. /usr/include
+		cp -a "$d"/* "$COMPILE_TEST_INC"/
+	elif ( echo "$d" | egrep "$ARCH_TRIPLET$" > /dev/null ); then
+		# hopefully the arch specific dir, e.g. /usr/include/x86_64-linux-gnu
+		cp -ar "$d"/* "$COMPILE_TEST_INC/"
+	else
+		echo "$d unexpected, bailing out"
+		exit 1
+	fi
+done
+
+# Simulate libc headers without kernel headers by removing
+# all known kernel header dirs from the copied libc ones.
+# This seems to magically work.
+_KERNEL_DIRS="$( find . -type d | grep -v '^\.$' )"
+( cd "$COMPILE_TEST_INC" && rm -rf $_KERNEL_DIRS )
+
+# GCC headers
+set +u
+if [ "$GCC_INC"foobar == "foobar" ]; then
+	# Take from $CC default system include paths, filter out
+	# /usr/local/include and /usr/include stuff first, then try to match
+	# for gcc.
+	_TEMP="$( $CC -v -x c -E - < /dev/null 2>&1 | \
+		sed -n -e '/^#include <...> search starts here:$/,/^End of search list.$/{//!p}' | \
+		sed -e 's/^\ \//\//g' | \
+		egrep -v '/usr/local/include' | \
+		egrep -v '/usr/include' | \
+		grep gcc | \
+		xargs )"
+
+	# merge and prepare for use with $CC
+	for d in $_TEMP; do
+		# sanity test
+		if [ ! -d "$d" ]; then
+			echo "$d: is not a directory"
+			exit 1
+		fi
+		GCC_INC="$GCC_INC -I $d"
+	done
+fi
+set -u
+
+# For each header file, create a .c which includes the header file
+# and try to compile it using only current directory for searching other
+# included header files.
+_FAILED=0
+_PASSED=0
+for f in $( find . -name "*\.h" | xargs ); do
+	_FAIL=0
+	CFILE="$( echo "$( dirname "$f" )"/"$( basename "$f" .h )".c )"
+
+	# create .c file
+	echo "#include <"$( echo "$f" | sed -e 's|^.\/||' )">" \
+		> "$(dirname "$f")"/"$(basename "$f" .h)".c
+
+	# compile test, CC not quoted to support ccache
+	echo $CC -Wall -c -nostdinc $GCC_INC -I . -I "$COMPILE_TEST_INC" -I "$COMPILE_TEST_INC/$ARCH_TRIPLET" "$CFILE"
+	$CC -Wall -c -nostdinc $GCC_INC -I . -I "$COMPILE_TEST_INC" -I "$COMPILE_TEST_INC/$ARCH_TRIPLET" "$CFILE" \
+		|| _FAIL=1
+
+	# report errors
+	if [ "$_FAIL" -gt 0 ]; then
+		echo "FAILED: $f"
+		_FAILED="$(( $_FAILED + 1 ))"
+	else
+		echo "PASSED: $f"
+		_PASSED="$(( $_PASSED + 1))"
+	fi
+done
+
+echo Statistics:
+echo "$_FAILED files failed the compile test."
+echo "$_PASSED files passed the compile test."
+
+exit "$_FAILED"
-- 
2.5.0


  parent reply	other threads:[~2015-10-15  5:58 UTC|newest]

Thread overview: 206+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-15  5:55 [PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
2015-10-15  5:55 ` [PATCH v4 01/79] headers_install.sh: enhance error handling Mikko Rapeli
2015-10-15  5:55 ` Mikko Rapeli [this message]
2015-10-15  7:17   ` [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers Alexander Stein
2015-10-15  7:29     ` Mikko Rapeli
2015-11-10 15:03     ` Gabriel Laskar
2015-10-15  5:55 ` [PATCH v4 03/79] drm.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15  5:55 ` [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h Mikko Rapeli
2015-10-15 13:32   ` Alex Deucher
2015-10-15 13:32     ` Alex Deucher
2015-10-15 13:48     ` Mikko Rapeli
2015-10-15 13:48       ` Mikko Rapeli
2015-10-21 15:09       ` Emil Velikov
2015-10-21 15:09         ` Emil Velikov
2015-10-21 15:18         ` Alex Deucher
2015-10-21 15:18           ` Alex Deucher
2015-10-21 16:21           ` Emil Velikov
2015-10-21 16:21             ` Emil Velikov
2015-10-21 16:27             ` Alex Deucher
2015-10-21 16:27               ` Alex Deucher
2015-10-21 17:42               ` Emil Velikov
2015-10-21 17:42                 ` Emil Velikov
2015-10-15  5:55 ` [PATCH v4 05/79] exynos_drm.h: use " Mikko Rapeli
2015-10-15  5:55   ` Mikko Rapeli
2015-10-15  5:55   ` Mikko Rapeli
2015-10-15 16:17   ` Gustavo Padovan
2015-10-15 16:17     ` Gustavo Padovan
2015-10-15 16:17     ` Gustavo Padovan
2015-10-15  5:55 ` [PATCH v4 06/79] nouveau_drm.h: use __u32 and " Mikko Rapeli
2015-10-15  5:55 ` [PATCH v4 07/79] radeon_drm.h: " Mikko Rapeli
2015-10-15  5:55 ` [PATCH v4 08/79] r128_drm.h: include drm/drm.h Mikko Rapeli
2015-10-15  7:43   ` Daniel Vetter
2015-10-15  7:43     ` Daniel Vetter
2015-10-15  5:55 ` [PATCH v4 09/79] via_drm.h: don't include non-existing via_drmclient.h Mikko Rapeli
2015-10-21 15:01   ` Emil Velikov
2015-10-21 15:01     ` Emil Velikov
2015-10-15  5:55 ` [PATCH v4 10/79] via_drm.h: move struct via_file_private definition to drivers/gpu/drm/via/via_drv.h Mikko Rapeli
2015-10-21 14:36   ` Emil Velikov
2015-10-21 14:36     ` Emil Velikov
2015-10-21 15:33     ` Daniel Vetter
2015-10-21 15:33       ` Daniel Vetter
2015-10-21 16:25       ` Emil Velikov
2015-10-21 16:25         ` Emil Velikov
2015-10-15  5:55 ` [PATCH v4 11/79] savage_drm.h: include <drm/drm.h> Mikko Rapeli
2015-10-15  5:55   ` Mikko Rapeli
2015-10-15  6:44   ` Daniel Vetter
2015-10-15  6:44     ` Daniel Vetter
2015-10-15  5:55 ` [PATCH v4 12/79] include/uapi/drm/sis_drm.h: move sis_file_private to drivers/gpu/drm/sis/sis_drv.h Mikko Rapeli
2015-10-21 14:39   ` Emil Velikov
2015-10-21 15:34     ` Daniel Vetter
2015-10-21 15:34       ` Daniel Vetter
2015-10-15  5:55 ` [PATCH v4 13/79] drm/i810_drm.h: include drm/drm.h Mikko Rapeli
2015-10-15  7:44   ` Daniel Vetter
2015-10-15  7:44     ` Daniel Vetter
2015-10-15  5:55 ` [PATCH v4 14/79] include/uapi/drm/vmwgfx_drm.h: use __s32, __u32 and __u64 from linux/types.h Mikko Rapeli
2015-10-15  5:55 ` [PATCH v4 15/79] include/uapi/drm/qxl_drm.h: " Mikko Rapeli
2015-10-15  5:55 ` [PATCH v4 16/79] include/uapi/linux/agpgart.h: include stdlib.h in userspace Mikko Rapeli
2015-10-15  5:55 ` [PATCH v4 17/79] include/uapi/sound/emu10k1.h: added EMU10K1 version of DECLARE_BITMAP macro Mikko Rapeli
2015-10-15  5:55   ` Mikko Rapeli
2015-10-15  8:04   ` Takashi Iwai
2015-10-15  8:04     ` Takashi Iwai
2015-10-15  5:55 ` [PATCH v4 18/79] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h Mikko Rapeli
2015-10-15  8:09   ` Mike Snitzer
2015-10-15  8:09     ` Mike Snitzer
2015-10-15 17:53     ` Mikko Rapeli
2015-10-15 17:53       ` Mikko Rapeli
2015-10-15  5:55 ` [PATCH v4 19/79] hsi_char.h: use __u32 " Mikko Rapeli
2015-10-15  5:55 ` [PATCH v4 20/79] include/uapi/linux/hsi/cs-protocol.h: include linux/time.h Mikko Rapeli
2015-10-15  5:55 ` [PATCH v4 21/79] ebtables.h: use __u64 from linux/types.h Mikko Rapeli
2015-10-15  5:55   ` Mikko Rapeli
2015-11-23 16:55   ` Pablo Neira Ayuso
2015-10-15  5:56 ` [PATCH v4 22/79] cld.h: use __u8, __u16, __s16, __u32 and __s64 " Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 23/79] rds.h: " Mikko Rapeli
2015-10-15 11:06   ` Sowmini Varadhan
2015-10-15 11:06     ` Sowmini Varadhan
2015-10-15 22:00     ` Mikko Rapeli
2015-10-15 22:00       ` Mikko Rapeli
2015-10-15 22:21       ` Sowmini Varadhan
2015-10-15 22:39         ` Mikko Rapeli
2015-10-15 22:39           ` Mikko Rapeli
2015-10-15 23:03           ` Sowmini Varadhan
2015-10-15 23:03             ` Sowmini Varadhan
2015-10-15  5:56 ` [PATCH v4 24/79] sctp.h: use __u8 and __u32 " Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 25/79] scsi_bsg_fc.h: use __u8, __u32 and __u64 " Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 26/79] scsi_netlink.h: use __u8, __u16 " Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 27/79] scsi_netlink_fc.h: use __u16, __u32 " Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 28/79] hdspm.h: use __u8, __u32 and __u64 from linux/types.h instead of stdint.h Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  8:04   ` Takashi Iwai
2015-10-15  8:04     ` Takashi Iwai
2015-10-15  5:56 ` [PATCH v4 29/79] gntalloc.h: use __u16, __u32 and __u64 from linux/types.h Mikko Rapeli
2015-10-15  5:56 ` Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15 10:55   ` David Vrabel
2015-10-15 10:55   ` [Xen-devel] " David Vrabel
2015-10-15 10:55     ` David Vrabel
2015-10-15  5:56 ` [PATCH v4 30/79] gntdev.h: use " Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15 10:56   ` David Vrabel
2015-10-15 10:56   ` [Xen-devel] " David Vrabel
2015-10-15 10:56     ` David Vrabel
2015-10-15  5:56 ` [PATCH v4 31/79] include/uapi/linux/sysctl.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 32/79] include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 33/79] include/uapi/asm-generic/msgbuf.h: include asm/ipcbuf.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 34/79] include/uapi/asm-generic/shmbuf.h: include fixes Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 35/79] asm-generic/sembuf.h: include asm/posix_types.h and asm/ipcbuf.h Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 36/79] include/uapi/asm-generic/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 37/79] include/uapi/linux/socket.h: include sys/socket.h in userspace Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 38/79] include/uapi/linux/rds.h: include linux/socket.h and linux/types.h Mikko Rapeli
2015-10-15 11:10   ` Sowmini Varadhan
2015-10-15 11:10     ` Sowmini Varadhan
2015-10-15  5:56 ` [PATCH v4 39/79] include/uapi/linux/if_pppox.h: include linux/if.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 40/79] include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and linux/in6.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 41/79] include/uapi/linux/ipv6_route.h: include linux/in6.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 42/79] " Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 43/79] include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 44/79] include/uapi/linux/if_pppox.h: " Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 45/79] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h Mikko Rapeli
2015-10-15  8:49   ` Frans Klaver
2015-10-15  8:49     ` Frans Klaver
2015-10-15 18:08     ` Mikko Rapeli
2015-10-15 18:08       ` Mikko Rapeli
2015-10-15 18:11       ` [PATCH] " Mikko Rapeli
2015-10-15 18:11         ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 46/79] include/uapi/linux/packet_diag.h: include linux/netdevice.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 47/79] include/uapi/linux/llc.h: include linux/if.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 48/79] include/uapi/linux/mqueue.h: include linux/types.h Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 49/79] include/uapi/linux/mroute.h: include linux/in.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 50/79] include/uapi/linux/dlm_netlink.h: include linux/dlmconstants.h Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 51/79] include/uapi/linux/ip6_tunnel.h: include linux/if.h and linux/in6.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 52/79] include/uapi/netfilter/*.h: fix include files for compilation Mikko Rapeli
2015-11-23 16:55   ` Pablo Neira Ayuso
2015-10-15  5:56 ` [PATCH v4 53/79] include/uapi/linux/errqueue.h: include linux/time.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 54/79] include/uapi/asm-generic/ucontext.h: include asm/signal.h and asm/sigcontext.h Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 55/79] arch/x86/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 56/79] include/uapi/linux/auto_fs.h: include linux/limits.h Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 57/79] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 58/79] include/uapi/linux/target_core_user.h: use __u8, __u16, __u32 and __u64 " Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 59/79] include/uapi/linux/omapfb.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 60/79] include/uapi/linux/atm_zatm.h: include linux/time.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 61/79] include/uapi/linux/scc.h: include linux/sockios.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 62/79] include/uapi/linux/btrfs.h: define NULL Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 63/79] include/uapi/linux/kexec.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 64/79] include/uapi/linux/reiserfs_xattr.h: " Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 65/79] include/uapi/linux/patchkey.h: change #error to #warning if file included directly Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 66/79] include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc definitions for userspace Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 67/79] include/uapi/linux/android/binder.h: use __kernel_pid_t and __kernel_uid_t Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 68/79] arch/x86/include/uapi/asm/sembuf.h: include linux/types.h and linux/ipc.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 69/79] include/uapi/linux/dvb/video.h: remove stdint.h include Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 70/79] include/uapi/mtd/mtd-user.h: " Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace Mikko Rapeli
2015-10-15 15:20   ` Miklos Szeredi
2015-10-15 15:20     ` Miklos Szeredi
2015-10-15 17:41     ` Mikko Rapeli
2015-10-15 17:41       ` Mikko Rapeli
2015-10-15 18:32       ` Miklos Szeredi
2015-10-15 18:32         ` Miklos Szeredi
2015-10-15 18:59         ` Arnd Bergmann
2015-10-15 18:59           ` Arnd Bergmann
2015-10-15 19:25           ` Miklos Szeredi
2015-10-15 21:03             ` Mikko Rapeli
2015-10-15 21:03               ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 72/79] include/linux/ipmi-fru.h: use linux/types.h instead of stdint.h Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 73/79] include/linux/sdb.h: use linux/types.h types " Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 74/79] include/linux/xz.h: " Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace Mikko Rapeli
2015-10-15  5:56 ` Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15 10:07   ` kbuild test robot
2015-10-15 10:07   ` kbuild test robot
2015-10-15 10:07     ` kbuild test robot
2015-10-15 10:07     ` kbuild test robot
2015-10-15 10:29   ` David Vrabel
2015-10-15 10:29     ` David Vrabel
2015-10-15 10:29     ` David Vrabel
2015-10-15 11:18     ` Mikko Rapeli
2015-10-15 11:18     ` Mikko Rapeli
2015-10-15 11:18       ` Mikko Rapeli
2015-10-15 11:24       ` David Vrabel
2015-10-15 11:24       ` David Vrabel
2015-10-15 11:24         ` David Vrabel
2015-10-15 11:24         ` David Vrabel
2015-10-15 11:35         ` Mikko Rapeli
2015-10-15 11:35           ` Mikko Rapeli
2015-10-15 11:35           ` Mikko Rapeli
2015-10-15 11:35         ` Mikko Rapeli
2015-10-15 10:29   ` David Vrabel
2015-10-15  5:56 ` [PATCH v4 76/79] coda_psdev.h: move upc_req definition from uapi to kernel side headers Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 77/79] include/uapi/linux/elfcore.h: remove non-compiling userspace parts Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 78/79] include/uapi/linux/errqueue.h: include time.h in userspace Mikko Rapeli
2015-10-15  5:56 ` [PATCH v4 79/79] arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
2015-10-15  5:56   ` Mikko Rapeli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1444888618-4506-3-git-send-email-mikko.rapeli@iki.fi \
    --to=mikko.rapeli@iki.fi \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.