* [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files
@ 2016-08-22 18:32 Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 01/72] headers_install.sh: enhance error handling Mikko Rapeli
` (71 more replies)
0 siblings, 72 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
v5:
two years now from v1 to v5 though some of the patches have been applied
with these changes all uapi headers compile stand alone in users space
added myself to MAINTAINERS for the test script
tried to fix all v04 review findings
due to regression in one of the accepted patches, added a glibc compatibility test
fixed some glibc compatibility issues, which are hopefully on the right path
v4:
https://lkml.org/lkml/2015/10/15/22
tried to fix v03 review findings
tried to fix all hack patches
v3:
https://lkml.org/lkml/2015/5/30/96
tried to fix all v2 review findings
tried to guess how to fix a few more issue
with a few hacks, 0 files fail and 760 files pass the compile test on 32bit x86
v2:
https://lkml.org/lkml/2015/2/16/521
added cross compiler support with CROSS_COMPILE,
detecting libc and GCC headers from compiler,
more header file fixes
v1:
https://lkml.org/lkml/2014/8/21/665
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.
This patch set introduces a compile test for headers exported to userspace
and then fixes many of the userspace header compilation failures.
Changes are also available in headers_test_v05 branch at github:
https://github.com/mcfrisk/linux/tree/headers_test_v05
Here's how to run the userspace compile tests and example output with these
patches applied on top of v4.8-rc2-348-g6040e57:
$ make headers_install && cd usr/include && \
../../scripts/headers_compile_test.sh -l
...
Kernel header compile test statistics:
0 files failed the kernel header compile test.
784 files passed the kernel header compile test.
libc and kernel header compatibility test statistics:
114 files failed the libc compatibility test.
670 files passed the libc compatibility test.
39 files failed libc before kernel include test.
745 files passed libc before kernel include test.
113 files failed kernel before libc include test.
671 files passed kernel before libc include test.
Additionally tested an allyesconfig compilation on i686.
If these changes are merged, it becomes possible to run abi-compliance-checker
tool https://lvc.github.io/abi-compliance-checker/ to detect API and ABI
breakages from the uapi headers, but some scripting around the tool is required.
Once all archs have completely compiling uapi headers, I would add this test
to 'make headers_check' build target to prevent regressions.
If the initial set of glibc compatibility fixes is going in the right
direction, I can try to fix the kernel side of those, and maybe try to
get glibc headers to play nicely with kernel uapi headers.
Some kernel subsystem and their uapi headers adhere to
Documentation/CodingStyle regarding C99 and __u32 etc types but many don't and
have even good reasons for not doing so, e.g. main userspace user of the headers
e.g. libdrm or libfuse require C99 stdint.h types. I'm hoping we could finally
settle this by for example agreeing that C99 stdint.h types are allowed in some
uapi subsystems, e.g. drm and fuse. Help would be appreciated here.
Mikko Rapeli (72):
headers_install.sh: enhance error handling
scripts/headers_compile_test.sh: compile test script for exported
headers
headers_compile_test.sh: add GNU libc compatibility test
dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h
hsi_char.h: use __u32 from linux/types.h
include/uapi/linux/hsi/cs-protocol.h: include linux/time.h
cld.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
sctp.h: use __u8 and __u32 from linux/types.h
scsi_bsg_fc.h: use __u8, __u32 and __u64 from linux/types.h
scsi_netlink.h: use __u8, __u16 and __u64 from linux/types.h
scsi_netlink_fc.h: use __u16, __u32 and __u64 from linux/types.h
include/uapi/linux/sysctl.h: use __kernel_size_t instead of size_t
include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h
include/uapi/asm-generic/msgbuf.h: include asm/ipcbuf.h
include/uapi/asm-generic/shmbuf.h: include fixes
asm-generic/sembuf.h: include asm/posix_types.h and asm/ipcbuf.h
include/uapi/asm-generic/signal.h: use __kernel_size_t instead of
size_t
include/uapi/linux/socket.h: include sys/socket.h in userspace
include/uapi/linux/rds.h: include linux/socket.h and linux/types.h
include/uapi/linux/if_pppox.h: include linux/if.h
include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and
linux/in6.h
include/uapi/linux/ipv6_route.h: include linux/in6.h
include/uapi/linux/ipv6_route.h: include linux/in6.h
include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h
include/uapi/linux/if_pppox.h: include linux/in.h and linux/in6.h
linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to
hdlc/ioctl.h
include/uapi/linux/packet_diag.h: include linux/netdevice.h
include/uapi/linux/llc.h: include linux/if.h
include/uapi/linux/mqueue.h: include linux/types.h
include/uapi/linux/mroute.h: include linux/in.h
include/uapi/linux/dlm_netlink.h: include linux/dlmconstants.h
include/uapi/linux/ip6_tunnel.h: include linux/if.h and linux/in6.h
include/uapi/linux/errqueue.h: include linux/time.h
include/uapi/asm-generic/ucontext.h: include asm/signal.h and
asm/sigcontext.h
arch/x86/include/uapi/asm/signal.h: use __kernel_size_t instead of
size_t
include/uapi/linux/auto_fs.h: include linux/limits.h
include/uapi/linux/openvswitch.h: use __u32 from linux/types.h
include/uapi/linux/target_core_user.h: use __u8, __u16, __u32 and
__u64 from linux/types.h
include/uapi/linux/omapfb.h: use __kernel_size_t instead of size_t
include/uapi/linux/atm_zatm.h: include linux/time.h
include/uapi/linux/scc.h: include linux/sockios.h
include/uapi/linux/btrfs.h: define NULL
include/uapi/linux/kexec.h: use __kernel_size_t instead of size_t
include/uapi/linux/reiserfs_xattr.h: use __kernel_size_t instead of
size_t
include/uapi/linux/patchkey.h: change #error to #warning if file
included directly
include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc
definitions for userspace
include/uapi/linux/android/binder.h: use __kernel_pid_t and
__kernel_uid_t
arch/x86/include/uapi/asm/sembuf.h: include linux/types.h and
linux/ipc.h
include/uapi/linux/fuse.h: use linux/types.h also in userspace
include/linux/ipmi-fru.h: use linux/types.h instead of stdint.h
include/linux/sdb.h: use linux/types.h types instead of stdint.h
include/linux/xz.h: use linux/types.h types instead of stdint.h
include/uapi/xen/privcmd.h: fix compilation in userspace
include/uapi/xen/gntdev.h: include xen/privcmd.h and define
grant_ref_t
include/uapi/xen/evtchn.h: include xen/privcmd.h
coda_psdev.h: move upc_req definition from uapi to kernel side headers
include/uapi/linux/elfcore.h: remove non-compiling userspace parts
include/uapi/linux/errqueue.h: include time.h in userspace
arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of
size_t
include/uapi/rdma/rdma_user_rxe.h: include in.h and in6.h
include/uapi/linux/openvswitch.h: use __u32 from linux/types.h
include/uapi/sound/Kbuild: remove sound/asoc.h from userspace
include/uapi/linux/ipx.h: fix conflicting defitions with glibc
netipx/ipx.h
uapi fcntl.h: glibc fcntl.h header file compatibility fixes
uapi icmp.h: glibc netinet/ip_icmp.h header file compatibility fixes
uapi uio.h: glibc sys/uio.h header file compatibility fixes
uapi ax25.h: glibc netax25/ax25.h header file compatibility fixes
uapi rose.h: glibc netrose/rose.h header file compatibility fixes
uapi time.h: glibc time.h header file compatibility fixes
uapi term*.h: glibc termios.h header file compatibility fixes
uapi route.h: glibc net/route.h compat fix
MAINTAINERS | 5 +
arch/arm/include/asm/xen/interface.h | 2 +-
arch/arm/include/uapi/asm/signal.h | 2 +-
arch/x86/include/uapi/asm/sembuf.h | 3 +
arch/x86/include/uapi/asm/signal.h | 2 +-
include/linux/coda_psdev.h | 11 +
include/linux/ipmi-fru.h | 31 +--
include/linux/sdb.h | 62 ++---
include/linux/xz.h | 11 +-
include/uapi/asm-generic/fcntl.h | 6 +
include/uapi/asm-generic/ipcbuf.h | 2 +
include/uapi/asm-generic/msgbuf.h | 2 +
include/uapi/asm-generic/sembuf.h | 2 +
include/uapi/asm-generic/shmbuf.h | 4 +-
include/uapi/asm-generic/signal.h | 2 +-
include/uapi/asm-generic/termbits.h | 3 +
include/uapi/asm-generic/termios.h | 5 +
include/uapi/asm-generic/ucontext.h | 3 +
include/uapi/linux/android/binder.h | 4 +-
include/uapi/linux/atm_zatm.h | 1 +
include/uapi/linux/auto_fs.h | 1 +
include/uapi/linux/ax25.h | 22 ++
include/uapi/linux/btrfs.h | 6 +
include/uapi/linux/coda.h | 11 +-
include/uapi/linux/coda_psdev.h | 13 -
include/uapi/linux/dlm_netlink.h | 1 +
include/uapi/linux/dm-log-userspace.h | 43 +--
include/uapi/linux/elfcore.h | 21 +-
include/uapi/linux/errqueue.h | 6 +
include/uapi/linux/fcntl.h | 3 +
include/uapi/linux/fuse.h | 452 +++++++++++++++---------------
include/uapi/linux/hdlc/ioctl.h | 5 +
include/uapi/linux/hsi/cs-protocol.h | 1 +
include/uapi/linux/hsi/hsi_char.h | 17 +-
include/uapi/linux/icmp.h | 4 +-
include/uapi/linux/if.h | 5 +-
include/uapi/linux/if_pppol2tp.h | 3 +-
include/uapi/linux/if_pppox.h | 3 +
include/uapi/linux/if_tunnel.h | 3 +
include/uapi/linux/ip6_tunnel.h | 2 +
include/uapi/linux/ipv6_route.h | 1 +
include/uapi/linux/ipx.h | 13 +-
include/uapi/linux/kexec.h | 4 +-
include/uapi/linux/libc-compat.h | 212 ++++++++++++++
include/uapi/linux/llc.h | 1 +
include/uapi/linux/mqueue.h | 2 +
include/uapi/linux/mroute.h | 1 +
include/uapi/linux/mroute6.h | 1 +
include/uapi/linux/nfsd/cld.h | 14 +-
include/uapi/linux/omapfb.h | 2 +-
include/uapi/linux/openvswitch.h | 6 +-
include/uapi/linux/packet_diag.h | 1 +
include/uapi/linux/patchkey.h | 2 +-
include/uapi/linux/rds.h | 103 +++----
include/uapi/linux/reiserfs_xattr.h | 2 +-
include/uapi/linux/rose.h | 15 +
include/uapi/linux/route.h | 4 +-
include/uapi/linux/scc.h | 1 +
include/uapi/linux/sctp.h | 10 +-
include/uapi/linux/socket.h | 4 +
include/uapi/linux/sysctl.h | 4 +-
include/uapi/linux/target_core_user.h | 22 +-
include/uapi/linux/time.h | 18 +-
include/uapi/linux/uio.h | 4 +-
include/uapi/rdma/rdma_user_rxe.h | 2 +
include/uapi/scsi/scsi_bsg_fc.h | 54 ++--
include/uapi/scsi/scsi_netlink.h | 22 +-
include/uapi/scsi/scsi_netlink_fc.h | 16 +-
include/uapi/sound/Kbuild | 1 -
include/uapi/xen/evtchn.h | 2 +
include/uapi/xen/gntdev.h | 6 +
include/uapi/xen/privcmd.h | 12 +-
include/xen/interface/grant_table.h | 6 +-
scripts/headers_compile_test.sh | 507 ++++++++++++++++++++++++++++++++++
scripts/headers_install.sh | 14 +-
75 files changed, 1375 insertions(+), 499 deletions(-)
create mode 100755 scripts/headers_compile_test.sh
--
2.8.1
^ permalink raw reply [flat|nested] 141+ messages in thread
* [PATCH v05 01/72] headers_install.sh: enhance error handling
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 02/72] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli
` (70 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Exit with error if using undefined variables or if any sub command fails
with error return value. unidef needs special handling since but this can
be done without the trap. Enables examining intermediate files if some
commands failed.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
| 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
--git a/scripts/headers_install.sh b/scripts/headers_install.sh
index fdebd66..fe22807 100755
--- a/scripts/headers_install.sh
+++ b/scripts/headers_install.sh
@@ -1,4 +1,6 @@
#!/bin/sh
+set -e
+set -u
if [ $# -lt 2 ]
then
@@ -26,7 +28,6 @@ shift
# Iterate through files listed on command line
FILE=
-trap 'rm -f "$OUTDIR/$FILE" "$OUTDIR/$FILE.sed"' EXIT
for i in "$@"
do
FILE="$(basename "$i")"
@@ -37,10 +38,13 @@ do
-e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \
-e 's/(^|[ \t(])(inline|asm|volatile)([ \t(]|$)/\1__\2__\3/g' \
-e 's@#(ifndef|define|endif[ \t]*/[*])[ \t]*_UAPI@#\1 @' \
- "$SRCDIR/$i" > "$OUTDIR/$FILE.sed" || exit 1
+ "$SRCDIR/$i" > "$OUTDIR/$FILE.sed" || \
+ ( rm -f "$OUTDIR/$FILE.sed" ; exit 1 )
scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ "$OUTDIR/$FILE.sed" \
- > "$OUTDIR/$FILE"
- [ $? -gt 1 ] && exit 1
+ > "$OUTDIR/$FILE" || \
+ ( if [ $? -gt 1 ]; then \
+ rm -f "$OUTDIR/$FILE" "$OUTDIR/$FILE.sed" ; \
+ exit 1 ; \
+ fi )
rm -f "$OUTDIR/$FILE.sed"
done
-trap - EXIT
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 02/72] scripts/headers_compile_test.sh: compile test script for exported headers
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 01/72] headers_install.sh: enhance error handling Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 03/72] headers_compile_test.sh: add GNU libc compatibility test Mikko Rapeli
` (69 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Alexander Stein, Gabriel Laskar, David S. Miller,
Geert Uytterhoeven, Andrew Morton, Greg Kroah-Hartman,
Mauro Carvalho Chehab, Guenter Roeck
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 tries to compile it
together with minimal header files from GCC and libc, and reports results.
Kernel headers depend on GCC headers so their path is included in the
test compiler command line.
Default libc and GCC header file locations are parsed from compiler
configuration.
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 v4.4-rc3-10-gc846b17 kernel on 32bit x86:
122 files failed the compile test.
645 files passed the compile test.
Example error types from v4.4-rc3-10-gc846b17 kernel:
$ ../../scripts/headers_compile_test.sh 2>&1 | \
grep error: | sed -e 's/.*error://g' | sort | uniq -c | sort -rn
381 unknown type name ‘uint32_t’
125 unknown type name ‘uint64_t’
99 unknown type name ‘size_t’
43 unknown type name ‘__kernel_ulong_t’
29 unknown type name ‘uint8_t’
23 unknown type name ‘int32_t’
16 unknown type name ‘__kernel_time_t’
14 unknown type name ‘__be16’
14 ‘IFNAMSIZ’ undeclared here (not in a function)
14 field ‘addr’ has incomplete type
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 ‘uint16_t’
8 unknown type name ‘pid_t’
8 unknown type name ‘__kernel_pid_t’
7 unknown type name ‘u_short’
5 unknown type name ‘__kernel_long_t’
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 ‘caddr_t’
3 ‘IPSET_ERR_TYPE_SPECIFIC’ undeclared here (not in a function)
3 field ‘src_addr’ has incomplete type
3 field ‘laddr’ 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 ‘src’ 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_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 ‘uid_t’
1 unknown type name ‘int64_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 ‘tcp’ 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 ‘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 ‘smsk’ has incomplete type
1 field ‘sin_addr’ 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 ‘prefix’ 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 ‘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 ‘dst_mask’ has incomplete type
1 field ‘dmsk’ 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 #error "patchkey.h included directly"
1 ‘DLM_RESNAME_MAXLEN’ undeclared here (not in a function)
1 array type has incomplete element type ‘struct timespec’
1 array type has incomplete element type ‘struct in6_addr’
Once all these errors have been fixed, this test should be added to
'make headers_check'.
Since I've been stubborn enough to work with this script and fixes to the
test failures for over a year, I added my self to MAINTAINERS.
I will continue to maintain this script as a hobby.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Cc: Alexander Stein <alexander.stein@systec-electronic.com>
Cc: Gabriel Laskar <gabriel@lse.epita.fr>
---
MAINTAINERS | 5 +
| 198 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 203 insertions(+)
create mode 100755 scripts/headers_compile_test.sh
diff --git a/MAINTAINERS b/MAINTAINERS
index a306795..a6fb57d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3245,6 +3245,11 @@ S: Maintained
F: mm/memcontrol.c
F: mm/swap_cgroup.c
+COMPILE TEST FOR HEADER FILES EXPORTED TO USERSPACE
+M: Mikko Rapeli <mikko.rapeli@iki.fi>
+S: Maintained
+F: scripts/headers_compile_test.sh
+
CORETEMP HARDWARE MONITORING DRIVER
M: Fenghua Yu <fenghua.yu@intel.com>
L: linux-hwmon@vger.kernel.org
--git a/scripts/headers_compile_test.sh b/scripts/headers_compile_test.sh
new file mode 100755
index 0000000..e13f533
--- /dev/null
+++ b/scripts/headers_compile_test.sh
@@ -0,0 +1,198 @@
+#!/bin/bash
+
+help() {
+ cat << EOF_HELP
+Userspace compile test for exported kernel headers.
+
+ Copyright (C) 2015 Mikko Rapeli <mikko.rapeli@iki.fi>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; version 2
+ of the License.
+
+Execute in root directory of exported kernel headers in Linux kernel source
+tree. Sets up gcc and libc headers without existing kernel headers to
+a temporary environment and tries to compile all exported header files
+from current directory against them. Return value is zero if all tests pass,
+non-zero if something goes wrong during execution, or the amount of files
+which failed the compile test.
+
+Supported arguments:
+
+ -h|--help print help
+ -k|--keep don't cleanup temporary header files and directories
+ -v|--verbose print more verbose output
+
+Example in Linux kernel source tree:
+
+ \$ make headers_install
+ \$ cd usr/include
+ \$ $( readlink -f "$0" )
+
+EOF_HELP
+}
+
+# bash due to arithmetics and pipefail
+set -euo pipefail
+
+KEEP=0
+HELP=0
+
+# command line arguments
+for p in "$@"; do
+ case "$p" in
+ -k|--keep)
+ KEEP=1
+ ;;
+ -h|--help)
+ HELP=1
+ ;;
+ -v|--verbose)
+ set -x
+ ;;
+ *)
+ help
+ echo "Unknown argument: $p"
+ exit 1
+ ;;
+ esac
+done
+
+if [ "$HELP" != "0" ]; then help; exit 0; fi
+
+# 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="$( readlink -f \
+ "$( mktemp -d ../headers_compile_test_include.XXXXXX )" )"
+
+# cleanup if keep not set
+if [ "$KEEP" = "0" ]; then
+ trap 'rm -rf "$COMPILE_TEST_INC"' EXIT
+else
+ trap 'printf \
+"Temporary directory not cleaned up! Remove manually:\n${COMPILE_TEST_INC}\n"' \
+ EXIT
+fi
+
+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,
+ # follow symlinks from e.g. /usr/include/bits
+ cp -aL "$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, try to compile it using the headers we prepared.
+_FAILED=0
+_PASSED=0
+for f in $( find . -name "*\.h" | xargs ); do
+ _FAIL=0
+
+ # 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" -o /dev/null "$f"
+ $CC -Wall -c -nostdinc $GCC_INC -I . -I "$COMPILE_TEST_INC" -I "$COMPILE_TEST_INC/$ARCH_TRIPLET" -o /dev/null "$f" \
+ || _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.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 03/72] headers_compile_test.sh: add GNU libc compatibility test
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 01/72] headers_install.sh: enhance error handling Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 02/72] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 04/72] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h Mikko Rapeli
` (68 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
The test is to compile all kernel uapi headers against the
non-conflicting set of all GNU libc headers. The test covers
variants where kernel header is included before libc header
and libc header before kernel header.
Tested in Debian unstable with libc6 version 2.22-4.
Example execution:
$ make headers_install && \
cd usr/include && \
../../scripts/headers_compile_test.sh -lk
Testing that /home/mcfrisk/src/linux-2.6/usr/headers_compile_test_include.rwDf0l
/libc_headers.h compiles
cc -Wall -c -nostdinc -I /usr/lib/gcc/i686-linux-gnu/6/include -I /usr/lib/gcc/i
686-linux-gnu/6/include-fixed -I . -I /home/mcfrisk/src/linux-2.6/usr/headers_co
mpile_test_include.rwDf0l -I /home/mcfrisk/src/linux-2.6/usr/headers_compile_tes
t_include.rwDf0l/i686-linux-gnu -o /dev/null ./drm/i810_drm.h
PASSED: ./drm/i810_drm.h
cc -Wall -c -nostdinc -I /usr/lib/gcc/i686-linux-gnu/6/include -I /usr/lib/gcc/i
686-linux-gnu/6/include-fixed -I . -I /home/mcfrisk/src/linux-2.6/usr/headers_co
mpile_test_include.rwDf0l -I /home/mcfrisk/src/linux-2.6/usr/headers_compile_tes
t_include.rwDf0l/i686-linux-gnu -o /dev/null ./drm/i810_drm.h_libc_before_kernel
.h
PASSED libc before kernel test: ./drm/i810_drm.h
...
cc -Wall -c -nostdinc -I /usr/lib/gcc/i686-linux-gnu/6/include -I /usr/lib/gcc/i
686-linux-gnu/6/include-fixed -I . -I /home/mcfrisk/src/linux-2.6/usr/headers_co
mpile_test_include.rwDf0l -I /home/mcfrisk/src/linux-2.6/usr/headers_compile_tes
t_include.rwDf0l/i686-linux-gnu -o /dev/null ./linux/coda.h
PASSED: ./linux/coda.h
cc -Wall -c -nostdinc -I /usr/lib/gcc/i686-linux-gnu/6/include -I /usr/lib/gcc/i
686-linux-gnu/6/include-fixed -I . -I /home/mcfrisk/src/linux-2.6/usr/headers_co
mpile_test_include.rwDf0l -I /home/mcfrisk/src/linux-2.6/usr/headers_compile_tes
t_include.rwDf0l/i686-linux-gnu -o /dev/null ./linux/coda.h_libc_before_kernel.h
In file included from ./linux/coda.h_libc_before_kernel.h:2:0:
./linux/coda.h:108:16: error: conflicting types for ‘dev_t’
typedef u_long dev_t;
^~~~~
In file included from /home/mcfrisk/src/linux-2.6/usr/headers_compile_test_inclu
de.rwDf0l/aio.h:26:0,
from /home/mcfrisk/src/linux-2.6/usr/headers_compile_test_inclu
de.rwDf0l/libc_headers.h:1,
from ./linux/coda.h_libc_before_kernel.h:1:
/home/mcfrisk/src/linux-2.6/usr/headers_compile_test_include.rwDf0l/sys/types.h:
60:17: note: previous declaration of ‘dev_t’ was here
typedef __dev_t dev_t;
^~~~~
In file included from ./linux/coda.h_libc_before_kernel.h:2:0:
./linux/coda.h:109:16: error: conflicting types for ‘caddr_t’
typedef void * caddr_t;
^~~~~~~
In file included from /home/mcfrisk/src/linux-2.6/usr/headers_compile_test_include.rwDf0l/aio.h:26:0,
from /home/mcfrisk/src/linux-2.6/usr/headers_compile_test_include.rwDf0l/libc_headers.h:1,
from ./linux/coda.h_libc_before_kernel.h:1:
/home/mcfrisk/src/linux-2.6/usr/headers_compile_test_include.rwDf0l/sys/types.h:116:19: note: previous declaration of ‘caddr_t’ was here
typedef __caddr_t caddr_t;
^~~~~~~
FAILED libc before kernel test: ./linux/coda.h
...
Kernel header compile test statistics:
0 files failed the kernel header compile test.
784 files passed the kernel header compile test.
libc and kernel header compatibility test statistics:
39 files failed libc before kernel include test.
745 files passed libc before kernel include test.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
| 329 ++++++++++++++++++++++++++++++++++++++--
1 file changed, 319 insertions(+), 10 deletions(-)
--git a/scripts/headers_compile_test.sh b/scripts/headers_compile_test.sh
index e13f533..94021b6 100755
--- a/scripts/headers_compile_test.sh
+++ b/scripts/headers_compile_test.sh
@@ -15,14 +15,19 @@ Execute in root directory of exported kernel headers in Linux kernel source
tree. Sets up gcc and libc headers without existing kernel headers to
a temporary environment and tries to compile all exported header files
from current directory against them. Return value is zero if all tests pass,
-non-zero if something goes wrong during execution, or the amount of files
-which failed the compile test.
+non-zero if something goes wrong during execution or if any file failed
+the compile tests.
Supported arguments:
- -h|--help print help
- -k|--keep don't cleanup temporary header files and directories
- -v|--verbose print more verbose output
+ -h|--help print help
+ -k|--keep don't cleanup temporary header files and directories
+ -lk|--libc-kernel test for conflicts between kernel and libc headers
+ when libc headers are included before kernel headers
+ -kl|--kernel-libc test for conflicts between kernel and libc headers
+ when kernel headers are included before libc headers
+ -l|--libc test both -lk and -kl
+ -v|--verbose print more verbose output
Example in Linux kernel source tree:
@@ -38,6 +43,9 @@ set -euo pipefail
KEEP=0
HELP=0
+LIBC_TEST=0
+LIBC_KERNEL_TEST=0
+KERNEL_LIBC_TEST=0
# command line arguments
for p in "$@"; do
@@ -45,6 +53,19 @@ for p in "$@"; do
-k|--keep)
KEEP=1
;;
+ -l|--libc)
+ LIBC_TEST=1
+ LIBC_KERNEL_TEST=1
+ KERNEL_LIBC_TEST=1
+ ;;
+ -lk|--libc-kernel)
+ LIBC_TEST=1
+ LIBC_KERNEL_TEST=1
+ ;;
+ -kl|--kernel-libc)
+ LIBC_TEST=1
+ KERNEL_LIBC_TEST=1
+ ;;
-h|--help)
HELP=1
;;
@@ -138,6 +159,164 @@ for d in $LIBC; do
fi
done
+# A single header with all non-conflicting libc headers to test kernel
+# headers against libc headers for conflicts.
+if [ "$LIBC_TEST" != 0 ]; then
+ # List taken from Debian unstable libc6 version 2.21-9.
+ # Some glibc headers conflict with each other so they
+ # are filtered out. Not perfect but better than nothing.
+ #
+ # $ for f in $( egrep "\.h$" /var/lib/dpkg/info/libc6-dev\:i386.list | sed -e 's|/usr/include/||'| sort | grep -v arpa | grep -v linux-gnu | grep -v rpcsvc | grep -v regexp.h | grep -v rpc | grep -v scsi | grep -v talkd ); do echo "#include <$f>"; done > libc_headers.h
+
+ cat > "$COMPILE_TEST_INC/libc_headers.h" << EOF_LIBC_HEADERS
+#include <aio.h>
+#include <aliases.h>
+#include <alloca.h>
+#include <argp.h>
+#include <argz.h>
+#include <ar.h>
+#include <assert.h>
+#include <byteswap.h>
+#include <complex.h>
+#include <cpio.h>
+#include <crypt.h>
+#include <ctype.h>
+#include <dirent.h>
+#include <dlfcn.h>
+#include <elf.h>
+#include <endian.h>
+#include <envz.h>
+#include <err.h>
+#include <errno.h>
+#include <error.h>
+#include <execinfo.h>
+#include <fcntl.h>
+#include <features.h>
+#include <fenv.h>
+#include <fmtmsg.h>
+#include <fnmatch.h>
+#include <fstab.h>
+#include <fts.h>
+#include <ftw.h>
+#include <_G_config.h>
+#include <gconv.h>
+#include <getopt.h>
+#include <glob.h>
+#include <gnu-versions.h>
+#include <grp.h>
+#include <gshadow.h>
+#include <iconv.h>
+#include <ifaddrs.h>
+#include <inttypes.h>
+#include <langinfo.h>
+#include <lastlog.h>
+#include <libgen.h>
+#include <libintl.h>
+#include <libio.h>
+#include <limits.h>
+#include <link.h>
+#include <locale.h>
+#include <malloc.h>
+#include <math.h>
+#include <mcheck.h>
+#include <memory.h>
+#include <mntent.h>
+#include <monetary.h>
+#include <mqueue.h>
+#include <netash/ash.h>
+#include <netatalk/at.h>
+#include <netax25/ax25.h>
+#include <netdb.h>
+#include <neteconet/ec.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/if.h>
+#include <net/if_packet.h>
+#include <net/if_ppp.h>
+#include <net/if_shaper.h>
+#include <net/if_slip.h>
+#include <netinet/ether.h>
+#include <netinet/icmp6.h>
+#include <netinet/if_ether.h>
+#include <netinet/if_fddi.h>
+#include <netinet/if_tr.h>
+#include <netinet/igmp.h>
+#include <netinet/in.h>
+#include <netinet/in_systm.h>
+#include <netinet/ip6.h>
+#include <netinet/ip.h>
+#include <netinet/ip_icmp.h>
+#include <netinet/tcp.h>
+#include <netinet/udp.h>
+#include <netipx/ipx.h>
+#include <netiucv/iucv.h>
+#include <netpacket/packet.h>
+#include <net/ppp-comp.h>
+#include <net/ppp_defs.h>
+#include <netrom/netrom.h>
+#include <netrose/rose.h>
+#include <net/route.h>
+#include <nfs/nfs.h>
+#include <nl_types.h>
+#include <nss.h>
+#include <obstack.h>
+#include <paths.h>
+#include <poll.h>
+#include <printf.h>
+#include <protocols/routed.h>
+#include <protocols/rwhod.h>
+#include <protocols/timed.h>
+#include <pthread.h>
+#include <pty.h>
+#include <pwd.h>
+#include <re_comp.h>
+#include <regex.h>
+#include <resolv.h>
+#include <sched.h>
+#include <search.h>
+#include <semaphore.h>
+#include <setjmp.h>
+#include <sgtty.h>
+#include <shadow.h>
+#include <signal.h>
+#include <spawn.h>
+#include <stab.h>
+#include <stdc-predef.h>
+#include <stdint.h>
+#include <stdio_ext.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <strings.h>
+#include <stropts.h>
+#include <syscall.h>
+#include <sysexits.h>
+#include <syslog.h>
+#include <tar.h>
+#include <termio.h>
+#include <termios.h>
+#include <tgmath.h>
+#include <thread_db.h>
+#include <time.h>
+#include <ttyent.h>
+#include <uchar.h>
+#include <ucontext.h>
+#include <ulimit.h>
+#include <unistd.h>
+#include <ustat.h>
+#include <utime.h>
+#include <utmp.h>
+#include <utmpx.h>
+#include <values.h>
+#include <wait.h>
+#include <wchar.h>
+#include <wctype.h>
+#include <wordexp.h>
+#include <xlocale.h>
+EOF_LIBC_HEADERS
+
+fi # LIBC_TEST
+
# Simulate libc headers without kernel headers by removing
# all known kernel header dirs from the copied libc ones.
# This seems to magically work.
@@ -170,11 +349,32 @@ if [ "$GCC_INC"foobar == "foobar" ]; then
fi
set -u
-# For each header file, try to compile it using the headers we prepared.
+# sanity check: test that plain libc headers compile
+if [ "$LIBC_TEST" != 0 ]; then
+ echo "Testing that $COMPILE_TEST_INC/libc_headers.h compiles"
+ $CC -Wall -c -nostdinc $GCC_INC -I . \
+ -I "$COMPILE_TEST_INC" \
+ -I "$COMPILE_TEST_INC/$ARCH_TRIPLET" \
+ -o /dev/null \
+ "$COMPILE_TEST_INC/libc_headers.h"
+fi
+
+# Summary counters:
_FAILED=0
_PASSED=0
+_LIBC_FAILED=0
+_LIBC_PASSED=0
+_LIBC_BEFORE_KERNEL_FAILED=0
+_LIBC_BEFORE_KERNEL_PASSED=0
+_KERNEL_BEFORE_LIBC_FAILED=0
+_KERNEL_BEFORE_LIBC_PASSED=0
+
+# For each header file, try to compile it using the headers we prepared.
for f in $( find . -name "*\.h" | xargs ); do
_FAIL=0
+ _FAIL_LIBC=0
+ _FAIL_LIBC_BEFORE_KERNEL=0
+ _FAIL_KERNEL_BEFORE_LIBC=0
# 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" -o /dev/null "$f"
@@ -189,10 +389,119 @@ for f in $( find . -name "*\.h" | xargs ); do
echo "PASSED: $f"
_PASSED="$(( _PASSED + 1))"
fi
+
+ # libc header conflict tests
+ if [ "$LIBC_TEST" != 0 ]; then
+ _LIBC_BEFORE_KERNEL="$f"_libc_before_kernel.h
+ _KERNEL_BEFORE_LIBC="$f"_kernel_before_libc.h
+
+ # libc header included before kernel header
+ if [ "$LIBC_KERNEL_TEST" != 0 ]; then
+ cat > "$_LIBC_BEFORE_KERNEL" << EOF_LIBC_BEFORE_KERNEL
+#include <libc_headers.h>
+#include <$( echo "$f" | cut -c3- )>
+EOF_LIBC_BEFORE_KERNEL
+ echo \
+ $CC -Wall -c -nostdinc $GCC_INC \
+ -I . -I "$COMPILE_TEST_INC" \
+ -I "$COMPILE_TEST_INC/$ARCH_TRIPLET" \
+ -o /dev/null "$_LIBC_BEFORE_KERNEL"
+ $CC -Wall -c -nostdinc $GCC_INC \
+ -I . -I "$COMPILE_TEST_INC" \
+ -I "$COMPILE_TEST_INC/$ARCH_TRIPLET" \
+ -o /dev/null "$_LIBC_BEFORE_KERNEL" \
+ || _FAIL_LIBC_BEFORE_KERNEL=1
+
+ # report errors
+ if [ "$_FAIL_LIBC_BEFORE_KERNEL" -gt 0 ]; then
+ echo "FAILED libc before kernel test: $f"
+ _LIBC_BEFORE_KERNEL_FAILED="$(( _LIBC_BEFORE_KERNEL_FAILED + 1 ))"
+ else
+ echo "PASSED libc before kernel test: $f"
+ _LIBC_BEFORE_KERNEL_PASSED="$(( _LIBC_BEFORE_KERNEL_PASSED + 1))"
+ fi
+ fi
+
+ # kernel header included before libc
+ if [ "$KERNEL_LIBC_TEST" != 0 ]; then
+ cat > "$_KERNEL_BEFORE_LIBC" << EOF_KERNEL_BEFORE_LIBC
+#include <$( echo "$f" | cut -c3- )>
+#include <libc_headers.h>
+EOF_KERNEL_BEFORE_LIBC
+ echo \
+ $CC -Wall -c -nostdinc $GCC_INC \
+ -I . -I "$COMPILE_TEST_INC" \
+ -I "$COMPILE_TEST_INC/$ARCH_TRIPLET" \
+ -o /dev/null "$_KERNEL_BEFORE_LIBC"
+ $CC -Wall -c -nostdinc $GCC_INC \
+ -I . -I "$COMPILE_TEST_INC" \
+ -I "$COMPILE_TEST_INC/$ARCH_TRIPLET" \
+ -o /dev/null "$_KERNEL_BEFORE_LIBC" \
+ || _FAIL_KERNEL_BEFORE_LIBC=1
+
+ # report errors
+ if [ "$_FAIL_KERNEL_BEFORE_LIBC" -gt 0 ]; then
+ echo "FAILED kernel before libc test: $f"
+ _KERNEL_BEFORE_LIBC_FAILED="$(( _KERNEL_BEFORE_LIBC_FAILED + 1 ))"
+ else
+ echo "PASSED kernel before libc test: $f"
+ _KERNEL_BEFORE_LIBC_PASSED="$(( _KERNEL_BEFORE_LIBC_PASSED + 1))"
+ fi
+ fi
+
+ # libc summary
+ if [ "$_FAIL_LIBC_BEFORE_KERNEL" -gt 0 -o "$_FAIL_KERNEL_BEFORE_LIBC" -gt 0 ]; then
+ _LIBC_FAILED="$(( _LIBC_FAILED + 1))"
+ else
+ _LIBC_PASSED="$(( _LIBC_PASSED + 1))"
+ fi
+
+ if [ "$KEEP" = "0" ]; then
+ rm -f "$_LIBC_BEFORE_KERNEL" "$_KERNEL_BEFORE_LIBC"
+ fi
+ fi # LIBC_TEST
done
-echo Statistics:
-echo "$_FAILED files failed the compile test."
-echo "$_PASSED files passed the compile test."
+cat << EOF_STATS
+
+Kernel header compile test statistics:
+
+$_FAILED files failed the kernel header compile test.
+$_PASSED files passed the kernel header compile test.
+
+EOF_STATS
+
+if [ "$LIBC_TEST" != 0 ]; then
+ cat << EOF_LIBC_STATS
+libc and kernel header compatibility test statistics:
+EOF_LIBC_STATS
+
+if [ "$LIBC_KERNEL_TEST" != 0 ] && [ "$KERNEL_LIBC_TEST" != 0 ]; then
+ cat << EOF_LIBC_COMBINED
+$_LIBC_FAILED files failed the libc compatibility test.
+$_LIBC_PASSED files passed the libc compatibility test.
+EOF_LIBC_COMBINED
+fi
+
+if [ "$LIBC_KERNEL_TEST" != 0 ]; then
+ cat << EOF_LIBC_KERNEL
+$_LIBC_BEFORE_KERNEL_FAILED files failed libc before kernel include test.
+$_LIBC_BEFORE_KERNEL_PASSED files passed libc before kernel include test.
+EOF_LIBC_KERNEL
+fi
+
+if [ "$KERNEL_LIBC_TEST" != 0 ]; then
+ cat << EOF_KERNEL_LIBC
+$_KERNEL_BEFORE_LIBC_FAILED files failed kernel before libc include test.
+$_KERNEL_BEFORE_LIBC_PASSED files passed kernel before libc include test.
+EOF_KERNEL_LIBC
+fi
-exit "$_FAILED"
+fi # LIBC_TEST
+
+# return value, summary of all failures.
+if [ "$(( $_FAILED + $_LIBC_BEFORE_KERNEL_FAILED + $_KERNEL_BEFORE_LIBC_FAILED ))" != 0 ]; then
+ exit 1
+else
+ exit 0
+fi
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 04/72] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (2 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 03/72] headers_compile_test.sh: add GNU libc compatibility test Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-23 13:57 ` [dm-devel] " Bart Van Assche
2016-08-22 18:32 ` [PATCH v05 05/72] hsi_char.h: use __u32 " Mikko Rapeli
` (67 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Alasdair Kergon, Mike Snitzer, dm-devel
Fixes userspace compilation errors like:
linux/dm-log-userspace.h:416:2: error: unknown type name ‘uint64_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/dm-log-userspace.h | 43 ++++++++++++++++++-----------------
1 file changed, 22 insertions(+), 21 deletions(-)
diff --git a/include/uapi/linux/dm-log-userspace.h b/include/uapi/linux/dm-log-userspace.h
index 0fa0d9e..c5ff216 100644
--- a/include/uapi/linux/dm-log-userspace.h
+++ b/include/uapi/linux/dm-log-userspace.h
@@ -7,6 +7,7 @@
#ifndef __DM_LOG_USERSPACE_H__
#define __DM_LOG_USERSPACE_H__
+#include <linux/types.h>
#include <linux/dm-ioctl.h> /* For DM_UUID_LEN */
/*
@@ -147,12 +148,12 @@
/*
* DM_ULOG_GET_REGION_SIZE corresponds to (found in dm-dirty-log.h):
- * uint32_t (*get_region_size)(struct dm_dirty_log *log);
+ * __u32 (*get_region_size)(struct dm_dirty_log *log);
*
* Payload-to-userspace:
* None.
* Payload-to-kernel:
- * uint64_t - contains the region size
+ * __u64 - contains the region size
*
* The region size is something that was determined at constructor time.
* It is returned in the payload area and 'data_size' is set to
@@ -168,11 +169,11 @@
* int (*is_clean)(struct dm_dirty_log *log, region_t region);
*
* Payload-to-userspace:
- * uint64_t - the region to get clean status on
+ * __u64 - the region to get clean status on
* Payload-to-kernel:
* int64_t - 1 if clean, 0 otherwise
*
- * Payload is sizeof(uint64_t) and contains the region for which the clean
+ * Payload is sizeof(__u64) and contains the region for which the clean
* status is being made.
*
* When the request has been processed, user-space must return the
@@ -187,7 +188,7 @@
* int can_block);
*
* Payload-to-userspace:
- * uint64_t - the region to get sync status on
+ * __u64 - the region to get sync status on
* Payload-to-kernel:
* int64_t - 1 if in-sync, 0 otherwise
*
@@ -203,7 +204,7 @@
* Payload-to-userspace:
* If the 'integrated_flush' directive is present in the constructor
* table, the payload is as same as DM_ULOG_MARK_REGION:
- * uint64_t [] - region(s) to mark
+ * __u64 [] - region(s) to mark
* else
* None
* Payload-to-kernel:
@@ -225,13 +226,13 @@
* void (*mark_region)(struct dm_dirty_log *log, region_t region);
*
* Payload-to-userspace:
- * uint64_t [] - region(s) to mark
+ * __u64 [] - region(s) to mark
* Payload-to-kernel:
* None.
*
* Incoming payload contains the one or more regions to mark dirty.
* The number of regions contained in the payload can be determined from
- * 'data_size/sizeof(uint64_t)'.
+ * 'data_size/sizeof(__u64)'.
*
* When the request has been processed, user-space must return the
* dm_ulog_request to the kernel - setting the 'error' field and clearing
@@ -244,13 +245,13 @@
* void (*clear_region)(struct dm_dirty_log *log, region_t region);
*
* Payload-to-userspace:
- * uint64_t [] - region(s) to clear
+ * __u64 [] - region(s) to clear
* Payload-to-kernel:
* None.
*
* Incoming payload contains the one or more regions to mark clean.
* The number of regions contained in the payload can be determined from
- * 'data_size/sizeof(uint64_t)'.
+ * 'data_size/sizeof(__u64)'.
*
* When the request has been processed, user-space must return the
* dm_ulog_request to the kernel - setting the 'error' field and clearing
@@ -267,7 +268,7 @@
* Payload-to-kernel:
* {
* int64_t i; -- 1 if recovery necessary, 0 otherwise
- * uint64_t r; -- The region to recover if i=1
+ * __u64 r; -- The region to recover if i=1
* }
* 'data_size' should be set appropriately.
*
@@ -283,7 +284,7 @@
*
* Payload-to-userspace:
* {
- * uint64_t - region to set sync state on
+ * __u64 - region to set sync state on
* int64_t - 0 if not-in-sync, 1 if in-sync
* }
* Payload-to-kernel:
@@ -302,7 +303,7 @@
* Payload-to-userspace:
* None.
* Payload-to-kernel:
- * uint64_t - the number of in-sync regions
+ * __u64 - the number of in-sync regions
*
* No incoming payload. Kernel-bound payload contains the number of
* regions that are in-sync (in a size_t).
@@ -350,11 +351,11 @@
* int (*is_remote_recovering)(struct dm_dirty_log *log, region_t region);
*
* Payload-to-userspace:
- * uint64_t - region to determine recovery status on
+ * __u64 - region to determine recovery status on
* Payload-to-kernel:
* {
* int64_t is_recovering; -- 0 if no, 1 if yes
- * uint64_t in_sync_hint; -- lowest region still needing resync
+ * __u64 in_sync_hint; -- lowest region still needing resync
* }
*
* When the request has been processed, user-space must return the
@@ -413,16 +414,16 @@ struct dm_ulog_request {
* differentiate between logs that are being swapped and have the
* same 'uuid'. (Think "live" and "inactive" device-mapper tables.)
*/
- uint64_t luid;
+ __u64 luid;
char uuid[DM_UUID_LEN];
char padding[3]; /* Padding because DM_UUID_LEN = 129 */
- uint32_t version; /* See DM_ULOG_REQUEST_VERSION */
- int32_t error; /* Used to report back processing errors */
+ __u32 version; /* See DM_ULOG_REQUEST_VERSION */
+ __s32 error; /* Used to report back processing errors */
- uint32_t seq; /* Sequence number for request */
- uint32_t request_type; /* DM_ULOG_* defined above */
- uint32_t data_size; /* How much data (not including this struct) */
+ __u32 seq; /* Sequence number for request */
+ __u32 request_type; /* DM_ULOG_* defined above */
+ __u32 data_size; /* How much data (not including this struct) */
char data[0];
};
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 05/72] hsi_char.h: use __u32 from linux/types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (3 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 04/72] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 20:54 ` Sebastian Reichel
2016-08-22 18:32 ` [PATCH v05 06/72] include/uapi/linux/hsi/cs-protocol.h: include linux/time.h Mikko Rapeli
` (66 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Sebastian Reichel
Fixes userspace compiler errors like:
linux/hsi/hsi_char.h:51:2: error: unknown type name ‘uint32_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/hsi/hsi_char.h | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/include/uapi/linux/hsi/hsi_char.h b/include/uapi/linux/hsi/hsi_char.h
index 76160b4..c00a463 100644
--- a/include/uapi/linux/hsi/hsi_char.h
+++ b/include/uapi/linux/hsi/hsi_char.h
@@ -20,10 +20,11 @@
* 02110-1301 USA
*/
-
#ifndef __HSI_CHAR_H
#define __HSI_CHAR_H
+#include <linux/types.h>
+
#define HSI_CHAR_MAGIC 'k'
#define HSC_IOW(num, dtype) _IOW(HSI_CHAR_MAGIC, num, dtype)
#define HSC_IOR(num, dtype) _IOR(HSI_CHAR_MAGIC, num, dtype)
@@ -48,16 +49,16 @@
#define HSC_ARB_PRIO 1
struct hsc_rx_config {
- uint32_t mode;
- uint32_t flow;
- uint32_t channels;
+ __u32 mode;
+ __u32 flow;
+ __u32 channels;
};
struct hsc_tx_config {
- uint32_t mode;
- uint32_t channels;
- uint32_t speed;
- uint32_t arb_mode;
+ __u32 mode;
+ __u32 channels;
+ __u32 speed;
+ __u32 arb_mode;
};
#endif /* __HSI_CHAR_H */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 06/72] include/uapi/linux/hsi/cs-protocol.h: include linux/time.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (4 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 05/72] hsi_char.h: use __u32 " Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 20:52 ` Sebastian Reichel
2016-08-22 18:32 ` [PATCH v05 07/72] cld.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h Mikko Rapeli
` (65 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Sebastian Reichel
Fixes userspace compilation errors due to missing timespec definition.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/hsi/cs-protocol.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/hsi/cs-protocol.h b/include/uapi/linux/hsi/cs-protocol.h
index f153d6e..c8d9f08 100644
--- a/include/uapi/linux/hsi/cs-protocol.h
+++ b/include/uapi/linux/hsi/cs-protocol.h
@@ -26,6 +26,7 @@
#include <linux/types.h>
#include <linux/ioctl.h>
+#include <linux/time.h>
/* chardev parameters */
#define CS_DEV_FILE_NAME "/dev/cmt_speech"
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 07/72] cld.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (5 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 06/72] include/uapi/linux/hsi/cs-protocol.h: include linux/time.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 08/72] rds.h: " Mikko Rapeli
` (64 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, J. Bruce Fields, Jeff Layton, linux-nfs
Fixes userspace compilation errors like:
linux/nfsd/cld.h:40:2: error: unknown type name ‘uint16_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/nfsd/cld.h | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/include/uapi/linux/nfsd/cld.h b/include/uapi/linux/nfsd/cld.h
index f14a9ab..d9f2306 100644
--- a/include/uapi/linux/nfsd/cld.h
+++ b/include/uapi/linux/nfsd/cld.h
@@ -22,6 +22,8 @@
#ifndef _NFSD_CLD_H
#define _NFSD_CLD_H
+#include <linux/types.h>
+
/* latest upcall version available */
#define CLD_UPCALL_VERSION 1
@@ -37,18 +39,18 @@ enum cld_command {
/* representation of long-form NFSv4 client ID */
struct cld_name {
- uint16_t cn_len; /* length of cm_id */
+ __u16 cn_len; /* length of cm_id */
unsigned char cn_id[NFS4_OPAQUE_LIMIT]; /* client-provided */
} __attribute__((packed));
/* message struct for communication with userspace */
struct cld_msg {
- uint8_t cm_vers; /* upcall version */
- uint8_t cm_cmd; /* upcall command */
- int16_t cm_status; /* return code */
- uint32_t cm_xid; /* transaction id */
+ __u8 cm_vers; /* upcall version */
+ __u8 cm_cmd; /* upcall command */
+ __s16 cm_status; /* return code */
+ __u32 cm_xid; /* transaction id */
union {
- int64_t cm_gracetime; /* grace period start time */
+ __s64 cm_gracetime; /* grace period start time */
struct cld_name cm_name;
} __attribute__((packed)) cm_u;
} __attribute__((packed));
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 08/72] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (6 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 07/72] cld.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:52 ` Sowmini Varadhan
2016-08-22 18:32 ` [PATCH v05 09/72] sctp.h: use __u8 and __u32 " Mikko Rapeli
` (63 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Sowmini Varadhan
Fixes userspace compilation errors like:
linux/rds.h:96:2: error: unknown type name ‘uint8_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/rds.h | 102 +++++++++++++++++++++++------------------------
1 file changed, 51 insertions(+), 51 deletions(-)
diff --git a/include/uapi/linux/rds.h b/include/uapi/linux/rds.h
index 0f9265c..5bf0368 100644
--- a/include/uapi/linux/rds.h
+++ b/include/uapi/linux/rds.h
@@ -103,8 +103,8 @@
#define RDS_INFO_LAST 10010
struct rds_info_counter {
- uint8_t name[32];
- uint64_t value;
+ __u8 name[32];
+ __u64 value;
} __attribute__((packed));
#define RDS_INFO_CONNECTION_FLAG_SENDING 0x01
@@ -114,35 +114,35 @@ struct rds_info_counter {
#define TRANSNAMSIZ 16
struct rds_info_connection {
- uint64_t next_tx_seq;
- uint64_t next_rx_seq;
+ __u64 next_tx_seq;
+ __u64 next_rx_seq;
__be32 laddr;
__be32 faddr;
- uint8_t transport[TRANSNAMSIZ]; /* null term ascii */
- uint8_t flags;
+ __u8 transport[TRANSNAMSIZ]; /* null term ascii */
+ __u8 flags;
} __attribute__((packed));
#define RDS_INFO_MESSAGE_FLAG_ACK 0x01
#define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02
struct rds_info_message {
- uint64_t seq;
- uint32_t len;
+ __u64 seq;
+ __u32 len;
__be32 laddr;
__be32 faddr;
__be16 lport;
__be16 fport;
- uint8_t flags;
+ __u8 flags;
} __attribute__((packed));
struct rds_info_socket {
- uint32_t sndbuf;
+ __u32 sndbuf;
__be32 bound_addr;
__be32 connected_addr;
__be16 bound_port;
__be16 connected_port;
- uint32_t rcvbuf;
- uint64_t inum;
+ __u32 rcvbuf;
+ __u64 inum;
} __attribute__((packed));
struct rds_info_tcp_socket {
@@ -150,25 +150,25 @@ struct rds_info_tcp_socket {
__be16 local_port;
__be32 peer_addr;
__be16 peer_port;
- uint64_t hdr_rem;
- uint64_t data_rem;
- uint32_t last_sent_nxt;
- uint32_t last_expected_una;
- uint32_t last_seen_una;
+ __u64 hdr_rem;
+ __u64 data_rem;
+ __u32 last_sent_nxt;
+ __u32 last_expected_una;
+ __u32 last_seen_una;
} __attribute__((packed));
#define RDS_IB_GID_LEN 16
struct rds_info_rdma_connection {
__be32 src_addr;
__be32 dst_addr;
- uint8_t src_gid[RDS_IB_GID_LEN];
- uint8_t dst_gid[RDS_IB_GID_LEN];
+ __u8 src_gid[RDS_IB_GID_LEN];
+ __u8 dst_gid[RDS_IB_GID_LEN];
- uint32_t max_send_wr;
- uint32_t max_recv_wr;
- uint32_t max_send_sge;
- uint32_t rdma_mr_max;
- uint32_t rdma_mr_size;
+ __u32 max_send_wr;
+ __u32 max_recv_wr;
+ __u32 max_send_sge;
+ __u32 rdma_mr_max;
+ __u32 rdma_mr_size;
};
/*
@@ -209,70 +209,70 @@ struct rds_info_rdma_connection {
* (so that the application does not have to worry about
* alignment).
*/
-typedef uint64_t rds_rdma_cookie_t;
+typedef __u64 rds_rdma_cookie_t;
struct rds_iovec {
- uint64_t addr;
- uint64_t bytes;
+ __u64 addr;
+ __u64 bytes;
};
struct rds_get_mr_args {
struct rds_iovec vec;
- uint64_t cookie_addr;
- uint64_t flags;
+ __u64 cookie_addr;
+ __u64 flags;
};
struct rds_get_mr_for_dest_args {
struct sockaddr_storage dest_addr;
struct rds_iovec vec;
- uint64_t cookie_addr;
- uint64_t flags;
+ __u64 cookie_addr;
+ __u64 flags;
};
struct rds_free_mr_args {
rds_rdma_cookie_t cookie;
- uint64_t flags;
+ __u64 flags;
};
struct rds_rdma_args {
rds_rdma_cookie_t cookie;
struct rds_iovec remote_vec;
- uint64_t local_vec_addr;
- uint64_t nr_local;
- uint64_t flags;
- uint64_t user_token;
+ __u64 local_vec_addr;
+ __u64 nr_local;
+ __u64 flags;
+ __u64 user_token;
};
struct rds_atomic_args {
rds_rdma_cookie_t cookie;
- uint64_t local_addr;
- uint64_t remote_addr;
+ __u64 local_addr;
+ __u64 remote_addr;
union {
struct {
- uint64_t compare;
- uint64_t swap;
+ __u64 compare;
+ __u64 swap;
} cswp;
struct {
- uint64_t add;
+ __u64 add;
} fadd;
struct {
- uint64_t compare;
- uint64_t swap;
- uint64_t compare_mask;
- uint64_t swap_mask;
+ __u64 compare;
+ __u64 swap;
+ __u64 compare_mask;
+ __u64 swap_mask;
} m_cswp;
struct {
- uint64_t add;
- uint64_t nocarry_mask;
+ __u64 add;
+ __u64 nocarry_mask;
} m_fadd;
};
- uint64_t flags;
- uint64_t user_token;
+ __u64 flags;
+ __u64 user_token;
};
struct rds_rdma_notify {
- uint64_t user_token;
- int32_t status;
+ __u64 user_token;
+ __s32 status;
};
#define RDS_RDMA_SUCCESS 0
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 09/72] sctp.h: use __u8 and __u32 from linux/types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (7 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 08/72] rds.h: " Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 10/72] scsi_bsg_fc.h: use __u8, __u32 and __u64 " Mikko Rapeli
` (62 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Vlad Yasevich, Neil Horman, linux-sctp
Fixes userspace compilation errors like:
linux/sctp.h:652:2: error: unknown type name ‘uint32_t’
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/sctp.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h
index a406adc..ab697b3 100644
--- a/include/uapi/linux/sctp.h
+++ b/include/uapi/linux/sctp.h
@@ -743,13 +743,13 @@ struct sctp_authkeyid {
*/
struct sctp_sack_info {
sctp_assoc_t sack_assoc_id;
- uint32_t sack_delay;
- uint32_t sack_freq;
+ __u32 sack_delay;
+ __u32 sack_freq;
};
struct sctp_assoc_value {
- sctp_assoc_t assoc_id;
- uint32_t assoc_value;
+ sctp_assoc_t assoc_id;
+ __u32 assoc_value;
};
/*
@@ -819,7 +819,7 @@ struct sctp_status {
struct sctp_authchunks {
sctp_assoc_t gauth_assoc_id;
__u32 gauth_number_of_chunks;
- uint8_t gauth_chunks[];
+ __u8 gauth_chunks[];
};
/* The broken spelling has been released already in lksctp-tools header,
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 10/72] scsi_bsg_fc.h: use __u8, __u32 and __u64 from linux/types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (8 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 09/72] sctp.h: use __u8 and __u32 " Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 11/72] scsi_netlink.h: use __u8, __u16 " Mikko Rapeli
` (61 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Fixes userspace compilation errors like:
scsi/scsi_bsg_fc.h:83:2: error: unknown type name ‘uint8_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/scsi/scsi_bsg_fc.h | 54 +++++++++++++++++++++--------------------
1 file changed, 28 insertions(+), 26 deletions(-)
diff --git a/include/uapi/scsi/scsi_bsg_fc.h b/include/uapi/scsi/scsi_bsg_fc.h
index 3031b90..1a20447 100644
--- a/include/uapi/scsi/scsi_bsg_fc.h
+++ b/include/uapi/scsi/scsi_bsg_fc.h
@@ -22,6 +22,8 @@
#ifndef SCSI_BSG_FC_H
#define SCSI_BSG_FC_H
+#include <linux/types.h>
+
/*
* This file intended to be included by both kernel and user space
*/
@@ -80,10 +82,10 @@
* with the transport upon completion of the login.
*/
struct fc_bsg_host_add_rport {
- uint8_t reserved;
+ __u8 reserved;
/* FC Address Identier of the remote port to login to */
- uint8_t port_id[3];
+ __u8 port_id[3];
};
/* Response:
@@ -101,10 +103,10 @@ struct fc_bsg_host_add_rport {
* remain logged in with the remote port.
*/
struct fc_bsg_host_del_rport {
- uint8_t reserved;
+ __u8 reserved;
/* FC Address Identier of the remote port to logout of */
- uint8_t port_id[3];
+ __u8 port_id[3];
};
/* Response:
@@ -125,10 +127,10 @@ struct fc_bsg_host_els {
* ELS Command Code being sent (must be the same as byte 0
* of the payload)
*/
- uint8_t command_code;
+ __u8 command_code;
/* FC Address Identier of the remote port to send the ELS to */
- uint8_t port_id[3];
+ __u8 port_id[3];
};
/* Response:
@@ -165,14 +167,14 @@ struct fc_bsg_ctels_reply {
* Note: x_RJT/BSY status will indicae that the rjt_data field
* is valid and contains the reason/explanation values.
*/
- uint32_t status; /* See FC_CTELS_STATUS_xxx */
+ __u32 status; /* See FC_CTELS_STATUS_xxx */
/* valid if status is not FC_CTELS_STATUS_OK */
struct {
- uint8_t action; /* fragment_id for CT REJECT */
- uint8_t reason_code;
- uint8_t reason_explanation;
- uint8_t vendor_unique;
+ __u8 action; /* fragment_id for CT REJECT */
+ __u8 reason_code;
+ __u8 reason_explanation;
+ __u8 vendor_unique;
} rjt_data;
};
@@ -188,17 +190,17 @@ struct fc_bsg_ctels_reply {
* and whether to tear it down after the request.
*/
struct fc_bsg_host_ct {
- uint8_t reserved;
+ __u8 reserved;
/* FC Address Identier of the remote port to send the ELS to */
- uint8_t port_id[3];
+ __u8 port_id[3];
/*
* We need words 0-2 of the generic preamble for the LLD's
*/
- uint32_t preamble_word0; /* revision & IN_ID */
- uint32_t preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
- uint32_t preamble_word2; /* Cmd Code, Max Size */
+ __u32 preamble_word0; /* revision & IN_ID */
+ __u32 preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
+ __u32 preamble_word2; /* Cmd Code, Max Size */
};
/* Response:
@@ -218,17 +220,17 @@ struct fc_bsg_host_vendor {
* Identifies the vendor that the message is formatted for. This
* should be the recipient of the message.
*/
- uint64_t vendor_id;
+ __u64 vendor_id;
/* start of vendor command area */
- uint32_t vendor_cmd[0];
+ __u32 vendor_cmd[0];
};
/* Response:
*/
struct fc_bsg_host_vendor_reply {
/* start of vendor response area */
- uint32_t vendor_rsp[0];
+ __u32 vendor_rsp[0];
};
@@ -247,7 +249,7 @@ struct fc_bsg_rport_els {
* ELS Command Code being sent (must be the same as
* byte 0 of the payload)
*/
- uint8_t els_code;
+ __u8 els_code;
};
/* Response:
@@ -265,9 +267,9 @@ struct fc_bsg_rport_ct {
/*
* We need words 0-2 of the generic preamble for the LLD's
*/
- uint32_t preamble_word0; /* revision & IN_ID */
- uint32_t preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
- uint32_t preamble_word2; /* Cmd Code, Max Size */
+ __u32 preamble_word0; /* revision & IN_ID */
+ __u32 preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
+ __u32 preamble_word2; /* Cmd Code, Max Size */
};
/* Response:
*
@@ -279,7 +281,7 @@ struct fc_bsg_rport_ct {
/* request (CDB) structure of the sg_io_v4 */
struct fc_bsg_request {
- uint32_t msgcode;
+ __u32 msgcode;
union {
struct fc_bsg_host_add_rport h_addrport;
struct fc_bsg_host_del_rport h_delrport;
@@ -303,10 +305,10 @@ struct fc_bsg_reply {
* msg and status fields. The per-msgcode reply structure
* will contain valid data.
*/
- uint32_t result;
+ __u32 result;
/* If there was reply_payload, how much was recevied ? */
- uint32_t reply_payload_rcv_len;
+ __u32 reply_payload_rcv_len;
union {
struct fc_bsg_host_vendor_reply vendor_reply;
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 11/72] scsi_netlink.h: use __u8, __u16 and __u64 from linux/types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (9 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 10/72] scsi_bsg_fc.h: use __u8, __u32 and __u64 " Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 12/72] scsi_netlink_fc.h: use __u16, __u32 " Mikko Rapeli
` (60 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Fixes userspace compilation errors like:
scsi/scsi_netlink.h:43:2: error: unknown type name ‘uint8_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/scsi/scsi_netlink.h | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/include/uapi/scsi/scsi_netlink.h b/include/uapi/scsi/scsi_netlink.h
index 62b4eda..36b53a76 100644
--- a/include/uapi/scsi/scsi_netlink.h
+++ b/include/uapi/scsi/scsi_netlink.h
@@ -22,8 +22,8 @@
#ifndef SCSI_NETLINK_H
#define SCSI_NETLINK_H
-#include <linux/netlink.h>
#include <linux/types.h>
+#include <linux/netlink.h>
/*
* This file intended to be included by both kernel and user space
@@ -40,12 +40,12 @@
/* SCSI_TRANSPORT_MSG event message header */
struct scsi_nl_hdr {
- uint8_t version;
- uint8_t transport;
- uint16_t magic;
- uint16_t msgtype;
- uint16_t msglen;
-} __attribute__((aligned(sizeof(uint64_t))));
+ __u8 version;
+ __u8 transport;
+ __u16 magic;
+ __u16 msgtype;
+ __u16 msglen;
+} __attribute__((aligned(sizeof(__u64))));
/* scsi_nl_hdr->version value */
#define SCSI_NL_VERSION 1
@@ -89,10 +89,10 @@ struct scsi_nl_hdr {
*/
struct scsi_nl_host_vendor_msg {
struct scsi_nl_hdr snlh; /* must be 1st element ! */
- uint64_t vendor_id;
- uint16_t host_no;
- uint16_t vmsg_datalen;
-} __attribute__((aligned(sizeof(uint64_t))));
+ __u64 vendor_id;
+ __u16 host_no;
+ __u16 vmsg_datalen;
+} __attribute__((aligned(sizeof(__u64))));
/*
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 12/72] scsi_netlink_fc.h: use __u16, __u32 and __u64 from linux/types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (10 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 11/72] scsi_netlink.h: use __u8, __u16 " Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 13/72] include/uapi/linux/sysctl.h: use __kernel_size_t instead of size_t Mikko Rapeli
` (59 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Fixes userspace compilation errors like:
scsi/scsi_netlink_fc.h:60:2: error: expected specifier-qualifier-list before ‘uint64_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/scsi/scsi_netlink_fc.h | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/include/uapi/scsi/scsi_netlink_fc.h b/include/uapi/scsi/scsi_netlink_fc.h
index cbf76e4..2493a0f 100644
--- a/include/uapi/scsi/scsi_netlink_fc.h
+++ b/include/uapi/scsi/scsi_netlink_fc.h
@@ -57,14 +57,14 @@
*/
struct fc_nl_event {
struct scsi_nl_hdr snlh; /* must be 1st element ! */
- uint64_t seconds;
- uint64_t vendor_id;
- uint16_t host_no;
- uint16_t event_datalen;
- uint32_t event_num;
- uint32_t event_code;
- uint32_t event_data;
-} __attribute__((aligned(sizeof(uint64_t))));
+ __u64 seconds;
+ __u64 vendor_id;
+ __u16 host_no;
+ __u16 event_datalen;
+ __u32 event_num;
+ __u32 event_code;
+ __u32 event_data;
+} __attribute__((aligned(sizeof(__u64))));
#endif /* SCSI_NETLINK_FC_H */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 13/72] include/uapi/linux/sysctl.h: use __kernel_size_t instead of size_t
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (11 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 12/72] scsi_netlink_fc.h: use __u16, __u32 " Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 14/72] include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h Mikko Rapeli
` (58 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Alexey Dobriyan, Andrew Morton
Fixes userspace compilation error:
error: unknown type name ‘size_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/sysctl.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/sysctl.h b/include/uapi/linux/sysctl.h
index d2b1215..52e9795 100644
--- a/include/uapi/linux/sysctl.h
+++ b/include/uapi/linux/sysctl.h
@@ -35,9 +35,9 @@ struct __sysctl_args {
int __user *name;
int nlen;
void __user *oldval;
- size_t __user *oldlenp;
+ __kernel_size_t __user *oldlenp;
void __user *newval;
- size_t newlen;
+ __kernel_size_t newlen;
unsigned long __unused[4];
};
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 14/72] include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (12 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 13/72] include/uapi/linux/sysctl.h: use __kernel_size_t instead of size_t Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-24 15:36 ` Arnd Bergmann
2016-08-22 18:32 ` [PATCH v05 15/72] include/uapi/asm-generic/msgbuf.h: include asm/ipcbuf.h Mikko Rapeli
` (57 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Arnd Bergmann, linux-arch
Fixes userspace compilation error:
error: unknown type name ‘__kernel_key_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/ipcbuf.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/asm-generic/ipcbuf.h b/include/uapi/asm-generic/ipcbuf.h
index 3dbcc1e..909f825 100644
--- a/include/uapi/asm-generic/ipcbuf.h
+++ b/include/uapi/asm-generic/ipcbuf.h
@@ -1,6 +1,8 @@
#ifndef __ASM_GENERIC_IPCBUF_H
#define __ASM_GENERIC_IPCBUF_H
+#include <linux/posix_types.h>
+
/*
* The generic ipc64_perm structure:
* Note extra padding because this structure is passed back and forth
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 15/72] include/uapi/asm-generic/msgbuf.h: include asm/ipcbuf.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (13 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 14/72] include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 16/72] include/uapi/asm-generic/shmbuf.h: include fixes Mikko Rapeli
` (56 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Arnd Bergmann, linux-arch
Fixes userspace compilation errors like:
error: field ‘msg_perm’ has incomplete type
struct ipc64_perm msg_perm
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/msgbuf.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/asm-generic/msgbuf.h b/include/uapi/asm-generic/msgbuf.h
index f55ecc4..f5fbd8e 100644
--- a/include/uapi/asm-generic/msgbuf.h
+++ b/include/uapi/asm-generic/msgbuf.h
@@ -2,6 +2,8 @@
#define __ASM_GENERIC_MSGBUF_H
#include <asm/bitsperlong.h>
+#include <asm/ipcbuf.h>
+
/*
* generic msqid64_ds structure.
*
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 16/72] include/uapi/asm-generic/shmbuf.h: include fixes
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (14 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 15/72] include/uapi/asm-generic/msgbuf.h: include asm/ipcbuf.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 17/72] asm-generic/sembuf.h: include asm/posix_types.h and asm/ipcbuf.h Mikko Rapeli
` (55 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Arnd Bergmann, linux-arch
Include linux/types.h and asm/msgbuf.h and use __kernel_size_t instead
of size_t.
Fixes userspace compilation errors like:
error: field ‘shm_perm’ has incomplete type
struct ipc64_perm shm_perm; /* operation perms */
error: unknown type name ‘size_t’
error: unknown type name ‘__kernel_time_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/shmbuf.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/include/uapi/asm-generic/shmbuf.h b/include/uapi/asm-generic/shmbuf.h
index 7e9fb2f..ae867ad 100644
--- a/include/uapi/asm-generic/shmbuf.h
+++ b/include/uapi/asm-generic/shmbuf.h
@@ -1,7 +1,9 @@
#ifndef __ASM_GENERIC_SHMBUF_H
#define __ASM_GENERIC_SHMBUF_H
+#include <linux/types.h>
#include <asm/bitsperlong.h>
+#include <asm/msgbuf.h>
/*
* The shmid64_ds structure for x86 architecture.
@@ -24,7 +26,7 @@
struct shmid64_ds {
struct ipc64_perm shm_perm; /* operation perms */
- size_t shm_segsz; /* size of segment (bytes) */
+ __kernel_size_t shm_segsz; /* size of segment (bytes) */
__kernel_time_t shm_atime; /* last attach time */
#if __BITS_PER_LONG != 64
unsigned long __unused1;
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 17/72] asm-generic/sembuf.h: include asm/posix_types.h and asm/ipcbuf.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (15 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 16/72] include/uapi/asm-generic/shmbuf.h: include fixes Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 18/72] include/uapi/asm-generic/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
` (54 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Arnd Bergmann, linux-arch
Fixes userspace compilation errors like:
error: field ‘msg_perm’ has incomplete type
struct ipc64_perm msg_perm;
error: unknown type name ‘__kernel_ulong_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/sembuf.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/asm-generic/sembuf.h b/include/uapi/asm-generic/sembuf.h
index 4cb2c13..17d523f 100644
--- a/include/uapi/asm-generic/sembuf.h
+++ b/include/uapi/asm-generic/sembuf.h
@@ -2,6 +2,8 @@
#define __ASM_GENERIC_SEMBUF_H
#include <asm/bitsperlong.h>
+#include <asm/posix_types.h>
+#include <asm/ipcbuf.h>
/*
* The semid64_ds structure for x86 architecture.
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 18/72] include/uapi/asm-generic/signal.h: use __kernel_size_t instead of size_t
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (16 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 17/72] asm-generic/sembuf.h: include asm/posix_types.h and asm/ipcbuf.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 19/72] include/uapi/linux/socket.h: include sys/socket.h in userspace Mikko Rapeli
` (53 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Arnd Bergmann, linux-arch
Fixes userspace compiler error:
error: unknown type name ‘size_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/signal.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/asm-generic/signal.h b/include/uapi/asm-generic/signal.h
index 3094618..6bbcdfa 100644
--- a/include/uapi/asm-generic/signal.h
+++ b/include/uapi/asm-generic/signal.h
@@ -113,7 +113,7 @@ struct sigaction {
typedef struct sigaltstack {
void __user *ss_sp;
int ss_flags;
- size_t ss_size;
+ __kernel_size_t ss_size;
} stack_t;
#endif /* __ASSEMBLY__ */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 19/72] include/uapi/linux/socket.h: include sys/socket.h in userspace
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (17 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 18/72] include/uapi/asm-generic/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 20/72] include/uapi/linux/rds.h: include linux/socket.h and linux/types.h Mikko Rapeli
` (52 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
This libc header has sockaddr definition for userspace.
Fixes userspace compilation errors like these from kernel headers including
only linux/socket.h:
error: field ‘ifru_addr’ has incomplete type
struct sockaddr ifru_addr;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/socket.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/uapi/linux/socket.h b/include/uapi/linux/socket.h
index 76ab0c6..8a81197 100644
--- a/include/uapi/linux/socket.h
+++ b/include/uapi/linux/socket.h
@@ -1,6 +1,10 @@
#ifndef _UAPI_LINUX_SOCKET_H
#define _UAPI_LINUX_SOCKET_H
+#ifndef __KERNEL__
+#include <sys/socket.h>
+#endif
+
/*
* Desired design of maximum size and alignment (see RFC2553)
*/
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 20/72] include/uapi/linux/rds.h: include linux/socket.h and linux/types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (18 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 19/72] include/uapi/linux/socket.h: include sys/socket.h in userspace Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 21/72] include/uapi/linux/if_pppox.h: include linux/if.h Mikko Rapeli
` (51 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Sowmini Varadhan
Fixes userspace compilation errors like:
error: unknown type name ‘__be32’
error: field ‘dest_addr’ has incomplete type
struct sockaddr_storage dest_addr;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Acked-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
---
include/uapi/linux/rds.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/rds.h b/include/uapi/linux/rds.h
index 5bf0368..441adf7 100644
--- a/include/uapi/linux/rds.h
+++ b/include/uapi/linux/rds.h
@@ -35,6 +35,7 @@
#define _LINUX_RDS_H
#include <linux/types.h>
+#include <linux/socket.h>
#define RDS_IB_ABI_VERSION 0x301
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 21/72] include/uapi/linux/if_pppox.h: include linux/if.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (19 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 20/72] include/uapi/linux/rds.h: include linux/socket.h and linux/types.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 19:37 ` Stephen Hemminger
2016-08-22 23:33 ` David Miller
2016-08-22 18:32 ` [PATCH v05 22/72] include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and linux/in6.h Mikko Rapeli
` (50 subsequent siblings)
71 siblings, 2 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, netdev
Fixes userspace compilation error:
error: ‘IFNAMSIZ’ undeclared here (not in a function)
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/if_pppox.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/if_pppox.h b/include/uapi/linux/if_pppox.h
index e128769..473c3c4 100644
--- a/include/uapi/linux/if_pppox.h
+++ b/include/uapi/linux/if_pppox.h
@@ -21,6 +21,7 @@
#include <asm/byteorder.h>
#include <linux/socket.h>
+#include <linux/if.h>
#include <linux/if_ether.h>
#include <linux/if_pppol2tp.h>
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 22/72] include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and linux/in6.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (20 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 21/72] include/uapi/linux/if_pppox.h: include linux/if.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 23:28 ` David Miller
2016-08-22 18:32 ` [PATCH v05 23/72] include/uapi/linux/ipv6_route.h: include linux/in6.h Mikko Rapeli
` (49 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Stephen Hemminger, David S. Miller,
Philip Prindeville, netdev
Fixes userspace compilation errors like:
error: field ‘iph’ has incomplete type
error: field ‘prefix’ has incomplete type
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/if_tunnel.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/uapi/linux/if_tunnel.h b/include/uapi/linux/if_tunnel.h
index 1046f55..777b6cd 100644
--- a/include/uapi/linux/if_tunnel.h
+++ b/include/uapi/linux/if_tunnel.h
@@ -2,6 +2,9 @@
#define _UAPI_IF_TUNNEL_H_
#include <linux/types.h>
+#include <linux/if.h>
+#include <linux/ip.h>
+#include <linux/in6.h>
#include <asm/byteorder.h>
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 23/72] include/uapi/linux/ipv6_route.h: include linux/in6.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (21 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 22/72] include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and linux/in6.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 23:28 ` David Miller
2016-08-22 18:32 ` [PATCH v05 24/72] " Mikko Rapeli
` (48 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Nicolas Dichtel, David S. Miller
Fixes userspace compile errors like:
error: field ‘mf6cc_origin’ has incomplete type
struct sockaddr_in6 mf6cc_origin; /* Origin of mcast */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/mroute6.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/mroute6.h b/include/uapi/linux/mroute6.h
index 5062fb5..d05424f 100644
--- a/include/uapi/linux/mroute6.h
+++ b/include/uapi/linux/mroute6.h
@@ -4,6 +4,7 @@
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/sockios.h>
+#include <linux/in6.h>
/*
* Based on the MROUTING 3.5 defines primarily to keep
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 24/72] include/uapi/linux/ipv6_route.h: include linux/in6.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (22 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 23/72] include/uapi/linux/ipv6_route.h: include linux/in6.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 25/72] include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h Mikko Rapeli
` (47 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Fixes userspace compile errors like:
error: field ‘rtmsg_dst’ has incomplete type
struct in6_addr rtmsg_dst;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/ipv6_route.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/ipv6_route.h b/include/uapi/linux/ipv6_route.h
index f6598d1..25ab362 100644
--- a/include/uapi/linux/ipv6_route.h
+++ b/include/uapi/linux/ipv6_route.h
@@ -14,6 +14,7 @@
#define _UAPI_LINUX_IPV6_ROUTE_H
#include <linux/types.h>
+#include <linux/in6.h>
#define RTF_DEFAULT 0x00010000 /* default - learned via ND */
#define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed)
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 25/72] include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (23 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 24/72] " Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 23:31 ` David Miller
2016-08-22 18:32 ` [PATCH v05 26/72] include/uapi/linux/if_pppox.h: " Mikko Rapeli
` (46 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, James Chapman, netdev
Fixes userspace compilation errors like:
error: field ‘addr’ has incomplete type
struct sockaddr_in addr; /* IP address and port to send to */
^
error: field ‘addr’ has incomplete type
struct sockaddr_in6 addr; /* IP address and port to send to */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/if_pppol2tp.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/if_pppol2tp.h b/include/uapi/linux/if_pppol2tp.h
index 163e8ad..4bd1f55 100644
--- a/include/uapi/linux/if_pppol2tp.h
+++ b/include/uapi/linux/if_pppol2tp.h
@@ -16,7 +16,8 @@
#define _UAPI__LINUX_IF_PPPOL2TP_H
#include <linux/types.h>
-
+#include <linux/in.h>
+#include <linux/in6.h>
/* Structure used to connect() the socket to a particular tunnel UDP
* socket over IPv4.
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 26/72] include/uapi/linux/if_pppox.h: include linux/in.h and linux/in6.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (24 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 25/72] include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 23:31 ` David Miller
2016-08-22 18:32 ` [PATCH v05 27/72] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h Mikko Rapeli
` (45 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, netdev
Fixes userspace compilation errors:
error: field ‘addr’ has incomplete type
struct sockaddr_in addr; /* IP address and port to send to */
error: field ‘addr’ has incomplete type
struct sockaddr_in6 addr; /* IP address and port to send to */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/if_pppox.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/linux/if_pppox.h b/include/uapi/linux/if_pppox.h
index 473c3c4..d37bbb1 100644
--- a/include/uapi/linux/if_pppox.h
+++ b/include/uapi/linux/if_pppox.h
@@ -24,6 +24,8 @@
#include <linux/if.h>
#include <linux/if_ether.h>
#include <linux/if_pppol2tp.h>
+#include <linux/in.h>
+#include <linux/in6.h>
/* For user-space programs to pick up these definitions
* which they wouldn't get otherwise without defining __KERNEL__
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 27/72] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (25 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 26/72] include/uapi/linux/if_pppox.h: " Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 23:30 ` David Miller
2016-08-22 18:32 ` [PATCH v05 28/72] include/uapi/linux/packet_diag.h: include linux/netdevice.h Mikko Rapeli
` (44 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, David S. Miller, Zhang Shengju
Fixes userspace compiler error:
error: ‘IFNAMSIZ’ undeclared here (not in a function)
Suggested by Frans Klaver <fransklaver@gmail.com> on lkml message
<20150530195223.GA15645@bugger.home>.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/hdlc/ioctl.h | 5 +++++
include/uapi/linux/if.h | 5 +----
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/include/uapi/linux/hdlc/ioctl.h b/include/uapi/linux/hdlc/ioctl.h
index 04bc027..4b7a7ed 100644
--- a/include/uapi/linux/hdlc/ioctl.h
+++ b/include/uapi/linux/hdlc/ioctl.h
@@ -1,6 +1,11 @@
#ifndef __HDLC_IOCTL_H__
#define __HDLC_IOCTL_H__
+#include <linux/libc-compat.h> /* for compatibility with glibc */
+
+#if __UAPI_DEF_IF_IFNAMSIZ
+#define IFNAMSIZ 16
+#endif /* __UAPI_DEF_IF_IFNAMSIZ */
#define GENERIC_HDLC_VERSION 4 /* For synchronization with sethdlc utility */
diff --git a/include/uapi/linux/if.h b/include/uapi/linux/if.h
index e601c8c..68bd205 100644
--- a/include/uapi/linux/if.h
+++ b/include/uapi/linux/if.h
@@ -23,12 +23,9 @@
#include <linux/types.h> /* for "__kernel_caddr_t" et al */
#include <linux/socket.h> /* for "struct sockaddr" et al */
#include <linux/compiler.h> /* for "__user" et al */
+#include <linux/hdlc/ioctl.h> /* for IFNAMSIZ */
-#if __UAPI_DEF_IF_IFNAMSIZ
-#define IFNAMSIZ 16
-#endif /* __UAPI_DEF_IF_IFNAMSIZ */
#define IFALIASZ 256
-#include <linux/hdlc/ioctl.h>
/* For glibc compatibility. An empty enum does not compile. */
#if __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO != 0 && \
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 28/72] include/uapi/linux/packet_diag.h: include linux/netdevice.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (26 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 27/72] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 29/72] include/uapi/linux/llc.h: include linux/if.h Mikko Rapeli
` (43 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Fixes userspace compilation error:
error: ‘MAX_ADDR_LEN’ undeclared here (not in a function)
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/packet_diag.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/packet_diag.h b/include/uapi/linux/packet_diag.h
index d08c63f..2a75e97 100644
--- a/include/uapi/linux/packet_diag.h
+++ b/include/uapi/linux/packet_diag.h
@@ -2,6 +2,7 @@
#define __PACKET_DIAG_H__
#include <linux/types.h>
+#include <linux/netdevice.h>
struct packet_diag_req {
__u8 sdiag_family;
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 29/72] include/uapi/linux/llc.h: include linux/if.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (27 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 28/72] include/uapi/linux/packet_diag.h: include linux/netdevice.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 30/72] include/uapi/linux/mqueue.h: include linux/types.h Mikko Rapeli
` (42 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Arnaldo Carvalho de Melo
Fixes userspace compile error:
error: ‘IFHWADDRLEN’ undeclared here (not in a function)
unsigned char sllc_mac[IFHWADDRLEN];
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/llc.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/llc.h b/include/uapi/linux/llc.h
index 9c987a4..f503599 100644
--- a/include/uapi/linux/llc.h
+++ b/include/uapi/linux/llc.h
@@ -14,6 +14,7 @@
#define _UAPI__LINUX_LLC_H
#include <linux/socket.h>
+#include <linux/if.h>
#define __LLC_SOCK_SIZE__ 16 /* sizeof(sockaddr_llc), word align. */
struct sockaddr_llc {
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 30/72] include/uapi/linux/mqueue.h: include linux/types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (28 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 29/72] include/uapi/linux/llc.h: include linux/if.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 31/72] include/uapi/linux/mroute.h: include linux/in.h Mikko Rapeli
` (41 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Fixes userspace compile error:
error: unknown type name ‘__kernel_long_t’
__kernel_long_t mq_flags; /* message queue flags */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/mqueue.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/linux/mqueue.h b/include/uapi/linux/mqueue.h
index d0a2b8e..bbd5116 100644
--- a/include/uapi/linux/mqueue.h
+++ b/include/uapi/linux/mqueue.h
@@ -18,6 +18,8 @@
#ifndef _LINUX_MQUEUE_H
#define _LINUX_MQUEUE_H
+#include <linux/types.h>
+
#define MQ_PRIO_MAX 32768
/* per-uid limit of kernel memory used by mqueue, in bytes */
#define MQ_BYTES_MAX 819200
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 31/72] include/uapi/linux/mroute.h: include linux/in.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (29 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 30/72] include/uapi/linux/mqueue.h: include linux/types.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 23:30 ` David Miller
2016-08-22 18:32 ` [PATCH v05 32/72] include/uapi/linux/dlm_netlink.h: include linux/dlmconstants.h Mikko Rapeli
` (40 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Nikolay Aleksandrov, David S. Miller
Fixes userspace compile errors like:
error: field ‘vifc_lcl_addr’ has incomplete type
struct in_addr vifc_lcl_addr; /* Local interface address */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/mroute.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/mroute.h b/include/uapi/linux/mroute.h
index cf94301..4540653 100644
--- a/include/uapi/linux/mroute.h
+++ b/include/uapi/linux/mroute.h
@@ -3,6 +3,7 @@
#include <linux/sockios.h>
#include <linux/types.h>
+#include <linux/in.h>
/* Based on the MROUTING 3.5 defines primarily to keep
* source compatibility with BSD.
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 32/72] include/uapi/linux/dlm_netlink.h: include linux/dlmconstants.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (30 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 31/72] include/uapi/linux/mroute.h: include linux/in.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 33/72] include/uapi/linux/ip6_tunnel.h: include linux/if.h and linux/in6.h Mikko Rapeli
` (39 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Fixes userspace compilation error:
error: ‘DLM_RESNAME_MAXLEN’ undeclared here (not in a function)
char resource_name[DLM_RESNAME_MAXLEN];
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/dlm_netlink.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/dlm_netlink.h b/include/uapi/linux/dlm_netlink.h
index 647c8ef..ef1e2e0 100644
--- a/include/uapi/linux/dlm_netlink.h
+++ b/include/uapi/linux/dlm_netlink.h
@@ -10,6 +10,7 @@
#define _DLM_NETLINK_H
#include <linux/types.h>
+#include <linux/dlmconstants.h>
enum {
DLM_STATUS_WAITING = 1,
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 33/72] include/uapi/linux/ip6_tunnel.h: include linux/if.h and linux/in6.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (31 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 32/72] include/uapi/linux/dlm_netlink.h: include linux/dlmconstants.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 34/72] include/uapi/linux/errqueue.h: include linux/time.h Mikko Rapeli
` (38 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Fixes userspace compile errors like:
error: ‘IFNAMSIZ’ undeclared here (not in a function)
error: field ‘laddr’ has incomplete type
struct in6_addr laddr; /* local tunnel end-point address */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/ip6_tunnel.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/linux/ip6_tunnel.h b/include/uapi/linux/ip6_tunnel.h
index 48af63c..21cfd62 100644
--- a/include/uapi/linux/ip6_tunnel.h
+++ b/include/uapi/linux/ip6_tunnel.h
@@ -2,6 +2,8 @@
#define _IP6_TUNNEL_H
#include <linux/types.h>
+#include <linux/if.h>
+#include <linux/in6.h>
#define IPV6_TLV_TNL_ENCAP_LIMIT 4
#define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 34/72] include/uapi/linux/errqueue.h: include linux/time.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (32 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 33/72] include/uapi/linux/ip6_tunnel.h: include linux/if.h and linux/in6.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 21:32 ` kbuild test robot
` (2 more replies)
2016-08-22 18:32 ` [PATCH v05 35/72] include/uapi/asm-generic/ucontext.h: include asm/signal.h and asm/sigcontext.h Mikko Rapeli
` (37 subsequent siblings)
71 siblings, 3 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Fixes userspace compilation error:
error: array type has incomplete element type
struct timespec ts[3];
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/errqueue.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/errqueue.h b/include/uapi/linux/errqueue.h
index 07bdce1..6b1cdc6 100644
--- a/include/uapi/linux/errqueue.h
+++ b/include/uapi/linux/errqueue.h
@@ -2,6 +2,7 @@
#define _UAPI_LINUX_ERRQUEUE_H
#include <linux/types.h>
+#include <linux/time.h>
struct sock_extended_err {
__u32 ee_errno;
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 35/72] include/uapi/asm-generic/ucontext.h: include asm/signal.h and asm/sigcontext.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (33 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 34/72] include/uapi/linux/errqueue.h: include linux/time.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 36/72] arch/x86/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
` (36 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Arnd Bergmann, linux-arch
Fixes userspace compiler errors:
error: unknown type name ‘stack_t’
error: field ‘uc_mcontext’ has incomplete type
struct sigcontext uc_mcontext;
error: unknown type name ‘sigset_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/ucontext.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/uapi/asm-generic/ucontext.h b/include/uapi/asm-generic/ucontext.h
index ad77343..4481528 100644
--- a/include/uapi/asm-generic/ucontext.h
+++ b/include/uapi/asm-generic/ucontext.h
@@ -1,6 +1,9 @@
#ifndef __ASM_GENERIC_UCONTEXT_H
#define __ASM_GENERIC_UCONTEXT_H
+#include <asm/signal.h>
+#include <asm/sigcontext.h>
+
struct ucontext {
unsigned long uc_flags;
struct ucontext *uc_link;
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 36/72] arch/x86/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (34 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 35/72] include/uapi/asm-generic/ucontext.h: include asm/signal.h and asm/sigcontext.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 37/72] include/uapi/linux/auto_fs.h: include linux/limits.h Mikko Rapeli
` (35 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86
Fixes userspace compilation error:
error: unknown type name ‘size_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
arch/x86/include/uapi/asm/signal.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/include/uapi/asm/signal.h b/arch/x86/include/uapi/asm/signal.h
index 8264f47..74346db 100644
--- a/arch/x86/include/uapi/asm/signal.h
+++ b/arch/x86/include/uapi/asm/signal.h
@@ -127,7 +127,7 @@ struct sigaction {
typedef struct sigaltstack {
void __user *ss_sp;
int ss_flags;
- size_t ss_size;
+ __kernel_size_t ss_size;
} stack_t;
#endif /* __ASSEMBLY__ */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 37/72] include/uapi/linux/auto_fs.h: include linux/limits.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (35 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 36/72] arch/x86/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-23 0:42 ` Ian Kent
2016-08-22 18:32 ` [PATCH v05 38/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h Mikko Rapeli
` (34 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Ian Kent, Andrew Morton
Fixes userspace compilation error:
error: ‘NAME_MAX’ undeclared here (not in a function)
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/auto_fs.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/auto_fs.h b/include/uapi/linux/auto_fs.h
index 9175a1b..1bfc3ed 100644
--- a/include/uapi/linux/auto_fs.h
+++ b/include/uapi/linux/auto_fs.h
@@ -12,6 +12,7 @@
#define _UAPI_LINUX_AUTO_FS_H
#include <linux/types.h>
+#include <linux/limits.h>
#ifndef __KERNEL__
#include <sys/ioctl.h>
#endif /* __KERNEL__ */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 38/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (36 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 37/72] include/uapi/linux/auto_fs.h: include linux/limits.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 19:39 ` Stephen Hemminger
2016-08-22 23:31 ` David Miller
2016-08-22 18:32 ` [PATCH v05 39/72] include/uapi/linux/target_core_user.h: use __u8, __u16, __u32 and __u64 " Mikko Rapeli
` (33 subsequent siblings)
71 siblings, 2 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Pravin Shelar, netdev, dev
Fixes userspace compiler error:
error: unknown type name ‘uint32_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/openvswitch.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
index d95a301..645499a 100644
--- a/include/uapi/linux/openvswitch.h
+++ b/include/uapi/linux/openvswitch.h
@@ -632,8 +632,8 @@ enum ovs_hash_alg {
* @hash_basis: basis used for computing hash.
*/
struct ovs_action_hash {
- uint32_t hash_alg; /* One of ovs_hash_alg. */
- uint32_t hash_basis;
+ __u32 hash_alg; /* One of ovs_hash_alg. */
+ __u32 hash_basis;
};
/**
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 39/72] include/uapi/linux/target_core_user.h: use __u8, __u16, __u32 and __u64 from linux/types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (37 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 38/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 40/72] include/uapi/linux/omapfb.h: use __kernel_size_t instead of size_t Mikko Rapeli
` (32 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Nicholas Bellinger, Andy Grover, Sheng Yang,
David Disseldorp
Fixes userspace compilation errors like:
error: unknown type name ‘uint16_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/target_core_user.h | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/include/uapi/linux/target_core_user.h b/include/uapi/linux/target_core_user.h
index c506cdd..af17b41 100644
--- a/include/uapi/linux/target_core_user.h
+++ b/include/uapi/linux/target_core_user.h
@@ -105,26 +105,26 @@ struct tcmu_cmd_entry {
union {
struct {
- uint32_t iov_cnt;
- uint32_t iov_bidi_cnt;
- uint32_t iov_dif_cnt;
- uint64_t cdb_off;
- uint64_t __pad1;
- uint64_t __pad2;
+ __u32 iov_cnt;
+ __u32 iov_bidi_cnt;
+ __u32 iov_dif_cnt;
+ __u64 cdb_off;
+ __u64 __pad1;
+ __u64 __pad2;
struct iovec iov[0];
} req;
struct {
- uint8_t scsi_status;
- uint8_t __pad1;
- uint16_t __pad2;
- uint32_t __pad3;
+ __u8 scsi_status;
+ __u8 __pad1;
+ __u16 __pad2;
+ __u32 __pad3;
char sense_buffer[TCMU_SENSE_BUFFERSIZE];
} rsp;
};
} __packed;
-#define TCMU_OP_ALIGN_SIZE sizeof(uint64_t)
+#define TCMU_OP_ALIGN_SIZE sizeof(__u64)
enum tcmu_genl_cmd {
TCMU_CMD_UNSPEC,
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 40/72] include/uapi/linux/omapfb.h: use __kernel_size_t instead of size_t
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (38 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 39/72] include/uapi/linux/target_core_user.h: use __u8, __u16, __u32 and __u64 " Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 41/72] include/uapi/linux/atm_zatm.h: include linux/time.h Mikko Rapeli
` (31 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Fixes userspace compilation error:
error: unknown type name ‘size_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/omapfb.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/linux/omapfb.h b/include/uapi/linux/omapfb.h
index 7c97bc0..b637a92 100644
--- a/include/uapi/linux/omapfb.h
+++ b/include/uapi/linux/omapfb.h
@@ -181,7 +181,7 @@ struct omapfb_memory_read {
__u16 y;
__u16 w;
__u16 h;
- size_t buffer_size;
+ __kernel_size_t buffer_size;
void __user *buffer;
};
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 41/72] include/uapi/linux/atm_zatm.h: include linux/time.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (39 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 40/72] include/uapi/linux/omapfb.h: use __kernel_size_t instead of size_t Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 23:30 ` David Miller
2016-08-22 18:32 ` [PATCH v05 42/72] include/uapi/linux/scc.h: include linux/sockios.h Mikko Rapeli
` (30 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Chas Williams, linux-atm-general, netdev
Fixes userspace compile error:
error: field ‘real’ has incomplete type
struct timeval real; /* real (wall-clock) time */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/atm_zatm.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/atm_zatm.h b/include/uapi/linux/atm_zatm.h
index 9c9c6ad..5cd4d4d 100644
--- a/include/uapi/linux/atm_zatm.h
+++ b/include/uapi/linux/atm_zatm.h
@@ -14,6 +14,7 @@
#include <linux/atmapi.h>
#include <linux/atmioc.h>
+#include <linux/time.h>
#define ZATM_GETPOOL _IOW('a',ATMIOC_SARPRV+1,struct atmif_sioc)
/* get pool statistics */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 42/72] include/uapi/linux/scc.h: include linux/sockios.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (40 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 41/72] include/uapi/linux/atm_zatm.h: include linux/time.h Mikko Rapeli
@ 2016-08-22 18:32 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 43/72] include/uapi/linux/btrfs.h: define NULL Mikko Rapeli
` (29 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Fixes userspace compilation error:
error: ‘SIOCDEVPRIVATE’ undeclared here (not in a function)
SIOCSCCRESERVED = SIOCDEVPRIVATE
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/scc.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/scc.h b/include/uapi/linux/scc.h
index 72b6b81..2992b88 100644
--- a/include/uapi/linux/scc.h
+++ b/include/uapi/linux/scc.h
@@ -3,6 +3,7 @@
#ifndef _UAPI_SCC_H
#define _UAPI_SCC_H
+#include <linux/sockios.h>
/* selection of hardware types */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 43/72] include/uapi/linux/btrfs.h: define NULL
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (41 preceding siblings ...)
2016-08-22 18:32 ` [PATCH v05 42/72] include/uapi/linux/scc.h: include linux/sockios.h Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 44/72] include/uapi/linux/kexec.h: use __kernel_size_t instead of size_t Mikko Rapeli
` (28 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, David Sterba, Liu Bo, Jeff Mahoney, Josef Bacik,
Chris Mason, Vinson Lee, Anand Jain, Hans van Kranenburg,
Gabríel Arthúr Pétursson
Copied the NULL definition from include/linux/stddef.h which does not have
it in userspace.
Fixes userspace compilation error:
error: ‘NULL’ undeclared (first use in this function)
return NULL;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/btrfs.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/include/uapi/linux/btrfs.h b/include/uapi/linux/btrfs.h
index ac5eacd..8865985 100644
--- a/include/uapi/linux/btrfs.h
+++ b/include/uapi/linux/btrfs.h
@@ -20,6 +20,12 @@
#define _UAPI_LINUX_BTRFS_H
#include <linux/types.h>
#include <linux/ioctl.h>
+#include <linux/stddef.h>
+
+/* for userspace where linux/stddef.h doesn't define this */
+#ifndef NULL
+#define NULL ((void *)0)
+#endif
#define BTRFS_IOCTL_MAGIC 0x94
#define BTRFS_VOL_NAME_MAX 255
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 44/72] include/uapi/linux/kexec.h: use __kernel_size_t instead of size_t
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (42 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 43/72] include/uapi/linux/btrfs.h: define NULL Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 45/72] include/uapi/linux/reiserfs_xattr.h: " Mikko Rapeli
` (27 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Eric Biederman, kexec
Fixes userspace compilation error:
error: unknown type name ‘size_t’
size_t bufsz;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/kexec.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/kexec.h b/include/uapi/linux/kexec.h
index aae5ebf..f964d83 100644
--- a/include/uapi/linux/kexec.h
+++ b/include/uapi/linux/kexec.h
@@ -51,9 +51,9 @@
*/
struct kexec_segment {
const void *buf;
- size_t bufsz;
+ __kernel_size_t bufsz;
const void *mem;
- size_t memsz;
+ __kernel_size_t memsz;
};
#endif /* __KERNEL__ */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 45/72] include/uapi/linux/reiserfs_xattr.h: use __kernel_size_t instead of size_t
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (43 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 44/72] include/uapi/linux/kexec.h: use __kernel_size_t instead of size_t Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 46/72] include/uapi/linux/patchkey.h: change #error to #warning if file included directly Mikko Rapeli
` (26 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Fixes userspace compilation error:
error: unknown type name ‘size_t’
size_t length;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/reiserfs_xattr.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/linux/reiserfs_xattr.h b/include/uapi/linux/reiserfs_xattr.h
index 38fdd64..af52b38 100644
--- a/include/uapi/linux/reiserfs_xattr.h
+++ b/include/uapi/linux/reiserfs_xattr.h
@@ -18,7 +18,7 @@ struct reiserfs_xattr_header {
struct reiserfs_security_handle {
const char *name;
void *value;
- size_t length;
+ __kernel_size_t length;
};
#endif /* _LINUX_REISERFS_XATTR_H */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 46/72] include/uapi/linux/patchkey.h: change #error to #warning if file included directly
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (44 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 45/72] include/uapi/linux/reiserfs_xattr.h: " Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 47/72] include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc definitions for userspace Mikko Rapeli
` (25 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Would be nice to be able to compile all userspace header files also alone.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/patchkey.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/linux/patchkey.h b/include/uapi/linux/patchkey.h
index 1bda0e5..cee195d 100644
--- a/include/uapi/linux/patchkey.h
+++ b/include/uapi/linux/patchkey.h
@@ -11,7 +11,7 @@
*/
#ifndef _LINUX_PATCHKEY_H_INDIRECT
-#error "patchkey.h included directly"
+#warning "patchkey.h included directly"
#endif
#ifndef _UAPI_LINUX_PATCHKEY_H
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 47/72] include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc definitions for userspace
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (45 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 46/72] include/uapi/linux/patchkey.h: change #error to #warning if file included directly Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-23 3:08 ` kbuild test robot
2016-08-22 18:33 ` [PATCH v05 48/72] include/uapi/linux/android/binder.h: use __kernel_pid_t and __kernel_uid_t Mikko Rapeli
` (24 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Jan Harkes, coda, codalist
Fixes userspace compilation errors about unknown pid_t, u_short etc types.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/coda.h | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/coda.h b/include/uapi/linux/coda.h
index 695fade..fab3bd0 100644
--- a/include/uapi/linux/coda.h
+++ b/include/uapi/linux/coda.h
@@ -100,7 +100,14 @@ typedef unsigned long long u_quad_t;
#if defined(__linux__)
#include <linux/time.h>
#define cdev_t u_quad_t
+typedef unsigned long u_long;
+typedef unsigned int u_int;
+typedef unsigned short u_short;
+typedef u_long ino_t;
+
#ifndef __KERNEL__
+typedef u_long dev_t;
+typedef void *caddr_t;
#if !defined(_UQUAD_T_) && (!defined(__GLIBC__) || __GLIBC__ < 2)
#define _UQUAD_T_ 1
typedef unsigned long long u_quad_t;
@@ -295,8 +302,8 @@ struct coda_statfs {
struct coda_in_hdr {
u_int32_t opcode;
u_int32_t unique; /* Keep multiple outstanding msgs distinct */
- pid_t pid;
- pid_t pgid;
+ __kernel_pid_t pid;
+ __kernel_pid_t pgid;
vuid_t uid;
};
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 48/72] include/uapi/linux/android/binder.h: use __kernel_pid_t and __kernel_uid_t
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (46 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 47/72] include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc definitions for userspace Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 49/72] arch/x86/include/uapi/asm/sembuf.h: include linux/types.h and linux/ipc.h Mikko Rapeli
` (23 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Fixes userspace compilation errors:
error: unknown type name ‘pid_t’
pid_t sender_pid
error: unknown type name ‘uid_t’
uid_t sender_euid;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/android/binder.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/android/binder.h b/include/uapi/linux/android/binder.h
index 41420e3..4e4a385 100644
--- a/include/uapi/linux/android/binder.h
+++ b/include/uapi/linux/android/binder.h
@@ -142,8 +142,8 @@ struct binder_transaction_data {
/* General information about the transaction. */
__u32 flags;
- pid_t sender_pid;
- uid_t sender_euid;
+ __kernel_pid_t sender_pid;
+ __kernel_uid_t sender_euid;
binder_size_t data_size; /* number of bytes of data */
binder_size_t offsets_size; /* number of bytes of offsets */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 49/72] arch/x86/include/uapi/asm/sembuf.h: include linux/types.h and linux/ipc.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (47 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 48/72] include/uapi/linux/android/binder.h: use __kernel_pid_t and __kernel_uid_t Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 50/72] include/uapi/linux/fuse.h: use linux/types.h also in userspace Mikko Rapeli
` (22 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86
Fixes userspace compile errors like:
error: field ‘sem_perm’ has incomplete type
struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
error: unknown type name ‘__kernel_time_t’
__kernel_time_t sem_otime; /* last semop time */
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
arch/x86/include/uapi/asm/sembuf.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/x86/include/uapi/asm/sembuf.h b/arch/x86/include/uapi/asm/sembuf.h
index cc2d6a3..f11ed52 100644
--- a/arch/x86/include/uapi/asm/sembuf.h
+++ b/arch/x86/include/uapi/asm/sembuf.h
@@ -1,6 +1,9 @@
#ifndef _ASM_X86_SEMBUF_H
#define _ASM_X86_SEMBUF_H
+#include <linux/types.h>
+#include <linux/ipc.h>
+
/*
* The semid64_ds structure for x86 architecture.
* Note extra padding because this structure is passed back and forth
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 50/72] include/uapi/linux/fuse.h: use linux/types.h also in userspace
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (48 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 49/72] arch/x86/include/uapi/asm/sembuf.h: include linux/types.h and linux/ipc.h Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-23 7:16 ` Miklos Szeredi
2016-08-22 18:33 ` [PATCH v05 51/72] include/linux/ipmi-fru.h: use linux/types.h instead of stdint.h Mikko Rapeli
` (21 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Arnd Bergmann, Miklos Szeredi, linux-fsdevel
Kernel headers should not use stdint.h.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Miklos Szeredi <miklos@szeredi.hu>
---
include/uapi/linux/fuse.h | 452 +++++++++++++++++++++++-----------------------
1 file changed, 224 insertions(+), 228 deletions(-)
diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h
index 27e1736..f9eadc7 100644
--- a/include/uapi/linux/fuse.h
+++ b/include/uapi/linux/fuse.h
@@ -113,11 +113,7 @@
#ifndef _LINUX_FUSE_H
#define _LINUX_FUSE_H
-#ifdef __KERNEL__
#include <linux/types.h>
-#else
-#include <stdint.h>
-#endif
/*
* Version negotiation:
@@ -152,42 +148,42 @@
userspace works under 64bit kernels */
struct fuse_attr {
- uint64_t ino;
- uint64_t size;
- uint64_t blocks;
- uint64_t atime;
- uint64_t mtime;
- uint64_t ctime;
- uint32_t atimensec;
- uint32_t mtimensec;
- uint32_t ctimensec;
- uint32_t mode;
- uint32_t nlink;
- uint32_t uid;
- uint32_t gid;
- uint32_t rdev;
- uint32_t blksize;
- uint32_t padding;
+ __u64 ino;
+ __u64 size;
+ __u64 blocks;
+ __u64 atime;
+ __u64 mtime;
+ __u64 ctime;
+ __u32 atimensec;
+ __u32 mtimensec;
+ __u32 ctimensec;
+ __u32 mode;
+ __u32 nlink;
+ __u32 uid;
+ __u32 gid;
+ __u32 rdev;
+ __u32 blksize;
+ __u32 padding;
};
struct fuse_kstatfs {
- uint64_t blocks;
- uint64_t bfree;
- uint64_t bavail;
- uint64_t files;
- uint64_t ffree;
- uint32_t bsize;
- uint32_t namelen;
- uint32_t frsize;
- uint32_t padding;
- uint32_t spare[6];
+ __u64 blocks;
+ __u64 bfree;
+ __u64 bavail;
+ __u64 files;
+ __u64 ffree;
+ __u32 bsize;
+ __u32 namelen;
+ __u32 frsize;
+ __u32 padding;
+ __u32 spare[6];
};
struct fuse_file_lock {
- uint64_t start;
- uint64_t end;
- uint32_t type;
- uint32_t pid; /* tgid */
+ __u64 start;
+ __u64 end;
+ __u32 type;
+ __u32 pid; /* tgid */
};
/**
@@ -388,149 +384,149 @@ enum fuse_notify_code {
#define FUSE_COMPAT_ENTRY_OUT_SIZE 120
struct fuse_entry_out {
- uint64_t nodeid; /* Inode ID */
- uint64_t generation; /* Inode generation: nodeid:gen must
+ __u64 nodeid; /* Inode ID */
+ __u64 generation; /* Inode generation: nodeid:gen must
be unique for the fs's lifetime */
- uint64_t entry_valid; /* Cache timeout for the name */
- uint64_t attr_valid; /* Cache timeout for the attributes */
- uint32_t entry_valid_nsec;
- uint32_t attr_valid_nsec;
+ __u64 entry_valid; /* Cache timeout for the name */
+ __u64 attr_valid; /* Cache timeout for the attributes */
+ __u32 entry_valid_nsec;
+ __u32 attr_valid_nsec;
struct fuse_attr attr;
};
struct fuse_forget_in {
- uint64_t nlookup;
+ __u64 nlookup;
};
struct fuse_forget_one {
- uint64_t nodeid;
- uint64_t nlookup;
+ __u64 nodeid;
+ __u64 nlookup;
};
struct fuse_batch_forget_in {
- uint32_t count;
- uint32_t dummy;
+ __u32 count;
+ __u32 dummy;
};
struct fuse_getattr_in {
- uint32_t getattr_flags;
- uint32_t dummy;
- uint64_t fh;
+ __u32 getattr_flags;
+ __u32 dummy;
+ __u64 fh;
};
#define FUSE_COMPAT_ATTR_OUT_SIZE 96
struct fuse_attr_out {
- uint64_t attr_valid; /* Cache timeout for the attributes */
- uint32_t attr_valid_nsec;
- uint32_t dummy;
+ __u64 attr_valid; /* Cache timeout for the attributes */
+ __u32 attr_valid_nsec;
+ __u32 dummy;
struct fuse_attr attr;
};
#define FUSE_COMPAT_MKNOD_IN_SIZE 8
struct fuse_mknod_in {
- uint32_t mode;
- uint32_t rdev;
- uint32_t umask;
- uint32_t padding;
+ __u32 mode;
+ __u32 rdev;
+ __u32 umask;
+ __u32 padding;
};
struct fuse_mkdir_in {
- uint32_t mode;
- uint32_t umask;
+ __u32 mode;
+ __u32 umask;
};
struct fuse_rename_in {
- uint64_t newdir;
+ __u64 newdir;
};
struct fuse_rename2_in {
- uint64_t newdir;
- uint32_t flags;
- uint32_t padding;
+ __u64 newdir;
+ __u32 flags;
+ __u32 padding;
};
struct fuse_link_in {
- uint64_t oldnodeid;
+ __u64 oldnodeid;
};
struct fuse_setattr_in {
- uint32_t valid;
- uint32_t padding;
- uint64_t fh;
- uint64_t size;
- uint64_t lock_owner;
- uint64_t atime;
- uint64_t mtime;
- uint64_t ctime;
- uint32_t atimensec;
- uint32_t mtimensec;
- uint32_t ctimensec;
- uint32_t mode;
- uint32_t unused4;
- uint32_t uid;
- uint32_t gid;
- uint32_t unused5;
+ __u32 valid;
+ __u32 padding;
+ __u64 fh;
+ __u64 size;
+ __u64 lock_owner;
+ __u64 atime;
+ __u64 mtime;
+ __u64 ctime;
+ __u32 atimensec;
+ __u32 mtimensec;
+ __u32 ctimensec;
+ __u32 mode;
+ __u32 unused4;
+ __u32 uid;
+ __u32 gid;
+ __u32 unused5;
};
struct fuse_open_in {
- uint32_t flags;
- uint32_t unused;
+ __u32 flags;
+ __u32 unused;
};
struct fuse_create_in {
- uint32_t flags;
- uint32_t mode;
- uint32_t umask;
- uint32_t padding;
+ __u32 flags;
+ __u32 mode;
+ __u32 umask;
+ __u32 padding;
};
struct fuse_open_out {
- uint64_t fh;
- uint32_t open_flags;
- uint32_t padding;
+ __u64 fh;
+ __u32 open_flags;
+ __u32 padding;
};
struct fuse_release_in {
- uint64_t fh;
- uint32_t flags;
- uint32_t release_flags;
- uint64_t lock_owner;
+ __u64 fh;
+ __u32 flags;
+ __u32 release_flags;
+ __u64 lock_owner;
};
struct fuse_flush_in {
- uint64_t fh;
- uint32_t unused;
- uint32_t padding;
- uint64_t lock_owner;
+ __u64 fh;
+ __u32 unused;
+ __u32 padding;
+ __u64 lock_owner;
};
struct fuse_read_in {
- uint64_t fh;
- uint64_t offset;
- uint32_t size;
- uint32_t read_flags;
- uint64_t lock_owner;
- uint32_t flags;
- uint32_t padding;
+ __u64 fh;
+ __u64 offset;
+ __u32 size;
+ __u32 read_flags;
+ __u64 lock_owner;
+ __u32 flags;
+ __u32 padding;
};
#define FUSE_COMPAT_WRITE_IN_SIZE 24
struct fuse_write_in {
- uint64_t fh;
- uint64_t offset;
- uint32_t size;
- uint32_t write_flags;
- uint64_t lock_owner;
- uint32_t flags;
- uint32_t padding;
+ __u64 fh;
+ __u64 offset;
+ __u32 size;
+ __u32 write_flags;
+ __u64 lock_owner;
+ __u32 flags;
+ __u32 padding;
};
struct fuse_write_out {
- uint32_t size;
- uint32_t padding;
+ __u32 size;
+ __u32 padding;
};
#define FUSE_COMPAT_STATFS_SIZE 48
@@ -540,32 +536,32 @@ struct fuse_statfs_out {
};
struct fuse_fsync_in {
- uint64_t fh;
- uint32_t fsync_flags;
- uint32_t padding;
+ __u64 fh;
+ __u32 fsync_flags;
+ __u32 padding;
};
struct fuse_setxattr_in {
- uint32_t size;
- uint32_t flags;
+ __u32 size;
+ __u32 flags;
};
struct fuse_getxattr_in {
- uint32_t size;
- uint32_t padding;
+ __u32 size;
+ __u32 padding;
};
struct fuse_getxattr_out {
- uint32_t size;
- uint32_t padding;
+ __u32 size;
+ __u32 padding;
};
struct fuse_lk_in {
- uint64_t fh;
- uint64_t owner;
+ __u64 fh;
+ __u64 owner;
struct fuse_file_lock lk;
- uint32_t lk_flags;
- uint32_t padding;
+ __u32 lk_flags;
+ __u32 padding;
};
struct fuse_lk_out {
@@ -573,140 +569,140 @@ struct fuse_lk_out {
};
struct fuse_access_in {
- uint32_t mask;
- uint32_t padding;
+ __u32 mask;
+ __u32 padding;
};
struct fuse_init_in {
- uint32_t major;
- uint32_t minor;
- uint32_t max_readahead;
- uint32_t flags;
+ __u32 major;
+ __u32 minor;
+ __u32 max_readahead;
+ __u32 flags;
};
#define FUSE_COMPAT_INIT_OUT_SIZE 8
#define FUSE_COMPAT_22_INIT_OUT_SIZE 24
struct fuse_init_out {
- uint32_t major;
- uint32_t minor;
- uint32_t max_readahead;
- uint32_t flags;
- uint16_t max_background;
- uint16_t congestion_threshold;
- uint32_t max_write;
- uint32_t time_gran;
- uint32_t unused[9];
+ __u32 major;
+ __u32 minor;
+ __u32 max_readahead;
+ __u32 flags;
+ __u16 max_background;
+ __u16 congestion_threshold;
+ __u32 max_write;
+ __u32 time_gran;
+ __u32 unused[9];
};
#define CUSE_INIT_INFO_MAX 4096
struct cuse_init_in {
- uint32_t major;
- uint32_t minor;
- uint32_t unused;
- uint32_t flags;
+ __u32 major;
+ __u32 minor;
+ __u32 unused;
+ __u32 flags;
};
struct cuse_init_out {
- uint32_t major;
- uint32_t minor;
- uint32_t unused;
- uint32_t flags;
- uint32_t max_read;
- uint32_t max_write;
- uint32_t dev_major; /* chardev major */
- uint32_t dev_minor; /* chardev minor */
- uint32_t spare[10];
+ __u32 major;
+ __u32 minor;
+ __u32 unused;
+ __u32 flags;
+ __u32 max_read;
+ __u32 max_write;
+ __u32 dev_major; /* chardev major */
+ __u32 dev_minor; /* chardev minor */
+ __u32 spare[10];
};
struct fuse_interrupt_in {
- uint64_t unique;
+ __u64 unique;
};
struct fuse_bmap_in {
- uint64_t block;
- uint32_t blocksize;
- uint32_t padding;
+ __u64 block;
+ __u32 blocksize;
+ __u32 padding;
};
struct fuse_bmap_out {
- uint64_t block;
+ __u64 block;
};
struct fuse_ioctl_in {
- uint64_t fh;
- uint32_t flags;
- uint32_t cmd;
- uint64_t arg;
- uint32_t in_size;
- uint32_t out_size;
+ __u64 fh;
+ __u32 flags;
+ __u32 cmd;
+ __u64 arg;
+ __u32 in_size;
+ __u32 out_size;
};
struct fuse_ioctl_iovec {
- uint64_t base;
- uint64_t len;
+ __u64 base;
+ __u64 len;
};
struct fuse_ioctl_out {
- int32_t result;
- uint32_t flags;
- uint32_t in_iovs;
- uint32_t out_iovs;
+ __s32 result;
+ __u32 flags;
+ __u32 in_iovs;
+ __u32 out_iovs;
};
struct fuse_poll_in {
- uint64_t fh;
- uint64_t kh;
- uint32_t flags;
- uint32_t events;
+ __u64 fh;
+ __u64 kh;
+ __u32 flags;
+ __u32 events;
};
struct fuse_poll_out {
- uint32_t revents;
- uint32_t padding;
+ __u32 revents;
+ __u32 padding;
};
struct fuse_notify_poll_wakeup_out {
- uint64_t kh;
+ __u64 kh;
};
struct fuse_fallocate_in {
- uint64_t fh;
- uint64_t offset;
- uint64_t length;
- uint32_t mode;
- uint32_t padding;
+ __u64 fh;
+ __u64 offset;
+ __u64 length;
+ __u32 mode;
+ __u32 padding;
};
struct fuse_in_header {
- uint32_t len;
- uint32_t opcode;
- uint64_t unique;
- uint64_t nodeid;
- uint32_t uid;
- uint32_t gid;
- uint32_t pid;
- uint32_t padding;
+ __u32 len;
+ __u32 opcode;
+ __u64 unique;
+ __u64 nodeid;
+ __u32 uid;
+ __u32 gid;
+ __u32 pid;
+ __u32 padding;
};
struct fuse_out_header {
- uint32_t len;
- int32_t error;
- uint64_t unique;
+ __u32 len;
+ __s32 error;
+ __u64 unique;
};
struct fuse_dirent {
- uint64_t ino;
- uint64_t off;
- uint32_t namelen;
- uint32_t type;
+ __u64 ino;
+ __u64 off;
+ __u32 namelen;
+ __u32 type;
char name[];
};
#define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
#define FUSE_DIRENT_ALIGN(x) \
- (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
+ (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1))
#define FUSE_DIRENT_SIZE(d) \
FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
@@ -721,61 +717,61 @@ struct fuse_direntplus {
FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen)
struct fuse_notify_inval_inode_out {
- uint64_t ino;
- int64_t off;
- int64_t len;
+ __u64 ino;
+ __s64 off;
+ __s64 len;
};
struct fuse_notify_inval_entry_out {
- uint64_t parent;
- uint32_t namelen;
- uint32_t padding;
+ __u64 parent;
+ __u32 namelen;
+ __u32 padding;
};
struct fuse_notify_delete_out {
- uint64_t parent;
- uint64_t child;
- uint32_t namelen;
- uint32_t padding;
+ __u64 parent;
+ __u64 child;
+ __u32 namelen;
+ __u32 padding;
};
struct fuse_notify_store_out {
- uint64_t nodeid;
- uint64_t offset;
- uint32_t size;
- uint32_t padding;
+ __u64 nodeid;
+ __u64 offset;
+ __u32 size;
+ __u32 padding;
};
struct fuse_notify_retrieve_out {
- uint64_t notify_unique;
- uint64_t nodeid;
- uint64_t offset;
- uint32_t size;
- uint32_t padding;
+ __u64 notify_unique;
+ __u64 nodeid;
+ __u64 offset;
+ __u32 size;
+ __u32 padding;
};
/* Matches the size of fuse_write_in */
struct fuse_notify_retrieve_in {
- uint64_t dummy1;
- uint64_t offset;
- uint32_t size;
- uint32_t dummy2;
- uint64_t dummy3;
- uint64_t dummy4;
+ __u64 dummy1;
+ __u64 offset;
+ __u32 size;
+ __u32 dummy2;
+ __u64 dummy3;
+ __u64 dummy4;
};
/* Device ioctls: */
-#define FUSE_DEV_IOC_CLONE _IOR(229, 0, uint32_t)
+#define FUSE_DEV_IOC_CLONE _IOR(229, 0, __u32)
struct fuse_lseek_in {
- uint64_t fh;
- uint64_t offset;
- uint32_t whence;
- uint32_t padding;
+ __u64 fh;
+ __u64 offset;
+ __u32 whence;
+ __u32 padding;
};
struct fuse_lseek_out {
- uint64_t offset;
+ __u64 offset;
};
#endif /* _LINUX_FUSE_H */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 51/72] include/linux/ipmi-fru.h: use linux/types.h instead of stdint.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (49 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 50/72] include/uapi/linux/fuse.h: use linux/types.h also in userspace Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 52/72] include/linux/sdb.h: use linux/types.h types " Mikko Rapeli
` (20 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Corey Minyard, Alessandro Rubini, openipmi-developer
Kernel headers should use linux/types.h types.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/linux/ipmi-fru.h | 31 +++++++++++++++----------------
1 file changed, 15 insertions(+), 16 deletions(-)
diff --git a/include/linux/ipmi-fru.h b/include/linux/ipmi-fru.h
index 4d3a763..ceecf1f 100644
--- a/include/linux/ipmi-fru.h
+++ b/include/linux/ipmi-fru.h
@@ -9,11 +9,10 @@
*/
#ifndef __LINUX_IPMI_FRU_H__
#define __LINUX_IPMI_FRU_H__
-#ifdef __KERNEL__
# include <linux/types.h>
+#ifdef __KERNEL__
# include <linux/string.h>
#else
-# include <stdint.h>
# include <string.h>
#endif
@@ -24,14 +23,14 @@
/* chapter 8, page 5 */
struct fru_common_header {
- uint8_t format; /* 0x01 */
- uint8_t internal_use_off; /* multiple of 8 bytes */
- uint8_t chassis_info_off; /* multiple of 8 bytes */
- uint8_t board_area_off; /* multiple of 8 bytes */
- uint8_t product_area_off; /* multiple of 8 bytes */
- uint8_t multirecord_off; /* multiple of 8 bytes */
- uint8_t pad; /* must be 0 */
- uint8_t checksum; /* sum modulo 256 must be 0 */
+ __u8 format; /* 0x01 */
+ __u8 internal_use_off; /* multiple of 8 bytes */
+ __u8 chassis_info_off; /* multiple of 8 bytes */
+ __u8 board_area_off; /* multiple of 8 bytes */
+ __u8 product_area_off; /* multiple of 8 bytes */
+ __u8 multirecord_off; /* multiple of 8 bytes */
+ __u8 pad; /* must be 0 */
+ __u8 checksum; /* sum modulo 256 must be 0 */
};
/* chapter 9, page 5 -- internal_use: not used by us */
@@ -40,16 +39,16 @@ struct fru_common_header {
/* chapter 13, page 9 -- used by board_info_area below */
struct fru_type_length {
- uint8_t type_length;
- uint8_t data[0];
+ __u8 type_length;
+ __u8 data[0];
};
/* chapter 11, page 7 */
struct fru_board_info_area {
- uint8_t format; /* 0x01 */
- uint8_t area_len; /* multiple of 8 bytes */
- uint8_t language; /* I hope it's 0 */
- uint8_t mfg_date[3]; /* LSB, minutes since 1996-01-01 */
+ __u8 format; /* 0x01 */
+ __u8 area_len; /* multiple of 8 bytes */
+ __u8 language; /* I hope it's 0 */
+ __u8 mfg_date[3]; /* LSB, minutes since 1996-01-01 */
struct fru_type_length tl[0]; /* type-length stuff follows */
/*
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 52/72] include/linux/sdb.h: use linux/types.h types instead of stdint.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (50 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 51/72] include/linux/ipmi-fru.h: use linux/types.h instead of stdint.h Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 53/72] include/linux/xz.h: " Mikko Rapeli
` (19 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Kernel headers should use linux/types.h types.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/linux/sdb.h | 62 +++++++++++++++++++++++++----------------------------
1 file changed, 29 insertions(+), 33 deletions(-)
diff --git a/include/linux/sdb.h b/include/linux/sdb.h
index fbb76a4..e9ff976 100644
--- a/include/linux/sdb.h
+++ b/include/linux/sdb.h
@@ -3,11 +3,7 @@
*/
#ifndef __SDB_H__
#define __SDB_H__
-#ifdef __KERNEL__
#include <linux/types.h>
-#else
-#include <stdint.h>
-#endif
/*
* All structures are 64 bytes long and are expected
@@ -25,12 +21,12 @@
* and not terminated with a 0 byte.
*/
struct sdb_product {
- uint64_t vendor_id; /* 0x18..0x1f */
- uint32_t device_id; /* 0x20..0x23 */
- uint32_t version; /* 0x24..0x27 */
- uint32_t date; /* 0x28..0x2b */
- uint8_t name[19]; /* 0x2c..0x3e */
- uint8_t record_type; /* 0x3f */
+ __u64 vendor_id; /* 0x18..0x1f */
+ __u32 device_id; /* 0x20..0x23 */
+ __u32 version; /* 0x24..0x27 */
+ __u32 date; /* 0x28..0x2b */
+ __u8 name[19]; /* 0x2c..0x3e */
+ __u8 record_type; /* 0x3f */
};
/*
@@ -40,8 +36,8 @@ struct sdb_product {
* (for example 0x100000 - 0x10ffff)
*/
struct sdb_component {
- uint64_t addr_first; /* 0x08..0x0f */
- uint64_t addr_last; /* 0x10..0x17 */
+ __u64 addr_first; /* 0x08..0x0f */
+ __u64 addr_last; /* 0x10..0x17 */
struct sdb_product product; /* 0x18..0x3f */
};
@@ -63,10 +59,10 @@ enum sdb_record_type {
*/
#define SDB_MAGIC 0x5344422d /* "SDB-" */
struct sdb_interconnect {
- uint32_t sdb_magic; /* 0x00-0x03 */
- uint16_t sdb_records; /* 0x04-0x05 */
- uint8_t sdb_version; /* 0x06 */
- uint8_t sdb_bus_type; /* 0x07 */
+ __u32 sdb_magic; /* 0x00-0x03 */
+ __u16 sdb_records; /* 0x04-0x05 */
+ __u8 sdb_version; /* 0x06 */
+ __u8 sdb_bus_type; /* 0x07 */
struct sdb_component sdb_component; /* 0x08-0x3f */
};
@@ -77,10 +73,10 @@ struct sdb_interconnect {
* bus-specific bits are defined by each bus (see below)
*/
struct sdb_device {
- uint16_t abi_class; /* 0x00-0x01 */
- uint8_t abi_ver_major; /* 0x02 */
- uint8_t abi_ver_minor; /* 0x03 */
- uint32_t bus_specific; /* 0x04-0x07 */
+ __u16 abi_class; /* 0x00-0x01 */
+ __u8 abi_ver_major; /* 0x02 */
+ __u8 abi_ver_minor; /* 0x03 */
+ __u32 bus_specific; /* 0x04-0x07 */
struct sdb_component sdb_component; /* 0x08-0x3f */
};
@@ -89,7 +85,7 @@ struct sdb_device {
* child is the address of the nested SDB table
*/
struct sdb_bridge {
- uint64_t sdb_child; /* 0x00-0x07 */
+ __u64 sdb_child; /* 0x00-0x07 */
struct sdb_component sdb_component; /* 0x08-0x3f */
};
@@ -100,7 +96,7 @@ struct sdb_bridge {
* just provide product information for an aggregate device
*/
struct sdb_integration {
- uint8_t reserved[24]; /* 0x00-0x17 */
+ __u8 reserved[24]; /* 0x00-0x17 */
struct sdb_product product; /* 0x08-0x3f */
};
@@ -109,8 +105,8 @@ struct sdb_integration {
* again, an informative field that software can ignore
*/
struct sdb_repo_url {
- uint8_t repo_url[63]; /* 0x00-0x3e */
- uint8_t record_type; /* 0x3f */
+ __u8 repo_url[63]; /* 0x00-0x3e */
+ __u8 record_type; /* 0x3f */
};
/* Type 0x82: Synthesis tool information
@@ -118,13 +114,13 @@ struct sdb_repo_url {
* this informative record
*/
struct sdb_synthesis {
- uint8_t syn_name[16]; /* 0x00-0x0f */
- uint8_t commit_id[16]; /* 0x10-0x1f */
- uint8_t tool_name[8]; /* 0x20-0x27 */
- uint32_t tool_version; /* 0x28-0x2b */
- uint32_t date; /* 0x2c-0x2f */
- uint8_t user_name[15]; /* 0x30-0x3e */
- uint8_t record_type; /* 0x3f */
+ __u8 syn_name[16]; /* 0x00-0x0f */
+ __u8 commit_id[16]; /* 0x10-0x1f */
+ __u8 tool_name[8]; /* 0x20-0x27 */
+ __u32 tool_version; /* 0x28-0x2b */
+ __u32 date; /* 0x2c-0x2f */
+ __u8 user_name[15]; /* 0x30-0x3e */
+ __u8 record_type; /* 0x3f */
};
/* Type 0xff: empty
@@ -135,8 +131,8 @@ struct sdb_synthesis {
* It can also be used to pad a table to a desired length.
*/
struct sdb_empty {
- uint8_t reserved[63]; /* 0x00-0x3e */
- uint8_t record_type; /* 0x3f */
+ __u8 reserved[63]; /* 0x00-0x3e */
+ __u8 record_type; /* 0x3f */
};
/* The type of bus, for bus-specific flags */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 53/72] include/linux/xz.h: use linux/types.h types instead of stdint.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (51 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 52/72] include/linux/sdb.h: use linux/types.h types " Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 54/72] include/uapi/xen/privcmd.h: fix compilation in userspace Mikko Rapeli
` (18 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Kernel headers should use linux/types.h types.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/linux/xz.h | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/include/linux/xz.h b/include/linux/xz.h
index 64cffa6..7686511 100644
--- a/include/linux/xz.h
+++ b/include/linux/xz.h
@@ -11,12 +11,11 @@
#ifndef XZ_H
#define XZ_H
+# include <linux/types.h>
#ifdef __KERNEL__
# include <linux/stddef.h>
-# include <linux/types.h>
#else
# include <stddef.h>
-# include <stdint.h>
#endif
/* In Linux, this is used to make extern functions static when needed. */
@@ -134,11 +133,11 @@ enum xz_ret {
* the variables in_pos and out_pos are modified by the XZ code.
*/
struct xz_buf {
- const uint8_t *in;
+ const __u8 *in;
size_t in_pos;
size_t in_size;
- uint8_t *out;
+ __u8 *out;
size_t out_pos;
size_t out_size;
};
@@ -191,7 +190,7 @@ struct xz_dec;
* ready to be used with xz_dec_run(). If memory allocation fails,
* xz_dec_init() returns NULL.
*/
-XZ_EXTERN struct xz_dec *xz_dec_init(enum xz_mode mode, uint32_t dict_max);
+XZ_EXTERN struct xz_dec *xz_dec_init(enum xz_mode mode, __u32 dict_max);
/**
* xz_dec_run() - Run the XZ decoder
@@ -259,6 +258,6 @@ XZ_EXTERN void xz_crc32_init(void);
* calculation, the third argument must be zero. To continue the calculation,
* the previously returned value is passed as the third argument.
*/
-XZ_EXTERN uint32_t xz_crc32(const uint8_t *buf, size_t size, uint32_t crc);
+XZ_EXTERN __u32 xz_crc32(const __u8 *buf, size_t size, __u32 crc);
#endif
#endif
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 54/72] include/uapi/xen/privcmd.h: fix compilation in userspace
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (52 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 53/72] include/linux/xz.h: " Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-23 10:02 ` Russell King - ARM Linux
2016-08-22 18:33 ` [PATCH v05 55/72] include/uapi/xen/gntdev.h: include xen/privcmd.h and define grant_ref_t Mikko Rapeli
` (17 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, David Vrabel, Stefano Stabellini, Russell King,
Boris Ostrovsky, Juergen Gross, xen-devel, linux-arm-kernel
xen/interface/xen.h is not exported from kernel headers so remove the
dependency and provide needed defines for domid_t and xen_pfn_t if they
are not already defined by some other e.g. Xen specific headers.
Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
<5569F9C9.8000607@citrix.com>.
The ifdef for ARM is ugly but did not find better solutions for it.
Fixes userspace compilation error:
xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Cc: David Vrabel <david.vrabel@citrix.com>
---
arch/arm/include/asm/xen/interface.h | 2 +-
include/uapi/xen/privcmd.h | 12 +++++++++++-
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
index 75d5968..6898ee1 100644
--- a/arch/arm/include/asm/xen/interface.h
+++ b/arch/arm/include/asm/xen/interface.h
@@ -38,7 +38,7 @@
* fine since it simply wouldn't be able to create any sure pfns in
* the first place.
*/
-typedef uint64_t xen_pfn_t;
+typedef __u64 xen_pfn_t;
#define PRI_xen_pfn "llx"
typedef uint64_t xen_ulong_t;
#define PRI_xen_ulong "llx"
diff --git a/include/uapi/xen/privcmd.h b/include/uapi/xen/privcmd.h
index 7ddeeda..16c11f9 100644
--- a/include/uapi/xen/privcmd.h
+++ b/include/uapi/xen/privcmd.h
@@ -35,7 +35,17 @@
#include <linux/types.h>
#include <linux/compiler.h>
-#include <xen/interface/xen.h>
+
+/* Defined by include/xen/interface/xen.h, but it is not part of Linux uapi */
+#ifndef __XEN_PUBLIC_XEN_H__
+typedef __u16 domid_t;
+
+#if (defined __ARMEL__ || defined __ARMEB__)
+typedef __u64 xen_pfn_t;
+#else
+typedef unsigned long xen_pfn_t;
+#endif /* (defined __ARMEL__ || defined __ARMEB__) */
+#endif /* __XEN_PUBLIC_XEN_H__ */
struct privcmd_hypercall {
__u64 op;
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 55/72] include/uapi/xen/gntdev.h: include xen/privcmd.h and define grant_ref_t
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (53 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 54/72] include/uapi/xen/privcmd.h: fix compilation in userspace Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 56/72] include/uapi/xen/evtchn.h: include xen/privcmd.h Mikko Rapeli
` (16 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Boris Ostrovsky, David Vrabel, Juergen Gross, xen-devel
Both are needed to compile <xen/gntdev.h> wihtout compiler warnings
in userspace. Fixes these userspace compile errors:
xen/gntdev.h:151:4: error: unknown type name ‘grant_ref_t’
grant_ref_t ref;
^
xen/gntdev.h:153:4: error: unknown type name ‘domid_t’
domid_t domid;
^
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/xen/gntdev.h | 6 ++++++
include/xen/interface/grant_table.h | 6 +-----
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/include/uapi/xen/gntdev.h b/include/uapi/xen/gntdev.h
index d066197..f208706 100644
--- a/include/uapi/xen/gntdev.h
+++ b/include/uapi/xen/gntdev.h
@@ -34,6 +34,12 @@
#define __LINUX_PUBLIC_GNTDEV_H__
#include <linux/types.h>
+#include <xen/privcmd.h>
+
+/*
+ * Reference to a grant entry in a specified domain's grant table.
+ */
+typedef __u32 grant_ref_t;
struct ioctl_gntdev_grant_ref {
/* The domain ID of the grant to be mapped. */
diff --git a/include/xen/interface/grant_table.h b/include/xen/interface/grant_table.h
index 56806bc..7e064d6 100644
--- a/include/xen/interface/grant_table.h
+++ b/include/xen/interface/grant_table.h
@@ -29,6 +29,7 @@
#define __XEN_PUBLIC_GRANT_TABLE_H__
#include <xen/interface/xen.h>
+#include <uapi/xen/gntdev.h> /* for grant_ref_t */
/***********************************
* GRANT TABLE REPRESENTATION
@@ -85,11 +86,6 @@
*/
/*
- * Reference to a grant entry in a specified domain's grant table.
- */
-typedef uint32_t grant_ref_t;
-
-/*
* A grant table comprises a packed array of grant entries in one or more
* page frames shared between Xen and a guest.
* [XEN]: This field is written by Xen and read by the sharing guest.
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 56/72] include/uapi/xen/evtchn.h: include xen/privcmd.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (54 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 55/72] include/uapi/xen/gntdev.h: include xen/privcmd.h and define grant_ref_t Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 57/72] coda_psdev.h: move upc_req definition from uapi to kernel side headers Mikko Rapeli
` (15 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Boris Ostrovsky, David Vrabel, Juergen Gross, xen-devel
It has definition of domid_t. Fixes userspace compiler error when
xen/privcmd.h is compiled alone:
xen/evtchn.h:100:2: error: unknown type name ‘domid_t’
domid_t domid;
^~~~~~~
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/xen/evtchn.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/xen/evtchn.h b/include/uapi/xen/evtchn.h
index cb4aa4b..81df4b3 100644
--- a/include/uapi/xen/evtchn.h
+++ b/include/uapi/xen/evtchn.h
@@ -33,6 +33,8 @@
#ifndef __LINUX_PUBLIC_EVTCHN_H__
#define __LINUX_PUBLIC_EVTCHN_H__
+#include <xen/privcmd.h>
+
/*
* Bind a fresh port to VIRQ @virq.
* Return allocated port.
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 57/72] coda_psdev.h: move upc_req definition from uapi to kernel side headers
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (55 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 56/72] include/uapi/xen/evtchn.h: include xen/privcmd.h Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 58/72] include/uapi/linux/elfcore.h: remove non-compiling userspace parts Mikko Rapeli
` (14 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Jan Harkes, coda, codalist
Only users of upc_req in kernel side fs/coda/psdev.c and fs/coda/upcall.c
already include linux/coda_psdev.h.
Suggested by Jan Harkes <jaharkes@cs.cmu.edu> on lkml message
<20150531111913.GA23377@cs.cmu.edu>.
Fixes these include/uapi/linux/coda_psdev.h compilation errors in userspace:
./linux/coda_psdev.h:12:19: error: field ‘uc_chain’ has incomplete type
struct list_head uc_chain;
^
./linux/coda_psdev.h:13:2: error: unknown type name ‘caddr_t’
caddr_t uc_data;
^
./linux/coda_psdev.h:14:2: error: unknown type name ‘u_short’
u_short uc_flags;
^
./linux/coda_psdev.h:15:2: error: unknown type name ‘u_short’
u_short uc_inSize; /* Size is at most 5000 bytes */
^
./linux/coda_psdev.h:16:2: error: unknown type name ‘u_short’
u_short uc_outSize;
^
./linux/coda_psdev.h:17:2: error: unknown type name ‘u_short’
u_short uc_opcode; /* copied from data to save lookup */
^
./linux/coda_psdev.h:19:2: error: unknown type name ‘wait_queue_head_t’
wait_queue_head_t uc_sleep; /* process' wait queue */
^
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/linux/coda_psdev.h | 11 +++++++++++
include/uapi/linux/coda_psdev.h | 13 -------------
2 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/include/linux/coda_psdev.h b/include/linux/coda_psdev.h
index 5b8721e..fe1466d 100644
--- a/include/linux/coda_psdev.h
+++ b/include/linux/coda_psdev.h
@@ -19,6 +19,17 @@ struct venus_comm {
struct mutex vc_mutex;
};
+/* messages between coda filesystem in kernel and Venus */
+struct upc_req {
+ struct list_head uc_chain;
+ caddr_t uc_data;
+ u_short uc_flags;
+ u_short uc_inSize; /* Size is at most 5000 bytes */
+ u_short uc_outSize;
+ u_short uc_opcode; /* copied from data to save lookup */
+ int uc_unique;
+ wait_queue_head_t uc_sleep; /* process' wait queue */
+};
static inline struct venus_comm *coda_vcp(struct super_block *sb)
{
diff --git a/include/uapi/linux/coda_psdev.h b/include/uapi/linux/coda_psdev.h
index 79d0598..e2c44d2 100644
--- a/include/uapi/linux/coda_psdev.h
+++ b/include/uapi/linux/coda_psdev.h
@@ -6,19 +6,6 @@
#define CODA_PSDEV_MAJOR 67
#define MAX_CODADEVS 5 /* how many do we allow */
-
-/* messages between coda filesystem in kernel and Venus */
-struct upc_req {
- struct list_head uc_chain;
- caddr_t uc_data;
- u_short uc_flags;
- u_short uc_inSize; /* Size is at most 5000 bytes */
- u_short uc_outSize;
- u_short uc_opcode; /* copied from data to save lookup */
- int uc_unique;
- wait_queue_head_t uc_sleep; /* process' wait queue */
-};
-
#define CODA_REQ_ASYNC 0x1
#define CODA_REQ_READ 0x2
#define CODA_REQ_WRITE 0x4
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 58/72] include/uapi/linux/elfcore.h: remove non-compiling userspace parts
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (56 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 57/72] coda_psdev.h: move upc_req definition from uapi to kernel side headers Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 59/72] include/uapi/linux/errqueue.h: include time.h in userspace Mikko Rapeli
` (13 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
Remove typedef elf_greg_t greg_t and friends from userspace.
Remove struct elf_prstatus completely from userspace.
elfcore.h as such does not compile in userspace. All userspace users
of <linux/elfcore.h> like gcc/gdb and linux-tools contain their own modified
versions of the file. With these changes the file compiles but is generally
not usable for things like core dump parsing but luckily userspace users
already know this and have their own modified version of the needed
definitions and headers. But at least this compiles now.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/elfcore.h | 21 +++++++--------------
1 file changed, 7 insertions(+), 14 deletions(-)
diff --git a/include/uapi/linux/elfcore.h b/include/uapi/linux/elfcore.h
index 569737c..6c23066 100644
--- a/include/uapi/linux/elfcore.h
+++ b/include/uapi/linux/elfcore.h
@@ -15,15 +15,7 @@ struct elf_siginfo
int si_errno; /* errno */
};
-
-#ifndef __KERNEL__
-typedef elf_greg_t greg_t;
-typedef elf_gregset_t gregset_t;
-typedef elf_fpregset_t fpregset_t;
-typedef elf_fpxregset_t fpxregset_t;
-#define NGREG ELF_NGREG
-#endif
-
+#ifdef __KERNEL__
/*
* Definitions to generate Intel SVR4-like core files.
* These mostly have the same names as the SVR4 types with "elf_"
@@ -48,10 +40,10 @@ struct elf_prstatus
struct sigaltstack pr_altstack; /* Alternate stack info */
struct sigaction pr_action; /* Signal action for current sig */
#endif
- pid_t pr_pid;
- pid_t pr_ppid;
- pid_t pr_pgrp;
- pid_t pr_sid;
+ __kernel_pid_t pr_pid;
+ __kernel_pid_t pr_ppid;
+ __kernel_pid_t pr_pgrp;
+ __kernel_pid_t pr_sid;
struct timeval pr_utime; /* User time */
struct timeval pr_stime; /* System time */
struct timeval pr_cutime; /* Cumulative user time */
@@ -72,6 +64,7 @@ struct elf_prstatus
#endif
int pr_fpvalid; /* True if math co-processor being used. */
};
+#endif /* __KERNEL__ */
#define ELF_PRARGSZ (80) /* Number of chars for args */
@@ -84,7 +77,7 @@ struct elf_prpsinfo
unsigned long pr_flag; /* flags */
__kernel_uid_t pr_uid;
__kernel_gid_t pr_gid;
- pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ __kernel_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
/* Lots missing */
char pr_fname[16]; /* filename of executable */
char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 59/72] include/uapi/linux/errqueue.h: include time.h in userspace
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (57 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 58/72] include/uapi/linux/elfcore.h: remove non-compiling userspace parts Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 60/72] arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
` (12 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli
linux/time.h conflicts with userspace header time.h. Try to be compatible
for kernel and userspace.
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/errqueue.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/include/uapi/linux/errqueue.h b/include/uapi/linux/errqueue.h
index 6b1cdc6..b310b2c 100644
--- a/include/uapi/linux/errqueue.h
+++ b/include/uapi/linux/errqueue.h
@@ -2,7 +2,12 @@
#define _UAPI_LINUX_ERRQUEUE_H
#include <linux/types.h>
+
+#ifdef __KERNEL__
#include <linux/time.h>
+#else
+#include <time.h>
+#endif /* __KERNEL__ */
struct sock_extended_err {
__u32 ee_errno;
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 60/72] arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (58 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 59/72] include/uapi/linux/errqueue.h: include time.h in userspace Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-24 15:02 ` Arnd Bergmann
2016-08-22 18:33 ` [PATCH v05 61/72] include/uapi/rdma/rdma_user_rxe.h: include in.h and in6.h Mikko Rapeli
` (11 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Russell King, linux-arm-kernel
Fixes uapi header compilation error from userspace on ARCH=arm:
asm/signal.h:112:2: error: unknown type name ‘size_t’
size_t ss_size;
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
arch/arm/include/uapi/asm/signal.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/include/uapi/asm/signal.h b/arch/arm/include/uapi/asm/signal.h
index 33073bd..859f2de 100644
--- a/arch/arm/include/uapi/asm/signal.h
+++ b/arch/arm/include/uapi/asm/signal.h
@@ -113,7 +113,7 @@ struct sigaction {
typedef struct sigaltstack {
void __user *ss_sp;
int ss_flags;
- size_t ss_size;
+ __kernel_size_t ss_size;
} stack_t;
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 61/72] include/uapi/rdma/rdma_user_rxe.h: include in.h and in6.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (59 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 60/72] arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-23 15:03 ` Doug Ledford
2016-08-25 14:00 ` Moni Shoua
2016-08-22 18:33 ` [PATCH v05 62/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h Mikko Rapeli
` (10 subsequent siblings)
71 siblings, 2 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Moni Shoua, Doug Ledford, Sean Hefty,
Hal Rosenstock, linux-rdma
Fixes these userspace compilation errors when rdma_user_rxe.h is compiled
alone:
rdma/rdma_user_rxe.h:59:20: error: field ‘_sockaddr’ has incomplete type
struct sockaddr _sockaddr;
^~~~~~~~~
rdma/rdma_user_rxe.h:60:22: error: field ‘_sockaddr_in’ has incomplete type
struct sockaddr_in _sockaddr_in;
^~~~~~~~~~~~
rdma/rdma_user_rxe.h:61:23: error: field ‘_sockaddr_in6’ has incomplete type
struct sockaddr_in6 _sockaddr_in6;
^~~~~~~~~~~~~
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/rdma/rdma_user_rxe.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/rdma/rdma_user_rxe.h b/include/uapi/rdma/rdma_user_rxe.h
index 1de99cf..ce6c929 100644
--- a/include/uapi/rdma/rdma_user_rxe.h
+++ b/include/uapi/rdma/rdma_user_rxe.h
@@ -34,6 +34,8 @@
#define RDMA_USER_RXE_H
#include <linux/types.h>
+#include <linux/in.h>
+#include <linux/in6.h>
union rxe_gid {
__u8 raw[16];
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 62/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (60 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 61/72] include/uapi/rdma/rdma_user_rxe.h: include in.h and in6.h Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 23:32 ` David Miller
2016-08-22 18:33 ` [PATCH v05 63/72] include/uapi/sound/Kbuild: remove sound/asoc.h from userspace Mikko Rapeli
` (9 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Pravin Shelar, netdev, dev
Kernel uapi header are supposed to use them. Fixes userspace compile error:
linux/openvswitch.h:583:2: error: unknown type name ‘uint32_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/openvswitch.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
index 645499a..54c3b4f 100644
--- a/include/uapi/linux/openvswitch.h
+++ b/include/uapi/linux/openvswitch.h
@@ -583,7 +583,7 @@ enum ovs_userspace_attr {
#define OVS_USERSPACE_ATTR_MAX (__OVS_USERSPACE_ATTR_MAX - 1)
struct ovs_action_trunc {
- uint32_t max_len; /* Max packet size in bytes. */
+ __u32 max_len; /* Max packet size in bytes. */
};
/**
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 63/72] include/uapi/sound/Kbuild: remove sound/asoc.h from userspace
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (61 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 62/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 64/72] include/uapi/linux/ipx.h: fix conflicting defitions with glibc netipx/ipx.h Mikko Rapeli
` (8 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, Jaroslav Kysela, Takashi Iwai, alsa-devel
Based on git commit messages and the #error macro messages it should not be
used in userspace. Fixes userspace compile errors:
sound/asoc.h:21:2: error: #error This API is an early revision and not enabled
in the current
#error This API is an early revision and not enabled in the current
^~~~~
sound/asoc.h:22:2: error: #error kernel release, it will be enabled in a futur
e kernel version
#error kernel release, it will be enabled in a future kernel version
^~~~~
sound/asoc.h:23:2: error: #error with incompatible changes to what is here.
#error with incompatible changes to what is here.
^~~~~
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/sound/Kbuild | 1 -
1 file changed, 1 deletion(-)
diff --git a/include/uapi/sound/Kbuild b/include/uapi/sound/Kbuild
index 691984c..6d8b203 100644
--- a/include/uapi/sound/Kbuild
+++ b/include/uapi/sound/Kbuild
@@ -1,6 +1,5 @@
# UAPI Header export list
header-y += asequencer.h
-header-y += asoc.h
header-y += asound.h
header-y += asound_fm.h
header-y += compress_offload.h
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 64/72] include/uapi/linux/ipx.h: fix conflicting defitions with glibc netipx/ipx.h
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (62 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 63/72] include/uapi/sound/Kbuild: remove sound/asoc.h from userspace Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 23:33 ` David Miller
2016-08-22 18:33 ` [PATCH v05 65/72] uapi fcntl.h: glibc fcntl.h header file compatibility fixes Mikko Rapeli
` (7 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Arnaldo Carvalho de Melo, David S. Miller,
Nicolas Dichtel, netdev
Fixes these compiler warnings via libc-compat.h when glibc netipx/ipx.h is
included before linux/ipx.h:
./linux/ipx.h:9:8: error: redefinition of ‘struct sockaddr_ipx’
./linux/ipx.h:26:8: error: redefinition of ‘struct ipx_route_definition’
./linux/ipx.h:32:8: error: redefinition of ‘struct ipx_interface_definition’
./linux/ipx.h:49:8: error: redefinition of ‘struct ipx_config_data’
./linux/ipx.h:58:8: error: redefinition of ‘struct ipx_route_def’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/ipx.h | 13 ++++++++++++-
include/uapi/linux/libc-compat.h | 26 ++++++++++++++++++++++++++
2 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/ipx.h b/include/uapi/linux/ipx.h
index 3d48014..30f031d 100644
--- a/include/uapi/linux/ipx.h
+++ b/include/uapi/linux/ipx.h
@@ -1,11 +1,13 @@
#ifndef _IPX_H_
#define _IPX_H_
+#include <linux/libc-compat.h> /* for compatibility with glibc netipx/ipx.h */
#include <linux/types.h>
#include <linux/sockios.h>
#include <linux/socket.h>
#define IPX_NODE_LEN 6
#define IPX_MTU 576
+#if __UAPI_DEF_SOCKADDR_IPX
struct sockaddr_ipx {
__kernel_sa_family_t sipx_family;
__be16 sipx_port;
@@ -14,6 +16,7 @@ struct sockaddr_ipx {
__u8 sipx_type;
unsigned char sipx_zero; /* 16 byte fill */
};
+#endif /* __UAPI_DEF_SOCKADDR_IPX */
/*
* So we can fit the extra info for SIOCSIFADDR into the address nicely
@@ -23,12 +26,15 @@ struct sockaddr_ipx {
#define IPX_DLTITF 0
#define IPX_CRTITF 1
+#if __UAPI_DEF_IPX_ROUTE_DEFINITION
struct ipx_route_definition {
__be32 ipx_network;
__be32 ipx_router_network;
unsigned char ipx_router_node[IPX_NODE_LEN];
};
+#endif /* __UAPI_DEF_IPX_ROUTE_DEFINITION */
+#if __UAPI_DEF_IPX_INTERFACE_DEFINITION
struct ipx_interface_definition {
__be32 ipx_network;
unsigned char ipx_device[16];
@@ -45,16 +51,20 @@ struct ipx_interface_definition {
#define IPX_INTERNAL 2
unsigned char ipx_node[IPX_NODE_LEN];
};
-
+#endif /* __UAPI_DEF_IPX_INTERFACE_DEFINITION */
+
+#if __UAPI_DEF_IPX_CONFIG_DATA
struct ipx_config_data {
unsigned char ipxcfg_auto_select_primary;
unsigned char ipxcfg_auto_create_interfaces;
};
+#endif /* __UAPI_DEF_IPX_CONFIG_DATA */
/*
* OLD Route Definition for backward compatibility.
*/
+#if __UAPI_DEF_IPX_ROUTE_DEF
struct ipx_route_def {
__be32 ipx_network;
__be32 ipx_router_network;
@@ -67,6 +77,7 @@ struct ipx_route_def {
#define IPX_RT_BLUEBOOK 2
#define IPX_RT_ROUTED 1
};
+#endif /* __UAPI_DEF_IPX_ROUTE_DEF */
#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE)
#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE + 1)
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
index e4f048e..44b8a6b 100644
--- a/include/uapi/linux/libc-compat.h
+++ b/include/uapi/linux/libc-compat.h
@@ -139,6 +139,25 @@
#endif /* _NETINET_IN_H */
+/* Coordinate with glibc netipx/ipx.h header. */
+#if defined(__NETIPX_IPX_H)
+
+#define __UAPI_DEF_SOCKADDR_IPX 0
+#define __UAPI_DEF_IPX_ROUTE_DEFINITION 0
+#define __UAPI_DEF_IPX_INTERFACE_DEFINITION 0
+#define __UAPI_DEF_IPX_CONFIG_DATA 0
+#define __UAPI_DEF_IPX_ROUTE_DEF 0
+
+#else /* defined(__NETIPX_IPX_H) */
+
+#define __UAPI_DEF_SOCKADDR_IPX 1
+#define __UAPI_DEF_IPX_ROUTE_DEFINITION 1
+#define __UAPI_DEF_IPX_INTERFACE_DEFINITION 1
+#define __UAPI_DEF_IPX_CONFIG_DATA 1
+#define __UAPI_DEF_IPX_ROUTE_DEF 1
+
+#endif /* defined(__NETIPX_IPX_H) */
+
/* Definitions for xattr.h */
#if defined(_SYS_XATTR_H)
#define __UAPI_DEF_XATTR 0
@@ -179,6 +198,13 @@
#define __UAPI_DEF_IN6_PKTINFO 1
#define __UAPI_DEF_IP6_MTUINFO 1
+/* Definitions for ipx.h */
+#define __UAPI_DEF_SOCKADDR_IPX 1
+#define __UAPI_DEF_IPX_ROUTE_DEFINITION 1
+#define __UAPI_DEF_IPX_INTERFACE_DEFINITION 1
+#define __UAPI_DEF_IPX_CONFIG_DATA 1
+#define __UAPI_DEF_IPX_ROUTE_DEF 1
+
/* Definitions for xattr.h */
#define __UAPI_DEF_XATTR 1
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 65/72] uapi fcntl.h: glibc fcntl.h header file compatibility fixes
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (63 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 64/72] include/uapi/linux/ipx.h: fix conflicting defitions with glibc netipx/ipx.h Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 66/72] uapi icmp.h: glibc netinet/ip_icmp.h " Mikko Rapeli
` (6 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Arnd Bergmann, Jeff Layton, J. Bruce Fields,
David S. Miller, Nicolas Dichtel, linux-arch, linux-fsdevel
Fixes these userspace compile warnings and error when glibc fcntl.h is
included before linux/fcntl.h:
asm-generic/fcntl.h:18:0: warning: "O_ACCMODE" redefined
asm-generic/fcntl.h:19:0: warning: "O_RDONLY" redefined
asm-generic/fcntl.h:20:0: warning: "O_WRONLY" redefined
asm-generic/fcntl.h:21:0: warning: "O_RDWR" redefined
asm-generic/fcntl.h:195:8: error: redefinition of ‘struct flock’
linux/fcntl.h:16:0: warning: "F_DUPFD_CLOEXEC" redefined
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/fcntl.h | 6 ++++++
include/uapi/linux/fcntl.h | 3 +++
include/uapi/linux/libc-compat.h | 20 ++++++++++++++++++++
3 files changed, 29 insertions(+)
diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h
index e063eff..3b429ce 100644
--- a/include/uapi/asm-generic/fcntl.h
+++ b/include/uapi/asm-generic/fcntl.h
@@ -1,6 +1,7 @@
#ifndef _ASM_GENERIC_FCNTL_H
#define _ASM_GENERIC_FCNTL_H
+#include <linux/libc-compat.h>
#include <linux/types.h>
/*
@@ -15,10 +16,13 @@
* When introducing new O_* bits, please check its uniqueness in fcntl_init().
*/
+#if __UAPI_DEF_O_ACCMODE_RDONLY_WRONLY_RDWR
#define O_ACCMODE 00000003
#define O_RDONLY 00000000
#define O_WRONLY 00000001
#define O_RDWR 00000002
+#endif /* __UAPI_DEF_O_ACCMODE_RDONLY_WRONLY_RDWR */
+
#ifndef O_CREAT
#define O_CREAT 00000100 /* not fcntl */
#endif
@@ -192,6 +196,7 @@ struct f_owner_ex {
#define __ARCH_FLOCK_PAD
#endif
+#if __UAPI_DEF_FLOCK
struct flock {
short l_type;
short l_whence;
@@ -200,6 +205,7 @@ struct flock {
__kernel_pid_t l_pid;
__ARCH_FLOCK_PAD
};
+#endif /* __UAPI_DEF_FLOCK */
#endif
#ifndef HAVE_ARCH_STRUCT_FLOCK64
diff --git a/include/uapi/linux/fcntl.h b/include/uapi/linux/fcntl.h
index beed138..279bcfb 100644
--- a/include/uapi/linux/fcntl.h
+++ b/include/uapi/linux/fcntl.h
@@ -1,6 +1,7 @@
#ifndef _UAPI_LINUX_FCNTL_H
#define _UAPI_LINUX_FCNTL_H
+#include <linux/libc-compat.h>
#include <asm/fcntl.h>
#define F_SETLEASE (F_LINUX_SPECIFIC_BASE + 0)
@@ -13,7 +14,9 @@
#define F_CANCELLK (F_LINUX_SPECIFIC_BASE + 5)
/* Create a file descriptor with FD_CLOEXEC set. */
+#if __UAPI_DEF_F_DUPFD_CLOEXEC
#define F_DUPFD_CLOEXEC (F_LINUX_SPECIFIC_BASE + 6)
+#endif /* __UAPI_DEF_F_DUPFD_CLOEXEC */
/*
* Request nofications on a directory.
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
index 44b8a6b..40190a4 100644
--- a/include/uapi/linux/libc-compat.h
+++ b/include/uapi/linux/libc-compat.h
@@ -51,6 +51,21 @@
/* We have included glibc headers... */
#if defined(__GLIBC__)
+/* Coordinate with glibc fcntl.h header. */
+#if defined(_FCNTL_H)
+
+#define __UAPI_DEF_FLOCK 0
+#define __UAPI_DEF_F_DUPFD_CLOEXEC 0
+#define __UAPI_DEF_O_ACCMODE_RDONLY_WRONLY_RDWR 0
+
+#else /* defined(_FCNTL_H) */
+
+#define __UAPI_DEF_FLOCK 1
+#define __UAPI_DEF_F_DUPFD_CLOEXEC 1
+#define __UAPI_DEF_O_ACCMODE_RDONLY_WRONLY_RDWR 1
+
+#endif /* defined(_FCNTL_H) */
+
/* Coordinate with glibc net/if.h header. */
#if defined(_NET_IF_H) && defined(__USE_MISC)
@@ -170,6 +185,11 @@
* that we need. */
#else /* !defined(__GLIBC__) */
+/* Definitions for asm-generic/fcntl.h */
+#define __UAPI_DEF_FLOCK 1
+#define __UAPI_DEF_F_DUPFD_CLOEXEC 1
+#define __UAPI_DEF_O_ACCMODE_RDONLY_WRONLY_RDWR 1
+
/* Definitions for if.h */
#define __UAPI_DEF_IF_IFCONF 1
#define __UAPI_DEF_IF_IFMAP 1
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 66/72] uapi icmp.h: glibc netinet/ip_icmp.h header file compatibility fixes
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (64 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 65/72] uapi fcntl.h: glibc fcntl.h header file compatibility fixes Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 23:33 ` David Miller
2016-08-23 23:36 ` David Miller
2016-08-22 18:33 ` [PATCH v05 67/72] uapi uio.h: glibc sys/uio.h " Mikko Rapeli
` (5 subsequent siblings)
71 siblings, 2 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, David S. Miller, Eric Dumazet, Nicolas Dichtel
Fixes this userspace compile error when glibc netinet/ip_icmp.h is included
before linux/icmp.h:
linux/icmp.h:68:8: error: redefinition of ‘struct icmphdr’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/icmp.h | 4 +++-
include/uapi/linux/libc-compat.h | 10 ++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/icmp.h b/include/uapi/linux/icmp.h
index fddd9d7..cd38005 100644
--- a/include/uapi/linux/icmp.h
+++ b/include/uapi/linux/icmp.h
@@ -17,6 +17,7 @@
#ifndef _UAPI_LINUX_ICMP_H
#define _UAPI_LINUX_ICMP_H
+#include <linux/libc-compat.h>
#include <linux/types.h>
#define ICMP_ECHOREPLY 0 /* Echo Reply */
@@ -64,7 +65,7 @@
#define ICMP_EXC_TTL 0 /* TTL count exceeded */
#define ICMP_EXC_FRAGTIME 1 /* Fragment Reass time exceeded */
-
+#if __UAPI_DEF_ICMPHDR
struct icmphdr {
__u8 type;
__u8 code;
@@ -82,6 +83,7 @@ struct icmphdr {
__u8 reserved[4];
} un;
};
+#endif /* __UAPI_DEF_ICMPHDR */
/*
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
index 40190a4..8a5a7cc 100644
--- a/include/uapi/linux/libc-compat.h
+++ b/include/uapi/linux/libc-compat.h
@@ -154,6 +154,13 @@
#endif /* _NETINET_IN_H */
+/* Coordinate with glibc netinet/ip_icmp.h header. */
+#if defined(__NETINET_IP_ICMP_H)
+#define __UAPI_DEF_ICMPHDR 0
+#else /* defined(__NETINET_IP_ICMP_H) */
+#define __UAPI_DEF_ICMPHDR 1
+#endif /* defined(__NETINET_IP_ICMP_H) */
+
/* Coordinate with glibc netipx/ipx.h header. */
#if defined(__NETIPX_IPX_H)
@@ -218,6 +225,9 @@
#define __UAPI_DEF_IN6_PKTINFO 1
#define __UAPI_DEF_IP6_MTUINFO 1
+/* Definitions for icmp.h */
+#define __UAPI_DEF_ICMPHDR 1
+
/* Definitions for ipx.h */
#define __UAPI_DEF_SOCKADDR_IPX 1
#define __UAPI_DEF_IPX_ROUTE_DEFINITION 1
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 67/72] uapi uio.h: glibc sys/uio.h header file compatibility fixes
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (65 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 66/72] uapi icmp.h: glibc netinet/ip_icmp.h " Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 68/72] uapi ax25.h: glibc netax25/ax25.h " Mikko Rapeli
` (4 subsequent siblings)
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, David S. Miller, Nicolas Dichtel
Fixes this userspace compile error when glibc sys/uio.h is included
before linux/uio.h:
linux/uio.h:16:8: error: redefinition of ‘struct iovec’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/libc-compat.h | 10 ++++++++++
include/uapi/linux/uio.h | 4 +++-
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
index 8a5a7cc..f793b09 100644
--- a/include/uapi/linux/libc-compat.h
+++ b/include/uapi/linux/libc-compat.h
@@ -180,6 +180,13 @@
#endif /* defined(__NETIPX_IPX_H) */
+/* Definitions for sys/uio.h */
+#if defined(_SYS_UIO_H)
+#define __UAPI_DEF_IOVEC 0
+#else /* defined(_SYS_UIO_H) */
+#define __UAPI_DEF_IOVEC 1
+#endif /* defined(_SYS_UIO_H) */
+
/* Definitions for xattr.h */
#if defined(_SYS_XATTR_H)
#define __UAPI_DEF_XATTR 0
@@ -235,6 +242,9 @@
#define __UAPI_DEF_IPX_CONFIG_DATA 1
#define __UAPI_DEF_IPX_ROUTE_DEF 1
+/* Definitions for uio.h */
+#define __UAPI_DEF_IOVEC 1
+
/* Definitions for xattr.h */
#define __UAPI_DEF_XATTR 1
diff --git a/include/uapi/linux/uio.h b/include/uapi/linux/uio.h
index 2731d56..cba4819 100644
--- a/include/uapi/linux/uio.h
+++ b/include/uapi/linux/uio.h
@@ -9,15 +9,17 @@
#ifndef _UAPI__LINUX_UIO_H
#define _UAPI__LINUX_UIO_H
+#include <linux/libc-compat.h>
#include <linux/compiler.h>
#include <linux/types.h>
-
+#if __UAPI_DEF_IOVEC
struct iovec
{
void __user *iov_base; /* BSD uses caddr_t (1003.1g requires void *) */
__kernel_size_t iov_len; /* Must be size_t (1003.1g) */
};
+#endif /* __UAPI_DEF_IOVEC */
/*
* UIO_MAXIOV shall be at least 16 1003.1g (5.4.1.1)
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 68/72] uapi ax25.h: glibc netax25/ax25.h header file compatibility fixes
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (66 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 67/72] uapi uio.h: glibc sys/uio.h " Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 23:33 ` David Miller
2016-08-22 18:33 ` [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h " Mikko Rapeli
` (3 subsequent siblings)
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Ralf Baechle, David S. Miller, Nicolas Dichtel, linux-hams
Fixes these userspace compile error when glibc netax25/ax25.h is included
before linux/ax25.h:
linux/ax25.h:28:0: warning: "SIOCAX25GETUID" redefined
linux/ax25.h:38:0: warning: "SIOCAX25GETINFO" redefined
linux/ax25.h:47:3: error: conflicting types for ‘ax25_address’
linux/ax25.h:49:8: error: redefinition of ‘struct sockaddr_ax25’
linux/ax25.h:58:8: error: redefinition of ‘struct full_sockaddr_ax25’
linux/ax25.h:63:8: error: redefinition of ‘struct ax25_routes_struct’
linux/ax25.h:70:8: error: redefinition of ‘struct ax25_route_opt_struct’
linux/ax25.h:77:8: error: redefinition of ‘struct ax25_ctl_struct’
linux/ax25.h:98:8: error: redefinition of ‘struct ax25_info_struct’
linux/ax25.h:111:8: error: redefinition of ‘struct ax25_fwd_struct’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/ax25.h | 22 +++++++++++++++++++++
include/uapi/linux/libc-compat.h | 41 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 63 insertions(+)
diff --git a/include/uapi/linux/ax25.h b/include/uapi/linux/ax25.h
index 74c89a4..e296c8a 100644
--- a/include/uapi/linux/ax25.h
+++ b/include/uapi/linux/ax25.h
@@ -6,6 +6,7 @@
#ifndef AX25_KERNEL_H
#define AX25_KERNEL_H
+#include <linux/libc-compat.h>
#include <linux/socket.h>
#define AX25_MTU 256
@@ -25,6 +26,7 @@
#define AX25_KILL 99
+#if __UAPI_DEF_SIOCAX25GETUID_TO_SIOCAX25DELFWD
#define SIOCAX25GETUID (SIOCPROTOPRIVATE+0)
#define SIOCAX25ADDUID (SIOCPROTOPRIVATE+1)
#define SIOCAX25DELUID (SIOCPROTOPRIVATE+2)
@@ -34,46 +36,61 @@
#define SIOCAX25GETINFOOLD (SIOCPROTOPRIVATE+9)
#define SIOCAX25ADDFWD (SIOCPROTOPRIVATE+10)
#define SIOCAX25DELFWD (SIOCPROTOPRIVATE+11)
+#endif /* __UAPI_DEF_SIOCAX25GETUID_TO_SIOCAX25DELFWD */
#define SIOCAX25DEVCTL (SIOCPROTOPRIVATE+12)
+/* glibc uses SIOCPROTOPRIVATE+9 for SIOCAX25GETINFO */
+#if __UAPI_DEF_SIOCAX25GETINFO
#define SIOCAX25GETINFO (SIOCPROTOPRIVATE+13)
+#endif /* __UAPI_DEF_SIOCAX25GETINFO */
#define AX25_SET_RT_IPMODE 2
#define AX25_NOUID_DEFAULT 0
#define AX25_NOUID_BLOCK 1
+#if __UAPI_DEF_AX25_ADDRESS
typedef struct {
char ax25_call[7]; /* 6 call + SSID (shifted ascii!) */
} ax25_address;
+#endif /* __UAPI_DEF_AX25_ADDRESS */
+#if __UAPI_DEF_SOCKADDR_AX25
struct sockaddr_ax25 {
__kernel_sa_family_t sax25_family;
ax25_address sax25_call;
int sax25_ndigis;
/* Digipeater ax25_address sets follow */
};
+#endif /* __UAPI_DEF_SOCKADDR_AX25 */
#define sax25_uid sax25_ndigis
+#if __UAPI_DEF_FULL_SOCKADDR_AX25
struct full_sockaddr_ax25 {
struct sockaddr_ax25 fsa_ax25;
ax25_address fsa_digipeater[AX25_MAX_DIGIS];
};
+#endif /* __UAPI_DEF_FULL_SOCKADDR_AX25 */
+#if __UAPI_DEF_AX25_ROUTES_STRUCT
struct ax25_routes_struct {
ax25_address port_addr;
ax25_address dest_addr;
unsigned char digi_count;
ax25_address digi_addr[AX25_MAX_DIGIS];
};
+#endif /* __UAPI_DEF_AX25_ROUTES_STRUCT */
+#if __UAPI_DEF_AX25_ROUTES_OPT_STRUCT
struct ax25_route_opt_struct {
ax25_address port_addr;
ax25_address dest_addr;
int cmd;
int arg;
};
+#endif /* __UAPI_DEF_AX25_ROUTES_OPT_STRUCT */
+#if __UAPI_DEF_AX25_CTL_STRUCT
struct ax25_ctl_struct {
ax25_address port_addr;
ax25_address source_addr;
@@ -83,6 +100,7 @@ struct ax25_ctl_struct {
unsigned char digi_count;
ax25_address digi_addr[AX25_MAX_DIGIS];
};
+#endif /* __UAPI_DEF_AX25_CTL_STRUCT */
/* this will go away. Please do not export to user land */
struct ax25_info_struct_deprecated {
@@ -95,6 +113,7 @@ struct ax25_info_struct_deprecated {
unsigned int rcv_q, snd_q;
};
+#if __UAPI_DEF_AX25_INFO_STRUCT
struct ax25_info_struct {
unsigned int n2, n2count;
unsigned int t1, t1timer;
@@ -107,10 +126,13 @@ struct ax25_info_struct {
unsigned int paclen;
unsigned int window;
};
+#endif /* __UAPI_DEF_AX25_INFO_STRUCT */
+#if __UAPI_DEF_AX25_FWD_STRUCT
struct ax25_fwd_struct {
ax25_address port_from;
ax25_address port_to;
};
+#endif /* __UAPI_DEF_AX25_FWD_STRUCT */
#endif
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
index f793b09..01bb521 100644
--- a/include/uapi/linux/libc-compat.h
+++ b/include/uapi/linux/libc-compat.h
@@ -100,6 +100,35 @@
#endif /* _NET_IF_H */
+/* Coordinate with glibc netax25/ax25.h header. */
+#if defined(_NETAX25_AX25_H)
+
+#define __UAPI_DEF_SIOCAX25GETUID_TO_SIOCAX25DELFWD 0
+#define __UAPI_DEF_SIOCAX25GETINFO 0
+#define __UAPI_DEF_AX25_ADDRESS 0
+#define __UAPI_DEF_SOCKADDR_AX25 0
+#define __UAPI_DEF_FULL_SOCKADDR_AX25 0
+#define __UAPI_DEF_AX25_ROUTES_STRUCT 0
+#define __UAPI_DEF_AX25_ROUTES_OPT_STRUCT 0
+#define __UAPI_DEF_AX25_CTL_STRUCT 0
+#define __UAPI_DEF_AX25_INFO_STRUCT 0
+#define __UAPI_DEF_AX25_FWD_STRUCT 0
+
+#else /* defined(_NETAX25_AX25_H) */
+
+#define __UAPI_DEF_SIOCAX25GETUID_TO_SIOCAX25DELFWD 1
+#define __UAPI_DEF_SIOCAX25GETINFO 1
+#define __UAPI_DEF_AX25_ADDRESS 1
+#define __UAPI_DEF_SOCKADDR_AX25 1
+#define __UAPI_DEF_FULL_SOCKADDR_AX25 1
+#define __UAPI_DEF_AX25_ROUTES_STRUCT 1
+#define __UAPI_DEF_AX25_ROUTES_OPT_STRUCT 1
+#define __UAPI_DEF_AX25_CTL_STRUCT 1
+#define __UAPI_DEF_AX25_INFO_STRUCT 1
+#define __UAPI_DEF_AX25_FWD_STRUCT 1
+
+#endif /* defined(_NETAX25_AX25_H) */
+
/* Coordinate with glibc netinet/in.h header. */
#if defined(_NETINET_IN_H)
@@ -204,6 +233,18 @@
#define __UAPI_DEF_F_DUPFD_CLOEXEC 1
#define __UAPI_DEF_O_ACCMODE_RDONLY_WRONLY_RDWR 1
+/* Definitions for ax25.h */
+#define __UAPI_DEF_SIOCAX25GETUID_TO_SIOCAX25DELFWD 1
+#define __UAPI_DEF_SIOCAX25GETINFO 1
+#define __UAPI_DEF_AX25_ADDRESS 1
+#define __UAPI_DEF_SOCKADDR_AX25 1
+#define __UAPI_DEF_FULL_SOCKADDR_AX25 1
+#define __UAPI_DEF_AX25_ROUTES_STRUCT 1
+#define __UAPI_DEF_AX25_ROUTES_OPT_STRUCT 1
+#define __UAPI_DEF_AX25_CTL_STRUCT 1
+#define __UAPI_DEF_AX25_INFO_STRUCT 1
+#define __UAPI_DEF_AX25_FWD_STRUCT 1
+
/* Definitions for if.h */
#define __UAPI_DEF_IF_IFCONF 1
#define __UAPI_DEF_IF_IFMAP 1
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h header file compatibility fixes
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (67 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 68/72] uapi ax25.h: glibc netax25/ax25.h " Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 23:33 ` David Miller
2016-08-26 15:38 ` walter harms
2016-08-22 18:33 ` [PATCH v05 70/72] uapi time.h: glibc time.h " Mikko Rapeli
` (2 subsequent siblings)
71 siblings, 2 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Ralf Baechle, David S. Miller, Nicolas Dichtel, linux-hams
Fixes these userspace compile errors and warnings when glibc
netrose/rose.h is included before linux/rose.h:
linux/rose.h:25:0: warning: "SIOCRSGCAUSE" redefined
linux/rose.h:26:0: warning: "SIOCRSSCAUSE" redefined
linux/rose.h:27:0: warning: "SIOCRSL2CALL" redefined
linux/rose.h:28:0: warning: "SIOCRSSL2CALL" redefined
linux/rose.h:29:0: warning: "SIOCRSACCEPT" redefined
linux/rose.h:30:0: warning: "SIOCRSCLRRT" redefined
linux/rose.h:31:0: warning: "SIOCRSGL2CALL" redefined
linux/rose.h:32:0: warning: "SIOCRSGFACILITIES" redefined
linux/rose.h:47:3: error: conflicting types for ‘rose_address’
linux/rose.h:49:8: error: redefinition of ‘struct sockaddr_rose’
linux/rose.h:57:8: error: redefinition of ‘struct full_sockaddr_rose’
linux/rose.h:65:8: error: redefinition of ‘struct rose_route_struct’
linux/rose.h:74:8: error: redefinition of ‘struct rose_cause_struct’
linux/rose.h:79:8: error: redefinition of ‘struct rose_facilities_struct’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/libc-compat.h | 30 ++++++++++++++++++++++++++++++
include/uapi/linux/rose.h | 15 +++++++++++++++
2 files changed, 45 insertions(+)
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
index 01bb521..acc2e75 100644
--- a/include/uapi/linux/libc-compat.h
+++ b/include/uapi/linux/libc-compat.h
@@ -209,6 +209,27 @@
#endif /* defined(__NETIPX_IPX_H) */
+/* Coordinate with glibc netrose/rose.h */
+#if defined(_NETROSE_ROSE_H)
+#define __UAPI_DEF_SIOCRSGCAUSE_TO_SIOCRSGFACILITIES 0
+#define __UAPI_DEF_ROSE_ADDRESS 0
+#define __UAPI_DEF_SOCKADDR_ROSE 0
+#define __UAPI_DEF_FULL_SOCKADDR_ROSE 0
+#define __UAPI_DEF_ROSE_ROUTE_STRUCT 0
+#define __UAPI_DEF_ROSE_CAUSE_STRUCT 0
+#define __UAPI_DEF_ROSE_FACILITIES_STRUCT 0
+
+#else /* defined(_NETROSE_ROSE_H) */
+#define __UAPI_DEF_SIOCRSGCAUSE_TO_SIOCRSGFACILITIES 1
+#define __UAPI_DEF_ROSE_ADDRESS 1
+#define __UAPI_DEF_SOCKADDR_ROSE 1
+#define __UAPI_DEF_FULL_SOCKADDR_ROSE 1
+#define __UAPI_DEF_ROSE_ROUTE_STRUCT 1
+#define __UAPI_DEF_ROSE_CAUSE_STRUCT 1
+#define __UAPI_DEF_ROSE_FACILITIES_STRUCT 1
+
+#endif /* defined(_NETROSE_ROSE_H) */
+
/* Definitions for sys/uio.h */
#if defined(_SYS_UIO_H)
#define __UAPI_DEF_IOVEC 0
@@ -283,6 +304,15 @@
#define __UAPI_DEF_IPX_CONFIG_DATA 1
#define __UAPI_DEF_IPX_ROUTE_DEF 1
+/* Definitions for rose.h */
+#define __UAPI_DEF_SIOCRSGCAUSE_TO_SIOCRSGFACILITIES 1
+#define __UAPI_DEF_ROSE_ADDRESS 1
+#define __UAPI_DEF_SOCKADDR_ROSE 1
+#define __UAPI_DEF_FULL_SOCKADDR_ROSE 1
+#define __UAPI_DEF_ROSE_ROUTE_STRUCT 1
+#define __UAPI_DEF_ROSE_CAUSE_STRUCT 1
+#define __UAPI_DEF_ROSE_FACILITIES_STRUCT 1
+
/* Definitions for uio.h */
#define __UAPI_DEF_IOVEC 1
diff --git a/include/uapi/linux/rose.h b/include/uapi/linux/rose.h
index 1fcfe95..c39499c 100644
--- a/include/uapi/linux/rose.h
+++ b/include/uapi/linux/rose.h
@@ -7,6 +7,7 @@
#ifndef ROSE_KERNEL_H
#define ROSE_KERNEL_H
+#include <linux/libc-compat.h>
#include <linux/socket.h>
#include <linux/ax25.h>
@@ -22,6 +23,7 @@
#define ROSE_QBITINCL 6
#define ROSE_HOLDBACK 7
+#if __UAPI_DEF_SIOCRSGCAUSE_TO_SIOCRSGFACILITIES
#define SIOCRSGCAUSE (SIOCPROTOPRIVATE+0)
#define SIOCRSSCAUSE (SIOCPROTOPRIVATE+1)
#define SIOCRSL2CALL (SIOCPROTOPRIVATE+2)
@@ -30,6 +32,7 @@
#define SIOCRSCLRRT (SIOCPROTOPRIVATE+4)
#define SIOCRSGL2CALL (SIOCPROTOPRIVATE+5)
#define SIOCRSGFACILITIES (SIOCPROTOPRIVATE+6)
+#endif /* __UAPI_DEF_SIOCRSGCAUSE_TO_SIOCRSGFACILITIES */
#define ROSE_DTE_ORIGINATED 0x00
#define ROSE_NUMBER_BUSY 0x01
@@ -42,10 +45,13 @@
#define ROSE_LOCAL_PROCEDURE 0x13
#define ROSE_SHIP_ABSENT 0x39
+#if __UAPI_DEF_ROSE_ADDRESS
typedef struct {
char rose_addr[5];
} rose_address;
+#endif /* __UAPI_DEF_ROSE_ADDRESS */
+#if __UAPI_DEF_SOCKADDR_ROSE
struct sockaddr_rose {
__kernel_sa_family_t srose_family;
rose_address srose_addr;
@@ -53,7 +59,9 @@ struct sockaddr_rose {
int srose_ndigis;
ax25_address srose_digi;
};
+#endif /* __UAPI_DEF_SOCKADDR_ROSE */
+#if __UAPI_DEF_FULL_SOCKADDR_ROSE
struct full_sockaddr_rose {
__kernel_sa_family_t srose_family;
rose_address srose_addr;
@@ -61,7 +69,9 @@ struct full_sockaddr_rose {
unsigned int srose_ndigis;
ax25_address srose_digis[ROSE_MAX_DIGIS];
};
+#endif /* __UAPI_DEF_FULL_SOCKADDR_ROSE */
+#if __UAPI_DEF_ROSE_ROUTE_STRUCT
struct rose_route_struct {
rose_address address;
unsigned short mask;
@@ -70,12 +80,16 @@ struct rose_route_struct {
unsigned char ndigis;
ax25_address digipeaters[AX25_MAX_DIGIS];
};
+#endif /* __UAPI_DEF_ROSE_ROUTE_STRUCT */
+#if __UAPI_DEF_ROSE_CAUSE_STRUCT
struct rose_cause_struct {
unsigned char cause;
unsigned char diagnostic;
};
+#endif /* __UAPI_DEF_ROSE_CAUSE_STRUCT */
+#if __UAPI_DEF_ROSE_FACILITIES_STRUCT
struct rose_facilities_struct {
rose_address source_addr, dest_addr;
ax25_address source_call, dest_call;
@@ -86,5 +100,6 @@ struct rose_facilities_struct {
rose_address fail_addr;
ax25_address fail_call;
};
+#endif /* __UAPI_DEF_ROSE_FACILITIES_STRUCT */
#endif
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 70/72] uapi time.h: glibc time.h header file compatibility fixes
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (68 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h " Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 71/72] uapi term*.h: glibc termios.h " Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 72/72] uapi route.h: glibc net/route.h compat fix Mikko Rapeli
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, John Stultz, Thomas Gleixner, David S. Miller,
Nicolas Dichtel
Fixes these userspace compile errors and warnings when glibc time.h
is included before linux/time.h:
linux/time.h:9:8: error: redefinition of ‘struct timespec’
linux/time.h:15:8: error: redefinition of ‘struct timeval’
linux/time.h:20:8: error: redefinition of ‘struct timezone’
linux/time.h:30:0: warning: "ITIMER_REAL" redefined
linux/time.h:31:0: warning: "ITIMER_VIRTUAL" redefined
linux/time.h:32:0: warning: "ITIMER_PROF" redefined
linux/time.h:34:8: error: redefinition of ‘struct itimerspec’
linux/time.h:39:8: error: redefinition of ‘struct itimerval’
linux/time.h:67:0: warning: "TIMER_ABSTIME" redefined
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/libc-compat.h | 37 +++++++++++++++++++++++++++++++++++++
include/uapi/linux/time.h | 18 ++++++++++++++++--
2 files changed, 53 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
index acc2e75..cb25f16 100644
--- a/include/uapi/linux/libc-compat.h
+++ b/include/uapi/linux/libc-compat.h
@@ -230,6 +230,21 @@
#endif /* defined(_NETROSE_ROSE_H) */
+/* Coordinate with glibc time.h */
+#if defined(_TIME_H)
+#define __UAPI_DEF_TIMESPEC 0
+#define __UAPI_DEF_TIMEVAL 0
+#define __UAPI_DEF_ITIMERSPEC 0
+#define __UAPI_DEF_TIMER_ABSTIME 0
+
+#else /* defined(_TIME_H) */
+#define __UAPI_DEF_TIMESPEC 1
+#define __UAPI_DEF_TIMEVAL 1
+#define __UAPI_DEF_ITIMERSPEC 1
+#define __UAPI_DEF_TIMER_ABSTIME 1
+
+#endif /* defined(_TIME_H) */
+
/* Definitions for sys/uio.h */
#if defined(_SYS_UIO_H)
#define __UAPI_DEF_IOVEC 0
@@ -237,6 +252,19 @@
#define __UAPI_DEF_IOVEC 1
#endif /* defined(_SYS_UIO_H) */
+/* Definitions for sys/time.h */
+#if defined(_SYS_TIME_H)
+#define __UAPI_DEF_TIMEZONE 0
+#define __UAPI_DEF_ITIMER_REAL_VIRTUAL_PROF 0
+#define __UAPI_DEF_ITIMERVAL 0
+
+#else /* defined(_SYS_TIME_H) */
+#define __UAPI_DEF_TIMEZONE 1
+#define __UAPI_DEF_ITIMER_REAL_VIRTUAL_PROF 1
+#define __UAPI_DEF_ITIMERVAL 1
+
+#endif /* defined(_SYS_TIME_H) */
+
/* Definitions for xattr.h */
#if defined(_SYS_XATTR_H)
#define __UAPI_DEF_XATTR 0
@@ -313,6 +341,15 @@
#define __UAPI_DEF_ROSE_CAUSE_STRUCT 1
#define __UAPI_DEF_ROSE_FACILITIES_STRUCT 1
+/* Definitions for time.h */
+#define __UAPI_DEF_TIMESPEC 1
+#define __UAPI_DEF_TIMEVAL 1
+#define __UAPI_DEF_TIMEZONE 1
+#define __UAPI_DEF_ITIMER_REAL_VIRTUAL_PROF 1
+#define __UAPI_DEF_ITIMERSPEC 1
+#define __UAPI_DEF_ITIMERVAL 1
+#define __UAPI_DEF_TIMER_ABSTIME 1
+
/* Definitions for uio.h */
#define __UAPI_DEF_IOVEC 1
diff --git a/include/uapi/linux/time.h b/include/uapi/linux/time.h
index e75e1b6..66fb19c 100644
--- a/include/uapi/linux/time.h
+++ b/include/uapi/linux/time.h
@@ -1,45 +1,57 @@
#ifndef _UAPI_LINUX_TIME_H
#define _UAPI_LINUX_TIME_H
+#include <linux/libc-compat.h>
#include <linux/types.h>
#ifndef _STRUCT_TIMESPEC
#define _STRUCT_TIMESPEC
+#if __UAPI_DEF_TIMESPEC
struct timespec {
__kernel_time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
-#endif
+#endif /* __UAPI_DEF_TIMESPEC */
+#endif /* _STRUCT_TIMESPEC */
+#if __UAPI_DEF_TIMEVAL
struct timeval {
__kernel_time_t tv_sec; /* seconds */
__kernel_suseconds_t tv_usec; /* microseconds */
};
+#endif /* __UAPI_DEF_TIMEVAL */
+#if __UAPI_DEF_TIMEZONE
struct timezone {
int tz_minuteswest; /* minutes west of Greenwich */
int tz_dsttime; /* type of dst correction */
};
-
+#endif /* __UAPI_DEF_TIMEZONE */
/*
* Names of the interval timers, and structure
* defining a timer setting:
*/
+#if __UAPI_DEF_ITIMER_REAL_VIRTUAL_PROF
#define ITIMER_REAL 0
#define ITIMER_VIRTUAL 1
#define ITIMER_PROF 2
+#endif /* __UAPI_DEF_ITIMER_REAL_VIRTUAL_PROF */
+#if __UAPI_DEF_ITIMERSPEC
struct itimerspec {
struct timespec it_interval; /* timer period */
struct timespec it_value; /* timer expiration */
};
+#endif /* __UAPI_DEF_ITIMERSPEC */
+#if __UAPI_DEF_ITIMERVAL
struct itimerval {
struct timeval it_interval; /* timer interval */
struct timeval it_value; /* current value */
};
+#endif /* __UAPI_DEF_ITIMERVAL */
/*
* The IDs of the various system clocks (for POSIX.1b interval timers):
@@ -64,6 +76,8 @@ struct itimerval {
/*
* The various flags for setting POSIX.1b interval timers:
*/
+#if __UAPI_DEF_TIMER_ABSTIME
#define TIMER_ABSTIME 0x01
+#endif /* __UAPI_DEF_TIMER_ABSTIME */
#endif /* _UAPI_LINUX_TIME_H */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 71/72] uapi term*.h: glibc termios.h header file compatibility fixes
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (69 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 70/72] uapi time.h: glibc time.h " Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 72/72] uapi route.h: glibc net/route.h compat fix Mikko Rapeli
71 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Mikko Rapeli, Arnd Bergmann, David S. Miller, Nicolas Dichtel,
linux-arch
Fixes these userspace compile errors and warnings when glibc termios.h
is included before linux/termios.h:
asm-generic/termbits.h:11:8: error: redefinition of ‘struct termios’
asm-generic/termios.h:14:8: error: redefinition of ‘struct winsize’
asm-generic/termios.h:22:8: error: redefinition of ‘struct termio’
Not fixing multiple NCSS definitions since I don't know which one would be
correct so this warning remains:
asm-generic/termbits.h:10:0: warning: "NCCS" redefined
#define NCCS 19
^
bits/termios.h:27:0: note: this is the location of the previous definition
#define NCCS 32
^
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/asm-generic/termbits.h | 3 +++
include/uapi/asm-generic/termios.h | 5 +++++
include/uapi/linux/libc-compat.h | 28 ++++++++++++++++++++++++++++
3 files changed, 36 insertions(+)
diff --git a/include/uapi/asm-generic/termbits.h b/include/uapi/asm-generic/termbits.h
index 232b478..314bfef 100644
--- a/include/uapi/asm-generic/termbits.h
+++ b/include/uapi/asm-generic/termbits.h
@@ -1,6 +1,7 @@
#ifndef __ASM_GENERIC_TERMBITS_H
#define __ASM_GENERIC_TERMBITS_H
+#include <linux/libc-compat.h>
#include <linux/posix_types.h>
typedef unsigned char cc_t;
@@ -8,6 +9,7 @@ typedef unsigned int speed_t;
typedef unsigned int tcflag_t;
#define NCCS 19
+#if __UAPI_DEF_TERMIOS
struct termios {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
@@ -16,6 +18,7 @@ struct termios {
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
};
+#endif /* __UAPI_DEF_TERMIOS */
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
diff --git a/include/uapi/asm-generic/termios.h b/include/uapi/asm-generic/termios.h
index 0881760..3428999 100644
--- a/include/uapi/asm-generic/termios.h
+++ b/include/uapi/asm-generic/termios.h
@@ -8,17 +8,21 @@
* New architectures should not provide their own version.
*/
+#include <linux/libc-compat.h>
#include <asm/termbits.h>
#include <asm/ioctls.h>
+#if __UAPI_DEF_WINSIZE
struct winsize {
unsigned short ws_row;
unsigned short ws_col;
unsigned short ws_xpixel;
unsigned short ws_ypixel;
};
+#endif /* __UAPI_DEF_WINSIZE */
#define NCC 8
+#if __UAPI_DEF_TERMIO
struct termio {
unsigned short c_iflag; /* input mode flags */
unsigned short c_oflag; /* output mode flags */
@@ -27,6 +31,7 @@ struct termio {
unsigned char c_line; /* line discipline */
unsigned char c_cc[NCC]; /* control characters */
};
+#endif /* __UAPI_DEF_TERMIO */
/* modem lines */
#define TIOCM_LE 0x001
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
index cb25f16..07a3462 100644
--- a/include/uapi/linux/libc-compat.h
+++ b/include/uapi/linux/libc-compat.h
@@ -230,6 +230,13 @@
#endif /* defined(_NETROSE_ROSE_H) */
+/* Coordinate with glibc pty.h */
+#if defined(_PTY_H)
+#define __UAPI_DEF_TERMIOS 0
+#else /* defined(_PTY_H) */
+#define __UAPI_DEF_TERMIOS 1
+#endif /* defined(_PTY_H) */
+
/* Coordinate with glibc time.h */
#if defined(_TIME_H)
#define __UAPI_DEF_TIMESPEC 0
@@ -245,6 +252,15 @@
#endif /* defined(_TIME_H) */
+/* Definitions for sys/ioctl.h */
+#if defined(_SYS_IOCTL_H)
+#define __UAPI_DEF_TERMIO 0
+#define __UAPI_DEF_WINSIZE 0
+#else /* defined(_SYS_IOCTL_H) */
+#define __UAPI_DEF_TERMIO 1
+#define __UAPI_DEF_WINSIZE 1
+#endif /* defined(_SYS_IOCTL_H) */
+
/* Definitions for sys/uio.h */
#if defined(_SYS_UIO_H)
#define __UAPI_DEF_IOVEC 0
@@ -265,6 +281,13 @@
#endif /* defined(_SYS_TIME_H) */
+/* Coordinate with glibc termios.h */
+#if defined(_TERMIOS_H)
+#define __UAPI_DEF_TERMIOS 0
+#else /* defined(_TERMIOS_H) */
+#define __UAPI_DEF_TERMIOS 1
+#endif /* defined(_TERMIOS_H) */
+
/* Definitions for xattr.h */
#if defined(_SYS_XATTR_H)
#define __UAPI_DEF_XATTR 0
@@ -282,6 +305,11 @@
#define __UAPI_DEF_F_DUPFD_CLOEXEC 1
#define __UAPI_DEF_O_ACCMODE_RDONLY_WRONLY_RDWR 1
+/* Definitions for asm-generic/termbits.h and asm-generic/termios.h */
+#define __UAPI_DEF_TERMIO 1
+#define __UAPI_DEF_TERMIOS 1
+#define __UAPI_DEF_WINSIZE 1
+
/* Definitions for ax25.h */
#define __UAPI_DEF_SIOCAX25GETUID_TO_SIOCAX25DELFWD 1
#define __UAPI_DEF_SIOCAX25GETINFO 1
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* [PATCH v05 72/72] uapi route.h: glibc net/route.h compat fix
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
` (70 preceding siblings ...)
2016-08-22 18:33 ` [PATCH v05 71/72] uapi term*.h: glibc termios.h " Mikko Rapeli
@ 2016-08-22 18:33 ` Mikko Rapeli
2016-08-22 23:32 ` David Miller
71 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-22 18:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Mikko Rapeli, David S. Miller, Nicolas Dichtel
Fixes this userspace compile error when net/route.h is included before
linux/route.h:
linux/route.h:30:8: error: redefinition of ‘struct rtentry’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
---
include/uapi/linux/libc-compat.h | 10 ++++++++++
include/uapi/linux/route.h | 4 +++-
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
index 07a3462..16ba7dc 100644
--- a/include/uapi/linux/libc-compat.h
+++ b/include/uapi/linux/libc-compat.h
@@ -230,6 +230,13 @@
#endif /* defined(_NETROSE_ROSE_H) */
+/* Coordinate with glibc net/route.h */
+#if defined(_NET_ROUTE_H)
+#define __UAPI_DEF_RTENTRY 0
+#else /* defined(_NET_ROUTE_H) */
+#define __UAPI_DEF_RTENTRY 1
+#endif /* defined(_NET_ROUTE_H) */
+
/* Coordinate with glibc pty.h */
#if defined(_PTY_H)
#define __UAPI_DEF_TERMIOS 0
@@ -369,6 +376,9 @@
#define __UAPI_DEF_ROSE_CAUSE_STRUCT 1
#define __UAPI_DEF_ROSE_FACILITIES_STRUCT 1
+/* Definitions for route.h */
+#define __UAPI_DEF_RTENTRY 1
+
/* Definitions for time.h */
#define __UAPI_DEF_TIMESPEC 1
#define __UAPI_DEF_TIMEVAL 1
diff --git a/include/uapi/linux/route.h b/include/uapi/linux/route.h
index 6600708..7b77ef2 100644
--- a/include/uapi/linux/route.h
+++ b/include/uapi/linux/route.h
@@ -23,10 +23,12 @@
#ifndef _LINUX_ROUTE_H
#define _LINUX_ROUTE_H
+#include <linux/libc-compat.h>
#include <linux/if.h>
#include <linux/compiler.h>
/* This structure gets passed by the SIOCADDRT and SIOCDELRT calls. */
+#if __UAPI_DEF_RTENTRY
struct rtentry {
unsigned long rt_pad1;
struct sockaddr rt_dst; /* target address */
@@ -45,7 +47,7 @@ struct rtentry {
unsigned long rt_window; /* Window clamping */
unsigned short rt_irtt; /* Initial RTT */
};
-
+#endif /* __UAPI_DEF_RTENTRY */
#define RTF_UP 0x0001 /* route usable */
#define RTF_GATEWAY 0x0002 /* destination is a gateway */
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* Re: [PATCH v05 08/72] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
2016-08-22 18:32 ` [PATCH v05 08/72] rds.h: " Mikko Rapeli
@ 2016-08-22 18:52 ` Sowmini Varadhan
2016-08-23 20:46 ` Mikko Rapeli
0 siblings, 1 reply; 141+ messages in thread
From: Sowmini Varadhan @ 2016-08-22 18:52 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel
On (08/22/16 20:32), Mikko Rapeli wrote:
>
> Fixes userspace compilation errors like:
>
> linux/rds.h:96:2: error: unknown type name ‘uint8_t’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Acked-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
I think we discussed this some time before, and I certainly
dont have any religious opinions about it, but I would like
to point out that this means that the exported rds.h will
expose __<type> to user space applications.
--Sowmini
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 21/72] include/uapi/linux/if_pppox.h: include linux/if.h
2016-08-22 18:32 ` [PATCH v05 21/72] include/uapi/linux/if_pppox.h: include linux/if.h Mikko Rapeli
@ 2016-08-22 19:37 ` Stephen Hemminger
2016-08-22 23:26 ` David Miller
2016-08-23 6:41 ` Mikko Rapeli
2016-08-22 23:33 ` David Miller
1 sibling, 2 replies; 141+ messages in thread
From: Stephen Hemminger @ 2016-08-22 19:37 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, netdev
On Mon, 22 Aug 2016 20:32:38 +0200
Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> Fixes userspace compilation error:
>
> error: ‘IFNAMSIZ’ undeclared here (not in a function)
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/linux/if_pppox.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/include/uapi/linux/if_pppox.h b/include/uapi/linux/if_pppox.h
> index e128769..473c3c4 100644
> --- a/include/uapi/linux/if_pppox.h
> +++ b/include/uapi/linux/if_pppox.h
> @@ -21,6 +21,7 @@
> #include <asm/byteorder.h>
>
> #include <linux/socket.h>
> +#include <linux/if.h>
> #include <linux/if_ether.h>
> #include <linux/if_pppol2tp.h>
>
I went back to the first patch in LKML for this series.
It seems your goal is that every include file should be standalone,
i.e it must include every definition it uses.
I disagree with this premise. It just makes things harder to maintain with
no real gain for any existing program. What is the motivation for all this
useless churn? Is there some silly style rule that should be fixed instead?
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 38/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h
2016-08-22 18:32 ` [PATCH v05 38/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h Mikko Rapeli
@ 2016-08-22 19:39 ` Stephen Hemminger
2016-08-22 23:27 ` David Miller
2016-08-23 6:49 ` Mikko Rapeli
2016-08-22 23:31 ` David Miller
1 sibling, 2 replies; 141+ messages in thread
From: Stephen Hemminger @ 2016-08-22 19:39 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, Pravin Shelar, netdev, dev
On Mon, 22 Aug 2016 20:32:55 +0200
Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> Fixes userspace compiler error:
>
> error: unknown type name ‘uint32_t’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/linux/openvswitch.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
> index d95a301..645499a 100644
> --- a/include/uapi/linux/openvswitch.h
> +++ b/include/uapi/linux/openvswitch.h
> @@ -632,8 +632,8 @@ enum ovs_hash_alg {
> * @hash_basis: basis used for computing hash.
> */
> struct ovs_action_hash {
> - uint32_t hash_alg; /* One of ovs_hash_alg. */
> - uint32_t hash_basis;
> + __u32 hash_alg; /* One of ovs_hash_alg. */
> + __u32 hash_basis;
> };
>
> /**
This is a a real issue, but being buried in a huge patch series of include
file stuff I don't think anyone would see it.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 06/72] include/uapi/linux/hsi/cs-protocol.h: include linux/time.h
2016-08-22 18:32 ` [PATCH v05 06/72] include/uapi/linux/hsi/cs-protocol.h: include linux/time.h Mikko Rapeli
@ 2016-08-22 20:52 ` Sebastian Reichel
2016-08-23 6:55 ` Mikko Rapeli
2016-08-28 7:00 ` Mikko Rapeli
0 siblings, 2 replies; 141+ messages in thread
From: Sebastian Reichel @ 2016-08-22 20:52 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 824 bytes --]
Hi,
On Mon, Aug 22, 2016 at 08:32:23PM +0200, Mikko Rapeli wrote:
> Fixes userspace compilation errors due to missing timespec definition.
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/linux/hsi/cs-protocol.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/include/uapi/linux/hsi/cs-protocol.h b/include/uapi/linux/hsi/cs-protocol.h
> index f153d6e..c8d9f08 100644
> --- a/include/uapi/linux/hsi/cs-protocol.h
> +++ b/include/uapi/linux/hsi/cs-protocol.h
> @@ -26,6 +26,7 @@
>
> #include <linux/types.h>
> #include <linux/ioctl.h>
> +#include <linux/time.h>
>
> /* chardev parameters */
> #define CS_DEV_FILE_NAME "/dev/cmt_speech"
As far as I can see there header file does not use timespec since
I removed it roughly a year ago.
-- Sebastian
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 05/72] hsi_char.h: use __u32 from linux/types.h
2016-08-22 18:32 ` [PATCH v05 05/72] hsi_char.h: use __u32 " Mikko Rapeli
@ 2016-08-22 20:54 ` Sebastian Reichel
0 siblings, 0 replies; 141+ messages in thread
From: Sebastian Reichel @ 2016-08-22 20:54 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1369 bytes --]
Hi,
On Mon, Aug 22, 2016 at 08:32:22PM +0200, Mikko Rapeli wrote:
> Fixes userspace compiler errors like:
>
> linux/hsi/hsi_char.h:51:2: error: unknown type name ‘uint32_t’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/linux/hsi/hsi_char.h | 17 +++++++++--------
> 1 file changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/include/uapi/linux/hsi/hsi_char.h b/include/uapi/linux/hsi/hsi_char.h
> index 76160b4..c00a463 100644
> --- a/include/uapi/linux/hsi/hsi_char.h
> +++ b/include/uapi/linux/hsi/hsi_char.h
> @@ -20,10 +20,11 @@
> * 02110-1301 USA
> */
>
> -
> #ifndef __HSI_CHAR_H
> #define __HSI_CHAR_H
>
> +#include <linux/types.h>
> +
> #define HSI_CHAR_MAGIC 'k'
> #define HSC_IOW(num, dtype) _IOW(HSI_CHAR_MAGIC, num, dtype)
> #define HSC_IOR(num, dtype) _IOR(HSI_CHAR_MAGIC, num, dtype)
> @@ -48,16 +49,16 @@
> #define HSC_ARB_PRIO 1
>
> struct hsc_rx_config {
> - uint32_t mode;
> - uint32_t flow;
> - uint32_t channels;
> + __u32 mode;
> + __u32 flow;
> + __u32 channels;
> };
>
> struct hsc_tx_config {
> - uint32_t mode;
> - uint32_t channels;
> - uint32_t speed;
> - uint32_t arb_mode;
> + __u32 mode;
> + __u32 channels;
> + __u32 speed;
> + __u32 arb_mode;
> };
>
> #endif /* __HSI_CHAR_H */
Thanks, queued.
-- Sebastian
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 34/72] include/uapi/linux/errqueue.h: include linux/time.h
2016-08-22 18:32 ` [PATCH v05 34/72] include/uapi/linux/errqueue.h: include linux/time.h Mikko Rapeli
@ 2016-08-22 21:32 ` kbuild test robot
2016-08-23 7:02 ` Mikko Rapeli
2016-08-22 22:03 ` kbuild test robot
2016-08-22 23:24 ` kbuild test robot
2 siblings, 1 reply; 141+ messages in thread
From: kbuild test robot @ 2016-08-22 21:32 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: kbuild-all, linux-kernel, Mikko Rapeli
[-- Attachment #1: Type: text/plain, Size: 8500 bytes --]
Hi Mikko,
[auto build test ERROR on linus/master]
[also build test ERROR on v4.8-rc3 next-20160822]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]
url: https://github.com/0day-ci/linux/commits/Mikko-Rapeli/Userspace-compile-test-and-fixes-for-exported-uapi-header-files/20160823-034928
config: i386-tinyconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
Note: the linux-review/Mikko-Rapeli/Userspace-compile-test-and-fixes-for-exported-uapi-header-files/20160823-034928 HEAD ab90ab906304d4f306e440f4dbfa334720093b4f builds fine.
It only hurts bisectibility.
All error/warnings (new ones prefixed by >>):
In file included from ./usr/include/linux/errqueue.h:5:0,
from Documentation/networking/timestamping/timestamping.c:46:
>> ./usr/include/linux/time.h:9:8: error: redefinition of 'struct timespec'
struct timespec {
^~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/sys/select.h:43:0,
from /usr/include/x86_64-linux-gnu/sys/types.h:219,
from /usr/include/stdlib.h:314,
from Documentation/networking/timestamping/timestamping.c:33:
/usr/include/time.h:120:8: note: originally defined here
struct timespec
^~~~~~~~
In file included from ./usr/include/linux/errqueue.h:5:0,
from Documentation/networking/timestamping/timestamping.c:46:
>> ./usr/include/linux/time.h:15:8: error: redefinition of 'struct timeval'
struct timeval {
^~~~~~~
In file included from /usr/include/x86_64-linux-gnu/sys/select.h:45:0,
from /usr/include/x86_64-linux-gnu/sys/types.h:219,
from /usr/include/stdlib.h:314,
from Documentation/networking/timestamping/timestamping.c:33:
/usr/include/x86_64-linux-gnu/bits/time.h:30:8: note: originally defined here
struct timeval
^~~~~~~
In file included from ./usr/include/linux/errqueue.h:5:0,
from Documentation/networking/timestamping/timestamping.c:46:
>> ./usr/include/linux/time.h:20:8: error: redefinition of 'struct timezone'
struct timezone {
^~~~~~~~
In file included from Documentation/networking/timestamping/timestamping.c:37:0:
/usr/include/x86_64-linux-gnu/sys/time.h:55:8: note: originally defined here
struct timezone
^~~~~~~~
In file included from ./usr/include/linux/errqueue.h:5:0,
from Documentation/networking/timestamping/timestamping.c:46:
>> ./usr/include/linux/time.h:30:0: warning: "ITIMER_REAL" redefined
#define ITIMER_REAL 0
In file included from Documentation/networking/timestamping/timestamping.c:37:0:
/usr/include/x86_64-linux-gnu/sys/time.h:95:0: note: this is the location of the previous definition
#define ITIMER_REAL ITIMER_REAL
In file included from ./usr/include/linux/errqueue.h:5:0,
from Documentation/networking/timestamping/timestamping.c:46:
>> ./usr/include/linux/time.h:31:0: warning: "ITIMER_VIRTUAL" redefined
#define ITIMER_VIRTUAL 1
In file included from Documentation/networking/timestamping/timestamping.c:37:0:
/usr/include/x86_64-linux-gnu/sys/time.h:98:0: note: this is the location of the previous definition
#define ITIMER_VIRTUAL ITIMER_VIRTUAL
In file included from ./usr/include/linux/errqueue.h:5:0,
from Documentation/networking/timestamping/timestamping.c:46:
>> ./usr/include/linux/time.h:32:0: warning: "ITIMER_PROF" redefined
#define ITIMER_PROF 2
In file included from Documentation/networking/timestamping/timestamping.c:37:0:
/usr/include/x86_64-linux-gnu/sys/time.h:102:0: note: this is the location of the previous definition
#define ITIMER_PROF ITIMER_PROF
In file included from ./usr/include/linux/errqueue.h:5:0,
from Documentation/networking/timestamping/timestamping.c:46:
>> ./usr/include/linux/time.h:39:8: error: redefinition of 'struct itimerval'
struct itimerval {
^~~~~~~~~
In file included from Documentation/networking/timestamping/timestamping.c:37:0:
/usr/include/x86_64-linux-gnu/sys/time.h:107:8: note: originally defined here
struct itimerval
^~~~~~~~~
Documentation/networking/timestamping/timestamping.c: In function 'sendpacket':
>> Documentation/networking/timestamping/timestamping.c:144:15: warning: passing argument 1 of 'gettimeofday' from incompatible pointer type [-Wincompatible-pointer-types]
gettimeofday(&now, 0);
^
In file included from Documentation/networking/timestamping/timestamping.c:37:0:
/usr/include/x86_64-linux-gnu/sys/time.h:71:12: note: expected 'struct timeval * __restrict__' but argument is of type 'struct timeval *'
extern int gettimeofday (struct timeval *__restrict __tv,
^~~~~~~~~~~~
Documentation/networking/timestamping/timestamping.c: In function 'printpacket':
Documentation/networking/timestamping/timestamping.c:164:15: warning: passing argument 1 of 'gettimeofday' from incompatible pointer type [-Wincompatible-pointer-types]
gettimeofday(&now, 0);
^
In file included from Documentation/networking/timestamping/timestamping.c:37:0:
/usr/include/x86_64-linux-gnu/sys/time.h:71:12: note: expected 'struct timeval * __restrict__' but argument is of type 'struct timeval *'
extern int gettimeofday (struct timeval *__restrict __tv,
^~~~~~~~~~~~
Documentation/networking/timestamping/timestamping.c: In function 'main':
Documentation/networking/timestamping/timestamping.c:474:15: warning: passing argument 1 of 'gettimeofday' from incompatible pointer type [-Wincompatible-pointer-types]
gettimeofday(&next, 0);
^
In file included from Documentation/networking/timestamping/timestamping.c:37:0:
/usr/include/x86_64-linux-gnu/sys/time.h:71:12: note: expected 'struct timeval * __restrict__' but argument is of type 'struct timeval *'
extern int gettimeofday (struct timeval *__restrict __tv,
^~~~~~~~~~~~
Documentation/networking/timestamping/timestamping.c:484:16: warning: passing argument 1 of 'gettimeofday' from incompatible pointer type [-Wincompatible-pointer-types]
gettimeofday(&now, 0);
^
In file included from Documentation/networking/timestamping/timestamping.c:37:0:
/usr/include/x86_64-linux-gnu/sys/time.h:71:12: note: expected 'struct timeval * __restrict__' but argument is of type 'struct timeval *'
extern int gettimeofday (struct timeval *__restrict __tv,
^~~~~~~~~~~~
>> Documentation/networking/timestamping/timestamping.c:499:49: warning: passing argument 5 of 'select' from incompatible pointer type [-Wincompatible-pointer-types]
res = select(sock + 1, &readfs, 0, &errorfs, &delta);
^
In file included from /usr/include/x86_64-linux-gnu/sys/types.h:219:0,
from /usr/include/stdlib.h:314,
from Documentation/networking/timestamping/timestamping.c:33:
/usr/include/x86_64-linux-gnu/sys/select.h:106:12: note: expected 'struct timeval * __restrict__' but argument is of type 'struct timeval *'
extern int select (int __nfds, fd_set *__restrict __readfds,
^~~~~~
Documentation/networking/timestamping/timestamping.c:500:17: warning: passing argument 1 of 'gettimeofday' from incompatible pointer type [-Wincompatible-pointer-types]
gettimeofday(&now, 0);
^
In file included from Documentation/networking/timestamping/timestamping.c:37:0:
/usr/include/x86_64-linux-gnu/sys/time.h:71:12: note: expected 'struct timeval * __restrict__' but argument is of type 'struct timeval *'
extern int gettimeofday (struct timeval *__restrict __tv,
^~~~~~~~~~~~
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 6357 bytes --]
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 34/72] include/uapi/linux/errqueue.h: include linux/time.h
2016-08-22 18:32 ` [PATCH v05 34/72] include/uapi/linux/errqueue.h: include linux/time.h Mikko Rapeli
2016-08-22 21:32 ` kbuild test robot
@ 2016-08-22 22:03 ` kbuild test robot
2016-08-22 23:24 ` kbuild test robot
2 siblings, 0 replies; 141+ messages in thread
From: kbuild test robot @ 2016-08-22 22:03 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: kbuild-all, linux-kernel, Mikko Rapeli
[-- Attachment #1: Type: text/plain, Size: 4398 bytes --]
Hi Mikko,
[auto build test ERROR on linus/master]
[also build test ERROR on v4.8-rc3 next-20160822]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]
url: https://github.com/0day-ci/linux/commits/Mikko-Rapeli/Userspace-compile-test-and-fixes-for-exported-uapi-header-files/20160823-034928
config: i386-tinyconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
Note: the linux-review/Mikko-Rapeli/Userspace-compile-test-and-fixes-for-exported-uapi-header-files/20160823-034928 HEAD ab90ab906304d4f306e440f4dbfa334720093b4f builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
In file included from ./usr/include/linux/errqueue.h:5:0,
from Documentation/networking/timestamping/txtimestamp.c:40:
./usr/include/linux/time.h:9:8: error: redefinition of 'struct timespec'
struct timespec {
^~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/sys/select.h:43:0,
from /usr/include/x86_64-linux-gnu/sys/types.h:219,
from /usr/include/x86_64-linux-gnu/sys/uio.h:23,
from /usr/include/x86_64-linux-gnu/sys/socket.h:26,
from /usr/include/netinet/in.h:23,
from /usr/include/arpa/inet.h:22,
from Documentation/networking/timestamping/txtimestamp.c:35:
/usr/include/time.h:120:8: note: originally defined here
struct timespec
^~~~~~~~
In file included from ./usr/include/linux/errqueue.h:5:0,
from Documentation/networking/timestamping/txtimestamp.c:40:
./usr/include/linux/time.h:15:8: error: redefinition of 'struct timeval'
struct timeval {
^~~~~~~
In file included from /usr/include/x86_64-linux-gnu/sys/select.h:45:0,
from /usr/include/x86_64-linux-gnu/sys/types.h:219,
from /usr/include/x86_64-linux-gnu/sys/uio.h:23,
from /usr/include/x86_64-linux-gnu/sys/socket.h:26,
from /usr/include/netinet/in.h:23,
from /usr/include/arpa/inet.h:22,
from Documentation/networking/timestamping/txtimestamp.c:35:
/usr/include/x86_64-linux-gnu/bits/time.h:30:8: note: originally defined here
struct timeval
^~~~~~~
In file included from Documentation/networking/timestamping/txtimestamp.c:59:0:
>> /usr/include/x86_64-linux-gnu/sys/time.h:55:8: error: redefinition of 'struct timezone'
struct timezone
^~~~~~~~
In file included from ./usr/include/linux/errqueue.h:5:0,
from Documentation/networking/timestamping/txtimestamp.c:40:
./usr/include/linux/time.h:20:8: note: originally defined here
struct timezone {
^~~~~~~~
>> ./usr/include/linux/time.h:30:22: error: expected identifier before numeric constant
#define ITIMER_REAL 0
^
In file included from Documentation/networking/timestamping/txtimestamp.c:59:0:
>> /usr/include/x86_64-linux-gnu/sys/time.h:107:8: error: redefinition of 'struct itimerval'
struct itimerval
^~~~~~~~~
In file included from ./usr/include/linux/errqueue.h:5:0,
from Documentation/networking/timestamping/txtimestamp.c:40:
./usr/include/linux/time.h:39:8: note: originally defined here
struct itimerval {
^~~~~~~~~
In file included from Documentation/networking/timestamping/txtimestamp.c:61:0:
>> /usr/include/time.h:161:8: error: redefinition of 'struct itimerspec'
struct itimerspec
^~~~~~~~~~
In file included from ./usr/include/linux/errqueue.h:5:0,
from Documentation/networking/timestamping/txtimestamp.c:40:
./usr/include/linux/time.h:34:8: note: originally defined here
struct itimerspec {
^~~~~~~~~~
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 6357 bytes --]
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 34/72] include/uapi/linux/errqueue.h: include linux/time.h
2016-08-22 18:32 ` [PATCH v05 34/72] include/uapi/linux/errqueue.h: include linux/time.h Mikko Rapeli
2016-08-22 21:32 ` kbuild test robot
2016-08-22 22:03 ` kbuild test robot
@ 2016-08-22 23:24 ` kbuild test robot
2 siblings, 0 replies; 141+ messages in thread
From: kbuild test robot @ 2016-08-22 23:24 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: kbuild-all, linux-kernel, Mikko Rapeli
[-- Attachment #1: Type: text/plain, Size: 5535 bytes --]
Hi Mikko,
[auto build test ERROR on linus/master]
[also build test ERROR on v4.8-rc3 next-20160822]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]
url: https://github.com/0day-ci/linux/commits/Mikko-Rapeli/Userspace-compile-test-and-fixes-for-exported-uapi-header-files/20160823-034928
config: x86_64-randconfig-s2-08230509 (attached as .config)
compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
Note: the linux-review/Mikko-Rapeli/Userspace-compile-test-and-fixes-for-exported-uapi-header-files/20160823-034928 HEAD ab90ab906304d4f306e440f4dbfa334720093b4f builds fine.
It only hurts bisectibility.
All error/warnings (new ones prefixed by >>):
In file included from ./usr/include/linux/errqueue.h:5,
from Documentation/networking/timestamping/timestamping.c:46:
./usr/include/linux/time.h:9: error: redefinition of 'struct timespec'
./usr/include/linux/time.h:15: error: redefinition of 'struct timeval'
./usr/include/linux/time.h:20: error: redefinition of 'struct timezone'
In file included from ./usr/include/linux/errqueue.h:5,
from Documentation/networking/timestamping/timestamping.c:46:
./usr/include/linux/time.h:30:1: warning: "ITIMER_REAL" redefined
In file included from Documentation/networking/timestamping/timestamping.c:37:
>> /usr/include/x86_64-linux-gnu/sys/time.h:95:1: warning: this is the location of the previous definition
In file included from ./usr/include/linux/errqueue.h:5,
from Documentation/networking/timestamping/timestamping.c:46:
./usr/include/linux/time.h:31:1: warning: "ITIMER_VIRTUAL" redefined
In file included from Documentation/networking/timestamping/timestamping.c:37:
/usr/include/x86_64-linux-gnu/sys/time.h:98:1: warning: this is the location of the previous definition
In file included from ./usr/include/linux/errqueue.h:5,
from Documentation/networking/timestamping/timestamping.c:46:
./usr/include/linux/time.h:32:1: warning: "ITIMER_PROF" redefined
In file included from Documentation/networking/timestamping/timestamping.c:37:
/usr/include/x86_64-linux-gnu/sys/time.h:102:1: warning: this is the location of the previous definition
./usr/include/linux/time.h:39: error: redefinition of 'struct itimerval'
Documentation/networking/timestamping/timestamping.c: In function 'sendpacket':
Documentation/networking/timestamping/timestamping.c:144: warning: passing argument 1 of 'gettimeofday' from incompatible pointer type
/usr/include/x86_64-linux-gnu/sys/time.h:71: note: expected 'struct timeval * __restrict__' but argument is of type 'struct timeval *'
Documentation/networking/timestamping/timestamping.c: In function 'printpacket':
Documentation/networking/timestamping/timestamping.c:164: warning: passing argument 1 of 'gettimeofday' from incompatible pointer type
/usr/include/x86_64-linux-gnu/sys/time.h:71: note: expected 'struct timeval * __restrict__' but argument is of type 'struct timeval *'
Documentation/networking/timestamping/timestamping.c: In function 'main':
Documentation/networking/timestamping/timestamping.c:474: warning: passing argument 1 of 'gettimeofday' from incompatible pointer type
/usr/include/x86_64-linux-gnu/sys/time.h:71: note: expected 'struct timeval * __restrict__' but argument is of type 'struct timeval *'
Documentation/networking/timestamping/timestamping.c:484: warning: passing argument 1 of 'gettimeofday' from incompatible pointer type
/usr/include/x86_64-linux-gnu/sys/time.h:71: note: expected 'struct timeval * __restrict__' but argument is of type 'struct timeval *'
Documentation/networking/timestamping/timestamping.c:499: warning: passing argument 5 of 'select' from incompatible pointer type
/usr/include/x86_64-linux-gnu/sys/select.h:106: note: expected 'struct timeval * __restrict__' but argument is of type 'struct timeval *'
Documentation/networking/timestamping/timestamping.c:500: warning: passing argument 1 of 'gettimeofday' from incompatible pointer type
/usr/include/x86_64-linux-gnu/sys/time.h:71: note: expected 'struct timeval * __restrict__' but argument is of type 'struct timeval *'
--
In file included from ./usr/include/linux/errqueue.h:5,
from Documentation/networking/timestamping/txtimestamp.c:40:
./usr/include/linux/time.h:9: error: redefinition of 'struct timespec'
./usr/include/linux/time.h:15: error: redefinition of 'struct timeval'
In file included from Documentation/networking/timestamping/txtimestamp.c:59:
/usr/include/x86_64-linux-gnu/sys/time.h:56: error: redefinition of 'struct timezone'
>> /usr/include/x86_64-linux-gnu/sys/time.h:94: error: expected identifier before numeric constant
/usr/include/x86_64-linux-gnu/sys/time.h:108: error: redefinition of 'struct itimerval'
In file included from Documentation/networking/timestamping/txtimestamp.c:61:
/usr/include/time.h:162: error: redefinition of 'struct itimerspec'
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 21931 bytes --]
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 21/72] include/uapi/linux/if_pppox.h: include linux/if.h
2016-08-22 19:37 ` Stephen Hemminger
@ 2016-08-22 23:26 ` David Miller
2016-08-23 6:41 ` Mikko Rapeli
1 sibling, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:26 UTC (permalink / raw)
To: stephen; +Cc: mikko.rapeli, linux-kernel, netdev
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 22 Aug 2016 12:37:45 -0700
> It seems your goal is that every include file should be standalone,
> i.e it must include every definition it uses.
I think this is absolutely mandatory Stephen. If you include x.h
it should just work if you use the interfaces x.h defines.
No user should have to know about dependencies, that is exactly the
job of the header file itself.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 38/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h
2016-08-22 19:39 ` Stephen Hemminger
@ 2016-08-22 23:27 ` David Miller
2016-08-23 6:49 ` Mikko Rapeli
1 sibling, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:27 UTC (permalink / raw)
To: stephen; +Cc: mikko.rapeli, linux-kernel, pshelar, netdev, dev
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 22 Aug 2016 12:39:38 -0700
> This is a a real issue, but being buried in a huge patch series of include
> file stuff I don't think anyone would see it.
It hit netdev and thus patchwork, therefore anyone watching networking
patches saw it.
I would not call it buried at all.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 22/72] include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and linux/in6.h
2016-08-22 18:32 ` [PATCH v05 22/72] include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and linux/in6.h Mikko Rapeli
@ 2016-08-22 23:28 ` David Miller
0 siblings, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:28 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, stephen, philipp, netdev
From: Mikko Rapeli <mikko.rapeli@iki.fi>
Date: Mon, 22 Aug 2016 20:32:39 +0200
> Fixes userspace compilation errors like:
>
> error: field ‘iph’ has incomplete type
> error: field ‘prefix’ has incomplete type
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 23/72] include/uapi/linux/ipv6_route.h: include linux/in6.h
2016-08-22 18:32 ` [PATCH v05 23/72] include/uapi/linux/ipv6_route.h: include linux/in6.h Mikko Rapeli
@ 2016-08-22 23:28 ` David Miller
0 siblings, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:28 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, nicolas.dichtel
From: Mikko Rapeli <mikko.rapeli@iki.fi>
Date: Mon, 22 Aug 2016 20:32:40 +0200
> Fixes userspace compile errors like:
>
> error: field ‘mf6cc_origin’ has incomplete type
> struct sockaddr_in6 mf6cc_origin; /* Origin of mcast */
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 27/72] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
2016-08-22 18:32 ` [PATCH v05 27/72] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h Mikko Rapeli
@ 2016-08-22 23:30 ` David Miller
2016-08-23 7:03 ` Frans Klaver
0 siblings, 1 reply; 141+ messages in thread
From: David Miller @ 2016-08-22 23:30 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, zhangshengju
From: Mikko Rapeli <mikko.rapeli@iki.fi>
Date: Mon, 22 Aug 2016 20:32:44 +0200
> Fixes userspace compiler error:
>
> error: ‘IFNAMSIZ’ undeclared here (not in a function)
>
> Suggested by Frans Klaver <fransklaver@gmail.com> on lkml message
> <20150530195223.GA15645@bugger.home>.
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
IFNAMSIZ has to be in linux/if.h, you aren't explaining why you have
to move it to the hdlc header instead of having the hdlc header
include linux/if.h
And if your reason is legitimate, you have to add that explanation to
the patch commit log message.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 31/72] include/uapi/linux/mroute.h: include linux/in.h
2016-08-22 18:32 ` [PATCH v05 31/72] include/uapi/linux/mroute.h: include linux/in.h Mikko Rapeli
@ 2016-08-22 23:30 ` David Miller
0 siblings, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:30 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, nikolay
From: Mikko Rapeli <mikko.rapeli@iki.fi>
Date: Mon, 22 Aug 2016 20:32:48 +0200
> Fixes userspace compile errors like:
>
> error: field ‘vifc_lcl_addr’ has incomplete type
> struct in_addr vifc_lcl_addr; /* Local interface address */
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 41/72] include/uapi/linux/atm_zatm.h: include linux/time.h
2016-08-22 18:32 ` [PATCH v05 41/72] include/uapi/linux/atm_zatm.h: include linux/time.h Mikko Rapeli
@ 2016-08-22 23:30 ` David Miller
0 siblings, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:30 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, 3chas3, linux-atm-general, netdev
From: Mikko Rapeli <mikko.rapeli@iki.fi>
Date: Mon, 22 Aug 2016 20:32:58 +0200
> Fixes userspace compile error:
>
> error: field ‘real’ has incomplete type
> struct timeval real; /* real (wall-clock) time */
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 38/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h
2016-08-22 18:32 ` [PATCH v05 38/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h Mikko Rapeli
2016-08-22 19:39 ` Stephen Hemminger
@ 2016-08-22 23:31 ` David Miller
1 sibling, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:31 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, pshelar, netdev, dev
From: Mikko Rapeli <mikko.rapeli@iki.fi>
Date: Mon, 22 Aug 2016 20:32:55 +0200
> Fixes userspace compiler error:
>
> error: unknown type name ‘uint32_t’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 25/72] include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h
2016-08-22 18:32 ` [PATCH v05 25/72] include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h Mikko Rapeli
@ 2016-08-22 23:31 ` David Miller
0 siblings, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:31 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, jchapman, netdev
From: Mikko Rapeli <mikko.rapeli@iki.fi>
Date: Mon, 22 Aug 2016 20:32:42 +0200
> Fixes userspace compilation errors like:
>
> error: field ‘addr’ has incomplete type
> struct sockaddr_in addr; /* IP address and port to send to */
> ^
> error: field ‘addr’ has incomplete type
> struct sockaddr_in6 addr; /* IP address and port to send to */
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 26/72] include/uapi/linux/if_pppox.h: include linux/in.h and linux/in6.h
2016-08-22 18:32 ` [PATCH v05 26/72] include/uapi/linux/if_pppox.h: " Mikko Rapeli
@ 2016-08-22 23:31 ` David Miller
0 siblings, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:31 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, netdev
From: Mikko Rapeli <mikko.rapeli@iki.fi>
Date: Mon, 22 Aug 2016 20:32:43 +0200
> Fixes userspace compilation errors:
>
> error: field ‘addr’ has incomplete type
> struct sockaddr_in addr; /* IP address and port to send to */
>
> error: field ‘addr’ has incomplete type
> struct sockaddr_in6 addr; /* IP address and port to send to */
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 62/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h
2016-08-22 18:33 ` [PATCH v05 62/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h Mikko Rapeli
@ 2016-08-22 23:32 ` David Miller
0 siblings, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:32 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, pshelar, netdev, dev
From: Mikko Rapeli <mikko.rapeli@iki.fi>
Date: Mon, 22 Aug 2016 20:33:19 +0200
> Kernel uapi header are supposed to use them. Fixes userspace compile error:
>
> linux/openvswitch.h:583:2: error: unknown type name ‘uint32_t’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 72/72] uapi route.h: glibc net/route.h compat fix
2016-08-22 18:33 ` [PATCH v05 72/72] uapi route.h: glibc net/route.h compat fix Mikko Rapeli
@ 2016-08-22 23:32 ` David Miller
0 siblings, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:32 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, nicolas.dichtel
You have to post this properly to the netdev list.
If netdev is not CC:'d it doesn't get properly logged in patchwork,
and won't be applied.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 66/72] uapi icmp.h: glibc netinet/ip_icmp.h header file compatibility fixes
2016-08-22 18:33 ` [PATCH v05 66/72] uapi icmp.h: glibc netinet/ip_icmp.h " Mikko Rapeli
@ 2016-08-22 23:33 ` David Miller
2016-08-23 21:21 ` Mikko Rapeli
2016-08-23 23:36 ` David Miller
1 sibling, 1 reply; 141+ messages in thread
From: David Miller @ 2016-08-22 23:33 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, edumazet, nicolas.dichtel
Must be CC:'d to netdev.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 21/72] include/uapi/linux/if_pppox.h: include linux/if.h
2016-08-22 18:32 ` [PATCH v05 21/72] include/uapi/linux/if_pppox.h: include linux/if.h Mikko Rapeli
2016-08-22 19:37 ` Stephen Hemminger
@ 2016-08-22 23:33 ` David Miller
1 sibling, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:33 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, netdev
From: Mikko Rapeli <mikko.rapeli@iki.fi>
Date: Mon, 22 Aug 2016 20:32:38 +0200
> Fixes userspace compilation error:
>
> error: ‘IFNAMSIZ’ undeclared here (not in a function)
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h header file compatibility fixes
2016-08-22 18:33 ` [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h " Mikko Rapeli
@ 2016-08-22 23:33 ` David Miller
2016-08-26 15:38 ` walter harms
1 sibling, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:33 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, ralf, nicolas.dichtel, linux-hams
Must be CC:'d to netdev.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 68/72] uapi ax25.h: glibc netax25/ax25.h header file compatibility fixes
2016-08-22 18:33 ` [PATCH v05 68/72] uapi ax25.h: glibc netax25/ax25.h " Mikko Rapeli
@ 2016-08-22 23:33 ` David Miller
0 siblings, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:33 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, ralf, nicolas.dichtel, linux-hams
Must be CC:'d to netdev.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 64/72] include/uapi/linux/ipx.h: fix conflicting defitions with glibc netipx/ipx.h
2016-08-22 18:33 ` [PATCH v05 64/72] include/uapi/linux/ipx.h: fix conflicting defitions with glibc netipx/ipx.h Mikko Rapeli
@ 2016-08-22 23:33 ` David Miller
0 siblings, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-22 23:33 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, acme, nicolas.dichtel, netdev
From: Mikko Rapeli <mikko.rapeli@iki.fi>
Date: Mon, 22 Aug 2016 20:33:21 +0200
> Fixes these compiler warnings via libc-compat.h when glibc netipx/ipx.h is
> included before linux/ipx.h:
>
> ./linux/ipx.h:9:8: error: redefinition of ‘struct sockaddr_ipx’
> ./linux/ipx.h:26:8: error: redefinition of ‘struct ipx_route_definition’
> ./linux/ipx.h:32:8: error: redefinition of ‘struct ipx_interface_definition’
> ./linux/ipx.h:49:8: error: redefinition of ‘struct ipx_config_data’
> ./linux/ipx.h:58:8: error: redefinition of ‘struct ipx_route_def’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Applied.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 37/72] include/uapi/linux/auto_fs.h: include linux/limits.h
2016-08-22 18:32 ` [PATCH v05 37/72] include/uapi/linux/auto_fs.h: include linux/limits.h Mikko Rapeli
@ 2016-08-23 0:42 ` Ian Kent
0 siblings, 0 replies; 141+ messages in thread
From: Ian Kent @ 2016-08-23 0:42 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel; +Cc: Andrew Morton
On Mon, 2016-08-22 at 20:32 +0200, Mikko Rapeli wrote:
> Fixes userspace compilation error:
>
> error: ‘NAME_MAX’ undeclared here (not in a function)
Thanks for your effort but a patch for this, from from Tomohiro Kusumi, is
currently included in the mm tree.
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/linux/auto_fs.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/include/uapi/linux/auto_fs.h b/include/uapi/linux/auto_fs.h
> index 9175a1b..1bfc3ed 100644
> --- a/include/uapi/linux/auto_fs.h
> +++ b/include/uapi/linux/auto_fs.h
> @@ -12,6 +12,7 @@
> #define _UAPI_LINUX_AUTO_FS_H
>
> #include <linux/types.h>
> +#include <linux/limits.h>
> #ifndef __KERNEL__
> #include <sys/ioctl.h>
> #endif /* __KERNEL__ */
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 47/72] include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc definitions for userspace
2016-08-22 18:33 ` [PATCH v05 47/72] include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc definitions for userspace Mikko Rapeli
@ 2016-08-23 3:08 ` kbuild test robot
2016-08-23 20:53 ` Mikko Rapeli
0 siblings, 1 reply; 141+ messages in thread
From: kbuild test robot @ 2016-08-23 3:08 UTC (permalink / raw)
To: Mikko Rapeli
Cc: kbuild-all, linux-kernel, Mikko Rapeli, Jan Harkes, coda, codalist
[-- Attachment #1: Type: text/plain, Size: 2074 bytes --]
Hi Mikko,
[auto build test ERROR on linus/master]
[also build test ERROR on v4.8-rc3]
[cannot apply to next-20160822]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]
url: https://github.com/0day-ci/linux/commits/Mikko-Rapeli/Userspace-compile-test-and-fixes-for-exported-uapi-header-files/20160823-034928
config: x86_64-randconfig-v0-08230740 (attached as .config)
compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All errors (new ones prefixed by >>):
In file included from include/linux/coda.h:64,
from fs/coda/psdev.c:45:
>> include/uapi/linux/coda.h:103: error: redefinition of typedef 'u_long'
include/linux/types.h:86: note: previous declaration of 'u_long' was here
>> include/uapi/linux/coda.h:104: error: redefinition of typedef 'u_int'
include/linux/types.h:85: note: previous declaration of 'u_int' was here
>> include/uapi/linux/coda.h:105: error: redefinition of typedef 'u_short'
include/linux/types.h:84: note: previous declaration of 'u_short' was here
>> include/uapi/linux/coda.h:106: error: redefinition of typedef 'ino_t'
include/linux/types.h:16: note: previous declaration of 'ino_t' was here
vim +/u_long +103 include/uapi/linux/coda.h
97 #endif /* !DJGPP */
98
99
100 #if defined(__linux__)
101 #include <linux/time.h>
102 #define cdev_t u_quad_t
> 103 typedef unsigned long u_long;
> 104 typedef unsigned int u_int;
> 105 typedef unsigned short u_short;
> 106 typedef u_long ino_t;
107
108 #ifndef __KERNEL__
109 typedef u_long dev_t;
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 25939 bytes --]
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 21/72] include/uapi/linux/if_pppox.h: include linux/if.h
2016-08-22 19:37 ` Stephen Hemminger
2016-08-22 23:26 ` David Miller
@ 2016-08-23 6:41 ` Mikko Rapeli
1 sibling, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-23 6:41 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: linux-kernel, netdev
On Mon, Aug 22, 2016 at 12:37:45PM -0700, Stephen Hemminger wrote:
> On Mon, 22 Aug 2016 20:32:38 +0200
> Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>
> > Fixes userspace compilation error:
> >
> > error: ‘IFNAMSIZ’ undeclared here (not in a function)
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> > ---
> > include/uapi/linux/if_pppox.h | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/include/uapi/linux/if_pppox.h b/include/uapi/linux/if_pppox.h
> > index e128769..473c3c4 100644
> > --- a/include/uapi/linux/if_pppox.h
> > +++ b/include/uapi/linux/if_pppox.h
> > @@ -21,6 +21,7 @@
> > #include <asm/byteorder.h>
> >
> > #include <linux/socket.h>
> > +#include <linux/if.h>
> > #include <linux/if_ether.h>
> > #include <linux/if_pppol2tp.h>
> >
>
> I went back to the first patch in LKML for this series.
> It seems your goal is that every include file should be standalone,
> i.e it must include every definition it uses.
>
> I disagree with this premise. It just makes things harder to maintain with
> no real gain for any existing program. What is the motivation for all this
> useless churn? Is there some silly style rule that should be fixed instead?
With over 700 uapi headers exported to userspace by Linux kernel, how
do I find out the 'correct' order of including them if they can not be
included alone? Any hints on automating that?
My first trial was to include all of the uapi headers as a single bunch to
abi checker tool which calls gcc on them, but the compilation result was
so bad and hopeless that I decided to try feeding each header file one by
one to the compiler and here I am over two years later still fixing these
issues.
I came up with the rule because to me it makes sense. Several kernel
devs agree with this approach and have accepted patches.
If your kernel subsystem uapi headers have a single entry point header file,
then all of the others can just depend on that and be done with it.
For example most (if not all) drm driver specific headers include <drm/drm.h>.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 38/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h
2016-08-22 19:39 ` Stephen Hemminger
2016-08-22 23:27 ` David Miller
@ 2016-08-23 6:49 ` Mikko Rapeli
1 sibling, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-23 6:49 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: linux-kernel, Pravin Shelar, netdev, dev
On Mon, Aug 22, 2016 at 12:39:38PM -0700, Stephen Hemminger wrote:
> On Mon, 22 Aug 2016 20:32:55 +0200
> Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>
> > Fixes userspace compiler error:
> >
> > error: unknown type name ‘uint32_t’
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> > ---
> > include/uapi/linux/openvswitch.h | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
> > index d95a301..645499a 100644
> > --- a/include/uapi/linux/openvswitch.h
> > +++ b/include/uapi/linux/openvswitch.h
> > @@ -632,8 +632,8 @@ enum ovs_hash_alg {
> > * @hash_basis: basis used for computing hash.
> > */
> > struct ovs_action_hash {
> > - uint32_t hash_alg; /* One of ovs_hash_alg. */
> > - uint32_t hash_basis;
> > + __u32 hash_alg; /* One of ovs_hash_alg. */
> > + __u32 hash_basis;
> > };
> >
> > /**
>
> This is a a real issue, but being buried in a huge patch series of include
> file stuff I don't think anyone would see it.
The mechanism for finding this issue the same as finding a missing header file
dependency: the uapi header userspace compile test.
https://lkml.org/lkml/2016/8/22/659
I'm using "scripts/get_maintainers.pl --no-rolestats" to fill in the Cc: list
for git send-email so if MAINTAINERS is uptodate, then correct lists and
maintainers should have the received the patches.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 06/72] include/uapi/linux/hsi/cs-protocol.h: include linux/time.h
2016-08-22 20:52 ` Sebastian Reichel
@ 2016-08-23 6:55 ` Mikko Rapeli
2016-08-28 7:00 ` Mikko Rapeli
1 sibling, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-23 6:55 UTC (permalink / raw)
To: Sebastian Reichel; +Cc: linux-kernel
On Mon, Aug 22, 2016 at 10:52:20PM +0200, Sebastian Reichel wrote:
> Hi,
>
> On Mon, Aug 22, 2016 at 08:32:23PM +0200, Mikko Rapeli wrote:
> > Fixes userspace compilation errors due to missing timespec definition.
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> > ---
> > include/uapi/linux/hsi/cs-protocol.h | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/include/uapi/linux/hsi/cs-protocol.h b/include/uapi/linux/hsi/cs-protocol.h
> > index f153d6e..c8d9f08 100644
> > --- a/include/uapi/linux/hsi/cs-protocol.h
> > +++ b/include/uapi/linux/hsi/cs-protocol.h
> > @@ -26,6 +26,7 @@
> >
> > #include <linux/types.h>
> > #include <linux/ioctl.h>
> > +#include <linux/time.h>
> >
> > /* chardev parameters */
> > #define CS_DEV_FILE_NAME "/dev/cmt_speech"
>
> As far as I can see there header file does not use timespec since
> I removed it roughly a year ago.
Ok, sorry I missed that. I will the need for this again.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 34/72] include/uapi/linux/errqueue.h: include linux/time.h
2016-08-22 21:32 ` kbuild test robot
@ 2016-08-23 7:02 ` Mikko Rapeli
0 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-23 7:02 UTC (permalink / raw)
To: kbuild test robot; +Cc: kbuild-all, linux-kernel
Thanks! It never occurred to me to test kernel documentation builds.
I will have a look now.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 27/72] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
2016-08-22 23:30 ` David Miller
@ 2016-08-23 7:03 ` Frans Klaver
2016-08-23 7:05 ` David Miller
0 siblings, 1 reply; 141+ messages in thread
From: Frans Klaver @ 2016-08-23 7:03 UTC (permalink / raw)
To: David Miller; +Cc: Mikko Rapeli, linux-kernel, zhangshengju
On Tue, Aug 23, 2016 at 1:30 AM, David Miller <davem@davemloft.net> wrote:
> From: Mikko Rapeli <mikko.rapeli@iki.fi>
> Date: Mon, 22 Aug 2016 20:32:44 +0200
>
>> Fixes userspace compiler error:
>>
>> error: ‘IFNAMSIZ’ undeclared here (not in a function)
>>
>> Suggested by Frans Klaver <fransklaver@gmail.com> on lkml message
>> <20150530195223.GA15645@bugger.home>.
>>
>> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>
> IFNAMSIZ has to be in linux/if.h, you aren't explaining why you have
> to move it to the hdlc header instead of having the hdlc header
> include linux/if.h
Circular references. linux/if.h includes hdlc/ioctl.h, and has to
define IFNAMSIZ before doing so. If IFNAMSIZ is moved to hdlc/ioctl.h,
it is still pulled in if one includes linux/if.h. What we gain is that
you can include hdlc/ioctl.h directly (which is what one of the tests
is already doing, iirc).
But yes, it should be explained in the commit message.
Thanks,
Frans
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 27/72] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
2016-08-23 7:03 ` Frans Klaver
@ 2016-08-23 7:05 ` David Miller
2016-08-23 8:03 ` Frans Klaver
0 siblings, 1 reply; 141+ messages in thread
From: David Miller @ 2016-08-23 7:05 UTC (permalink / raw)
To: fransklaver; +Cc: mikko.rapeli, linux-kernel, zhangshengju
From: Frans Klaver <fransklaver@gmail.com>
Date: Tue, 23 Aug 2016 09:03:20 +0200
> On Tue, Aug 23, 2016 at 1:30 AM, David Miller <davem@davemloft.net> wrote:
>> From: Mikko Rapeli <mikko.rapeli@iki.fi>
>> Date: Mon, 22 Aug 2016 20:32:44 +0200
>>
>>> Fixes userspace compiler error:
>>>
>>> error: ‘IFNAMSIZ’ undeclared here (not in a function)
>>>
>>> Suggested by Frans Klaver <fransklaver@gmail.com> on lkml message
>>> <20150530195223.GA15645@bugger.home>.
>>>
>>> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>>
>> IFNAMSIZ has to be in linux/if.h, you aren't explaining why you have
>> to move it to the hdlc header instead of having the hdlc header
>> include linux/if.h
>
> Circular references. linux/if.h includes hdlc/ioctl.h, and has to
> define IFNAMSIZ before doing so.
That's not acceptable. Use forward declarations or similar to avoid
the circular dependency.
IFNAMSIZ belongs in linux/if.h, please keep it there.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 50/72] include/uapi/linux/fuse.h: use linux/types.h also in userspace
2016-08-22 18:33 ` [PATCH v05 50/72] include/uapi/linux/fuse.h: use linux/types.h also in userspace Mikko Rapeli
@ 2016-08-23 7:16 ` Miklos Szeredi
2016-08-23 7:39 ` Mikko Rapeli
0 siblings, 1 reply; 141+ messages in thread
From: Miklos Szeredi @ 2016-08-23 7:16 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, Arnd Bergmann, linux-fsdevel
On Mon, Aug 22, 2016 at 8:33 PM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> Kernel headers should not use stdint.h.
>
NACK.
This header is used by more than one OS. Having a different version
for different OS's makes no sense, hence the choice of stdint. We've
been over this many times. I'll do a patch with a big fat warning at
the top of this header so that people don't spend time doing this
useless conversion over and over again.
Thanks,
Miklos
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Miklos Szeredi <miklos@szeredi.hu>
> ---
> include/uapi/linux/fuse.h | 452 +++++++++++++++++++++++-----------------------
> 1 file changed, 224 insertions(+), 228 deletions(-)
>
> diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h
> index 27e1736..f9eadc7 100644
> --- a/include/uapi/linux/fuse.h
> +++ b/include/uapi/linux/fuse.h
> @@ -113,11 +113,7 @@
> #ifndef _LINUX_FUSE_H
> #define _LINUX_FUSE_H
>
> -#ifdef __KERNEL__
> #include <linux/types.h>
> -#else
> -#include <stdint.h>
> -#endif
>
> /*
> * Version negotiation:
> @@ -152,42 +148,42 @@
> userspace works under 64bit kernels */
>
> struct fuse_attr {
> - uint64_t ino;
> - uint64_t size;
> - uint64_t blocks;
> - uint64_t atime;
> - uint64_t mtime;
> - uint64_t ctime;
> - uint32_t atimensec;
> - uint32_t mtimensec;
> - uint32_t ctimensec;
> - uint32_t mode;
> - uint32_t nlink;
> - uint32_t uid;
> - uint32_t gid;
> - uint32_t rdev;
> - uint32_t blksize;
> - uint32_t padding;
> + __u64 ino;
> + __u64 size;
> + __u64 blocks;
> + __u64 atime;
> + __u64 mtime;
> + __u64 ctime;
> + __u32 atimensec;
> + __u32 mtimensec;
> + __u32 ctimensec;
> + __u32 mode;
> + __u32 nlink;
> + __u32 uid;
> + __u32 gid;
> + __u32 rdev;
> + __u32 blksize;
> + __u32 padding;
> };
>
> struct fuse_kstatfs {
> - uint64_t blocks;
> - uint64_t bfree;
> - uint64_t bavail;
> - uint64_t files;
> - uint64_t ffree;
> - uint32_t bsize;
> - uint32_t namelen;
> - uint32_t frsize;
> - uint32_t padding;
> - uint32_t spare[6];
> + __u64 blocks;
> + __u64 bfree;
> + __u64 bavail;
> + __u64 files;
> + __u64 ffree;
> + __u32 bsize;
> + __u32 namelen;
> + __u32 frsize;
> + __u32 padding;
> + __u32 spare[6];
> };
>
> struct fuse_file_lock {
> - uint64_t start;
> - uint64_t end;
> - uint32_t type;
> - uint32_t pid; /* tgid */
> + __u64 start;
> + __u64 end;
> + __u32 type;
> + __u32 pid; /* tgid */
> };
>
> /**
> @@ -388,149 +384,149 @@ enum fuse_notify_code {
> #define FUSE_COMPAT_ENTRY_OUT_SIZE 120
>
> struct fuse_entry_out {
> - uint64_t nodeid; /* Inode ID */
> - uint64_t generation; /* Inode generation: nodeid:gen must
> + __u64 nodeid; /* Inode ID */
> + __u64 generation; /* Inode generation: nodeid:gen must
> be unique for the fs's lifetime */
> - uint64_t entry_valid; /* Cache timeout for the name */
> - uint64_t attr_valid; /* Cache timeout for the attributes */
> - uint32_t entry_valid_nsec;
> - uint32_t attr_valid_nsec;
> + __u64 entry_valid; /* Cache timeout for the name */
> + __u64 attr_valid; /* Cache timeout for the attributes */
> + __u32 entry_valid_nsec;
> + __u32 attr_valid_nsec;
> struct fuse_attr attr;
> };
>
> struct fuse_forget_in {
> - uint64_t nlookup;
> + __u64 nlookup;
> };
>
> struct fuse_forget_one {
> - uint64_t nodeid;
> - uint64_t nlookup;
> + __u64 nodeid;
> + __u64 nlookup;
> };
>
> struct fuse_batch_forget_in {
> - uint32_t count;
> - uint32_t dummy;
> + __u32 count;
> + __u32 dummy;
> };
>
> struct fuse_getattr_in {
> - uint32_t getattr_flags;
> - uint32_t dummy;
> - uint64_t fh;
> + __u32 getattr_flags;
> + __u32 dummy;
> + __u64 fh;
> };
>
> #define FUSE_COMPAT_ATTR_OUT_SIZE 96
>
> struct fuse_attr_out {
> - uint64_t attr_valid; /* Cache timeout for the attributes */
> - uint32_t attr_valid_nsec;
> - uint32_t dummy;
> + __u64 attr_valid; /* Cache timeout for the attributes */
> + __u32 attr_valid_nsec;
> + __u32 dummy;
> struct fuse_attr attr;
> };
>
> #define FUSE_COMPAT_MKNOD_IN_SIZE 8
>
> struct fuse_mknod_in {
> - uint32_t mode;
> - uint32_t rdev;
> - uint32_t umask;
> - uint32_t padding;
> + __u32 mode;
> + __u32 rdev;
> + __u32 umask;
> + __u32 padding;
> };
>
> struct fuse_mkdir_in {
> - uint32_t mode;
> - uint32_t umask;
> + __u32 mode;
> + __u32 umask;
> };
>
> struct fuse_rename_in {
> - uint64_t newdir;
> + __u64 newdir;
> };
>
> struct fuse_rename2_in {
> - uint64_t newdir;
> - uint32_t flags;
> - uint32_t padding;
> + __u64 newdir;
> + __u32 flags;
> + __u32 padding;
> };
>
> struct fuse_link_in {
> - uint64_t oldnodeid;
> + __u64 oldnodeid;
> };
>
> struct fuse_setattr_in {
> - uint32_t valid;
> - uint32_t padding;
> - uint64_t fh;
> - uint64_t size;
> - uint64_t lock_owner;
> - uint64_t atime;
> - uint64_t mtime;
> - uint64_t ctime;
> - uint32_t atimensec;
> - uint32_t mtimensec;
> - uint32_t ctimensec;
> - uint32_t mode;
> - uint32_t unused4;
> - uint32_t uid;
> - uint32_t gid;
> - uint32_t unused5;
> + __u32 valid;
> + __u32 padding;
> + __u64 fh;
> + __u64 size;
> + __u64 lock_owner;
> + __u64 atime;
> + __u64 mtime;
> + __u64 ctime;
> + __u32 atimensec;
> + __u32 mtimensec;
> + __u32 ctimensec;
> + __u32 mode;
> + __u32 unused4;
> + __u32 uid;
> + __u32 gid;
> + __u32 unused5;
> };
>
> struct fuse_open_in {
> - uint32_t flags;
> - uint32_t unused;
> + __u32 flags;
> + __u32 unused;
> };
>
> struct fuse_create_in {
> - uint32_t flags;
> - uint32_t mode;
> - uint32_t umask;
> - uint32_t padding;
> + __u32 flags;
> + __u32 mode;
> + __u32 umask;
> + __u32 padding;
> };
>
> struct fuse_open_out {
> - uint64_t fh;
> - uint32_t open_flags;
> - uint32_t padding;
> + __u64 fh;
> + __u32 open_flags;
> + __u32 padding;
> };
>
> struct fuse_release_in {
> - uint64_t fh;
> - uint32_t flags;
> - uint32_t release_flags;
> - uint64_t lock_owner;
> + __u64 fh;
> + __u32 flags;
> + __u32 release_flags;
> + __u64 lock_owner;
> };
>
> struct fuse_flush_in {
> - uint64_t fh;
> - uint32_t unused;
> - uint32_t padding;
> - uint64_t lock_owner;
> + __u64 fh;
> + __u32 unused;
> + __u32 padding;
> + __u64 lock_owner;
> };
>
> struct fuse_read_in {
> - uint64_t fh;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t read_flags;
> - uint64_t lock_owner;
> - uint32_t flags;
> - uint32_t padding;
> + __u64 fh;
> + __u64 offset;
> + __u32 size;
> + __u32 read_flags;
> + __u64 lock_owner;
> + __u32 flags;
> + __u32 padding;
> };
>
> #define FUSE_COMPAT_WRITE_IN_SIZE 24
>
> struct fuse_write_in {
> - uint64_t fh;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t write_flags;
> - uint64_t lock_owner;
> - uint32_t flags;
> - uint32_t padding;
> + __u64 fh;
> + __u64 offset;
> + __u32 size;
> + __u32 write_flags;
> + __u64 lock_owner;
> + __u32 flags;
> + __u32 padding;
> };
>
> struct fuse_write_out {
> - uint32_t size;
> - uint32_t padding;
> + __u32 size;
> + __u32 padding;
> };
>
> #define FUSE_COMPAT_STATFS_SIZE 48
> @@ -540,32 +536,32 @@ struct fuse_statfs_out {
> };
>
> struct fuse_fsync_in {
> - uint64_t fh;
> - uint32_t fsync_flags;
> - uint32_t padding;
> + __u64 fh;
> + __u32 fsync_flags;
> + __u32 padding;
> };
>
> struct fuse_setxattr_in {
> - uint32_t size;
> - uint32_t flags;
> + __u32 size;
> + __u32 flags;
> };
>
> struct fuse_getxattr_in {
> - uint32_t size;
> - uint32_t padding;
> + __u32 size;
> + __u32 padding;
> };
>
> struct fuse_getxattr_out {
> - uint32_t size;
> - uint32_t padding;
> + __u32 size;
> + __u32 padding;
> };
>
> struct fuse_lk_in {
> - uint64_t fh;
> - uint64_t owner;
> + __u64 fh;
> + __u64 owner;
> struct fuse_file_lock lk;
> - uint32_t lk_flags;
> - uint32_t padding;
> + __u32 lk_flags;
> + __u32 padding;
> };
>
> struct fuse_lk_out {
> @@ -573,140 +569,140 @@ struct fuse_lk_out {
> };
>
> struct fuse_access_in {
> - uint32_t mask;
> - uint32_t padding;
> + __u32 mask;
> + __u32 padding;
> };
>
> struct fuse_init_in {
> - uint32_t major;
> - uint32_t minor;
> - uint32_t max_readahead;
> - uint32_t flags;
> + __u32 major;
> + __u32 minor;
> + __u32 max_readahead;
> + __u32 flags;
> };
>
> #define FUSE_COMPAT_INIT_OUT_SIZE 8
> #define FUSE_COMPAT_22_INIT_OUT_SIZE 24
>
> struct fuse_init_out {
> - uint32_t major;
> - uint32_t minor;
> - uint32_t max_readahead;
> - uint32_t flags;
> - uint16_t max_background;
> - uint16_t congestion_threshold;
> - uint32_t max_write;
> - uint32_t time_gran;
> - uint32_t unused[9];
> + __u32 major;
> + __u32 minor;
> + __u32 max_readahead;
> + __u32 flags;
> + __u16 max_background;
> + __u16 congestion_threshold;
> + __u32 max_write;
> + __u32 time_gran;
> + __u32 unused[9];
> };
>
> #define CUSE_INIT_INFO_MAX 4096
>
> struct cuse_init_in {
> - uint32_t major;
> - uint32_t minor;
> - uint32_t unused;
> - uint32_t flags;
> + __u32 major;
> + __u32 minor;
> + __u32 unused;
> + __u32 flags;
> };
>
> struct cuse_init_out {
> - uint32_t major;
> - uint32_t minor;
> - uint32_t unused;
> - uint32_t flags;
> - uint32_t max_read;
> - uint32_t max_write;
> - uint32_t dev_major; /* chardev major */
> - uint32_t dev_minor; /* chardev minor */
> - uint32_t spare[10];
> + __u32 major;
> + __u32 minor;
> + __u32 unused;
> + __u32 flags;
> + __u32 max_read;
> + __u32 max_write;
> + __u32 dev_major; /* chardev major */
> + __u32 dev_minor; /* chardev minor */
> + __u32 spare[10];
> };
>
> struct fuse_interrupt_in {
> - uint64_t unique;
> + __u64 unique;
> };
>
> struct fuse_bmap_in {
> - uint64_t block;
> - uint32_t blocksize;
> - uint32_t padding;
> + __u64 block;
> + __u32 blocksize;
> + __u32 padding;
> };
>
> struct fuse_bmap_out {
> - uint64_t block;
> + __u64 block;
> };
>
> struct fuse_ioctl_in {
> - uint64_t fh;
> - uint32_t flags;
> - uint32_t cmd;
> - uint64_t arg;
> - uint32_t in_size;
> - uint32_t out_size;
> + __u64 fh;
> + __u32 flags;
> + __u32 cmd;
> + __u64 arg;
> + __u32 in_size;
> + __u32 out_size;
> };
>
> struct fuse_ioctl_iovec {
> - uint64_t base;
> - uint64_t len;
> + __u64 base;
> + __u64 len;
> };
>
> struct fuse_ioctl_out {
> - int32_t result;
> - uint32_t flags;
> - uint32_t in_iovs;
> - uint32_t out_iovs;
> + __s32 result;
> + __u32 flags;
> + __u32 in_iovs;
> + __u32 out_iovs;
> };
>
> struct fuse_poll_in {
> - uint64_t fh;
> - uint64_t kh;
> - uint32_t flags;
> - uint32_t events;
> + __u64 fh;
> + __u64 kh;
> + __u32 flags;
> + __u32 events;
> };
>
> struct fuse_poll_out {
> - uint32_t revents;
> - uint32_t padding;
> + __u32 revents;
> + __u32 padding;
> };
>
> struct fuse_notify_poll_wakeup_out {
> - uint64_t kh;
> + __u64 kh;
> };
>
> struct fuse_fallocate_in {
> - uint64_t fh;
> - uint64_t offset;
> - uint64_t length;
> - uint32_t mode;
> - uint32_t padding;
> + __u64 fh;
> + __u64 offset;
> + __u64 length;
> + __u32 mode;
> + __u32 padding;
> };
>
> struct fuse_in_header {
> - uint32_t len;
> - uint32_t opcode;
> - uint64_t unique;
> - uint64_t nodeid;
> - uint32_t uid;
> - uint32_t gid;
> - uint32_t pid;
> - uint32_t padding;
> + __u32 len;
> + __u32 opcode;
> + __u64 unique;
> + __u64 nodeid;
> + __u32 uid;
> + __u32 gid;
> + __u32 pid;
> + __u32 padding;
> };
>
> struct fuse_out_header {
> - uint32_t len;
> - int32_t error;
> - uint64_t unique;
> + __u32 len;
> + __s32 error;
> + __u64 unique;
> };
>
> struct fuse_dirent {
> - uint64_t ino;
> - uint64_t off;
> - uint32_t namelen;
> - uint32_t type;
> + __u64 ino;
> + __u64 off;
> + __u32 namelen;
> + __u32 type;
> char name[];
> };
>
> #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
> #define FUSE_DIRENT_ALIGN(x) \
> - (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
> + (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1))
> #define FUSE_DIRENT_SIZE(d) \
> FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
>
> @@ -721,61 +717,61 @@ struct fuse_direntplus {
> FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen)
>
> struct fuse_notify_inval_inode_out {
> - uint64_t ino;
> - int64_t off;
> - int64_t len;
> + __u64 ino;
> + __s64 off;
> + __s64 len;
> };
>
> struct fuse_notify_inval_entry_out {
> - uint64_t parent;
> - uint32_t namelen;
> - uint32_t padding;
> + __u64 parent;
> + __u32 namelen;
> + __u32 padding;
> };
>
> struct fuse_notify_delete_out {
> - uint64_t parent;
> - uint64_t child;
> - uint32_t namelen;
> - uint32_t padding;
> + __u64 parent;
> + __u64 child;
> + __u32 namelen;
> + __u32 padding;
> };
>
> struct fuse_notify_store_out {
> - uint64_t nodeid;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t padding;
> + __u64 nodeid;
> + __u64 offset;
> + __u32 size;
> + __u32 padding;
> };
>
> struct fuse_notify_retrieve_out {
> - uint64_t notify_unique;
> - uint64_t nodeid;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t padding;
> + __u64 notify_unique;
> + __u64 nodeid;
> + __u64 offset;
> + __u32 size;
> + __u32 padding;
> };
>
> /* Matches the size of fuse_write_in */
> struct fuse_notify_retrieve_in {
> - uint64_t dummy1;
> - uint64_t offset;
> - uint32_t size;
> - uint32_t dummy2;
> - uint64_t dummy3;
> - uint64_t dummy4;
> + __u64 dummy1;
> + __u64 offset;
> + __u32 size;
> + __u32 dummy2;
> + __u64 dummy3;
> + __u64 dummy4;
> };
>
> /* Device ioctls: */
> -#define FUSE_DEV_IOC_CLONE _IOR(229, 0, uint32_t)
> +#define FUSE_DEV_IOC_CLONE _IOR(229, 0, __u32)
>
> struct fuse_lseek_in {
> - uint64_t fh;
> - uint64_t offset;
> - uint32_t whence;
> - uint32_t padding;
> + __u64 fh;
> + __u64 offset;
> + __u32 whence;
> + __u32 padding;
> };
>
> struct fuse_lseek_out {
> - uint64_t offset;
> + __u64 offset;
> };
>
> #endif /* _LINUX_FUSE_H */
> --
> 2.8.1
>
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 50/72] include/uapi/linux/fuse.h: use linux/types.h also in userspace
2016-08-23 7:16 ` Miklos Szeredi
@ 2016-08-23 7:39 ` Mikko Rapeli
0 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-23 7:39 UTC (permalink / raw)
To: Miklos Szeredi; +Cc: linux-kernel, Arnd Bergmann, linux-fsdevel
On Tue, Aug 23, 2016 at 09:16:22AM +0200, Miklos Szeredi wrote:
> On Mon, Aug 22, 2016 at 8:33 PM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> > Kernel headers should not use stdint.h.
> >
>
> NACK.
>
> This header is used by more than one OS. Having a different version
> for different OS's makes no sense, hence the choice of stdint. We've
> been over this many times. I'll do a patch with a big fat warning at
> the top of this header so that people don't spend time doing this
> useless conversion over and over again.
Yes, saw this coming. drm developers have the same problem.
Is there some way to define which kernel uapi headers are allowed to use
stdint.h definitions in userspace and which not?
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 27/72] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
2016-08-23 7:05 ` David Miller
@ 2016-08-23 8:03 ` Frans Klaver
2016-08-24 6:57 ` Frans Klaver
0 siblings, 1 reply; 141+ messages in thread
From: Frans Klaver @ 2016-08-23 8:03 UTC (permalink / raw)
To: David Miller; +Cc: Mikko Rapeli, linux-kernel, zhangshengju
On Tue, Aug 23, 2016 at 9:05 AM, David Miller <davem@davemloft.net> wrote:
> From: Frans Klaver <fransklaver@gmail.com>
> Date: Tue, 23 Aug 2016 09:03:20 +0200
>
>> On Tue, Aug 23, 2016 at 1:30 AM, David Miller <davem@davemloft.net> wrote:
>>> From: Mikko Rapeli <mikko.rapeli@iki.fi>
>>> Date: Mon, 22 Aug 2016 20:32:44 +0200
>>>
>>>> Fixes userspace compiler error:
>>>>
>>>> error: ‘IFNAMSIZ’ undeclared here (not in a function)
>>>>
>>>> Suggested by Frans Klaver <fransklaver@gmail.com> on lkml message
>>>> <20150530195223.GA15645@bugger.home>.
>>>>
>>>> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>>>
>>> IFNAMSIZ has to be in linux/if.h, you aren't explaining why you have
>>> to move it to the hdlc header instead of having the hdlc header
>>> include linux/if.h
>>
>> Circular references. linux/if.h includes hdlc/ioctl.h, and has to
>> define IFNAMSIZ before doing so.
>
> That's not acceptable. Use forward declarations or similar to avoid
> the circular dependency.
>
> IFNAMSIZ belongs in linux/if.h, please keep it there.
I went back to one of the previous patch sets, but couldn't find why
the circular dependency had to be broken. So if this can be fixed by
including linux/if.h instead, I'm all for it.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 54/72] include/uapi/xen/privcmd.h: fix compilation in userspace
2016-08-22 18:33 ` [PATCH v05 54/72] include/uapi/xen/privcmd.h: fix compilation in userspace Mikko Rapeli
@ 2016-08-23 10:02 ` Russell King - ARM Linux
2016-08-23 18:13 ` Stefano Stabellini
0 siblings, 1 reply; 141+ messages in thread
From: Russell King - ARM Linux @ 2016-08-23 10:02 UTC (permalink / raw)
To: Mikko Rapeli
Cc: linux-kernel, David Vrabel, Stefano Stabellini, Boris Ostrovsky,
Juergen Gross, xen-devel, linux-arm-kernel
On Mon, Aug 22, 2016 at 08:33:11PM +0200, Mikko Rapeli wrote:
> xen/interface/xen.h is not exported from kernel headers so remove the
> dependency and provide needed defines for domid_t and xen_pfn_t if they
> are not already defined by some other e.g. Xen specific headers.
I'm confused. How did we end up with a 64-bit PFN number on ARM? It's
insane - especially as the kernel uses "unsigned long" almost everywhere
for PFNs - we can't have physical addresses more than 44 bits (32 bit
pfn + 4k page size).
> Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
> <5569F9C9.8000607@citrix.com>.
>
> The ifdef for ARM is ugly but did not find better solutions for it.
#ifdef __arm__
maybe? Even if not, the unsightly parens are not necessary.
--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [dm-devel] [PATCH v05 04/72] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h
2016-08-22 18:32 ` [PATCH v05 04/72] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h Mikko Rapeli
@ 2016-08-23 13:57 ` Bart Van Assche
2016-08-23 14:28 ` Bart Van Assche
0 siblings, 1 reply; 141+ messages in thread
From: Bart Van Assche @ 2016-08-23 13:57 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel; +Cc: dm-devel, Mike Snitzer, Alasdair Kergon
On 08/22/16 11:32, Mikko Rapeli wrote:
> - * uint32_t (*get_region_size)(struct dm_dirty_log *log);
> + * __u32 (*get_region_size)(struct dm_dirty_log *log);
uint32_t is a type that is defined by ANSI C but __u32 not. So this
change looks wrong to me. Would it have been sufficient to add "#include
<linux/types.h>" and keep the uint32_t etc. type names?
Bart.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [dm-devel] [PATCH v05 04/72] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h
2016-08-23 13:57 ` [dm-devel] " Bart Van Assche
@ 2016-08-23 14:28 ` Bart Van Assche
2016-08-23 20:42 ` Mikko Rapeli
0 siblings, 1 reply; 141+ messages in thread
From: Bart Van Assche @ 2016-08-23 14:28 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel; +Cc: dm-devel, Mike Snitzer, Alasdair Kergon
On 08/23/16 06:57, Bart Van Assche wrote:
> On 08/22/16 11:32, Mikko Rapeli wrote:
>> - * uint32_t (*get_region_size)(struct dm_dirty_log *log);
>> + * __u32 (*get_region_size)(struct dm_dirty_log *log);
>
> uint32_t is a type that is defined by ANSI C but __u32 not. So this
> change looks wrong to me. Would it have been sufficient to add "#include
> <linux/types.h>" and keep the uint32_t etc. type names?
Answering my own question: adding "#include <linux/types.h>" wouldn't be
sufficient. How about adding the following code that also occurs in a
few other uapi header files?
#ifndef __KERNEL__
#include <stdint.h>
#endif
#include <linux/types.h>
Bart.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 61/72] include/uapi/rdma/rdma_user_rxe.h: include in.h and in6.h
2016-08-22 18:33 ` [PATCH v05 61/72] include/uapi/rdma/rdma_user_rxe.h: include in.h and in6.h Mikko Rapeli
@ 2016-08-23 15:03 ` Doug Ledford
2016-08-25 14:00 ` Moni Shoua
1 sibling, 0 replies; 141+ messages in thread
From: Doug Ledford @ 2016-08-23 15:03 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel
Cc: Moni Shoua, Sean Hefty, Hal Rosenstock, linux-rdma
[-- Attachment #1.1: Type: text/plain, Size: 925 bytes --]
On 8/22/2016 2:33 PM, Mikko Rapeli wrote:
> Fixes these userspace compilation errors when rdma_user_rxe.h is compiled
> alone:
>
> rdma/rdma_user_rxe.h:59:20: error: field ‘_sockaddr’ has incomplete type
> struct sockaddr _sockaddr;
> ^~~~~~~~~
> rdma/rdma_user_rxe.h:60:22: error: field ‘_sockaddr_in’ has incomplete type
> struct sockaddr_in _sockaddr_in;
> ^~~~~~~~~~~~
> rdma/rdma_user_rxe.h:61:23: error: field ‘_sockaddr_in6’ has incomplete type
> struct sockaddr_in6 _sockaddr_in6;
> ^~~~~~~~~~~~~
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/rdma/rdma_user_rxe.h | 2 ++
> 1 file changed, 2 insertions(+)
for the rxe portion of this much larger patchset:
Acked-by: Doug Ledford <dledford@redhat.com>
--
Doug Ledford <dledford@redhat.com>
GPG Key ID: 0E572FDD
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 54/72] include/uapi/xen/privcmd.h: fix compilation in userspace
2016-08-23 10:02 ` Russell King - ARM Linux
@ 2016-08-23 18:13 ` Stefano Stabellini
2016-08-23 20:38 ` Mikko Rapeli
0 siblings, 1 reply; 141+ messages in thread
From: Stefano Stabellini @ 2016-08-23 18:13 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: Mikko Rapeli, linux-kernel, David Vrabel, Stefano Stabellini,
Boris Ostrovsky, Juergen Gross, xen-devel, linux-arm-kernel
On Tue, 23 Aug 2016, Russell King - ARM Linux wrote:
> On Mon, Aug 22, 2016 at 08:33:11PM +0200, Mikko Rapeli wrote:
> > xen/interface/xen.h is not exported from kernel headers so remove the
> > dependency and provide needed defines for domid_t and xen_pfn_t if they
> > are not already defined by some other e.g. Xen specific headers.
>
> I'm confused. How did we end up with a 64-bit PFN number on ARM? It's
> insane - especially as the kernel uses "unsigned long" almost everywhere
> for PFNs - we can't have physical addresses more than 44 bits (32 bit
> pfn + 4k page size).
That's because xen_pfn_t is the type used to store pfns in structures
passed to Xen via hypercalls. The Xen hypercall ABI is shared between
ARM and ARM64. On x86_32 and x86_64 we have different sizes for pfn
types in the hypercall ABI and it caused quite a bit of trouble in the
past as it is possible to run 32bit domains on a 64bit hypervisor.
Having a common type for pfns on ARM and ARM64 helped a lot in that
respect.
> > Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
> > <5569F9C9.8000607@citrix.com>.
> >
> > The ifdef for ARM is ugly but did not find better solutions for it.
>
> #ifdef __arm__
>
> maybe? Even if not, the unsightly parens are not necessary.
Yes, I think it should be:
#if defined(__arm__) || defined(__aarch64__)
> diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
> index 75d5968..6898ee1 100644
> --- a/arch/arm/include/asm/xen/interface.h
> +++ b/arch/arm/include/asm/xen/interface.h
> @@ -38,7 +38,7 @@
> * fine since it simply wouldn't be able to create any sure pfns in
> * the first place.
> */
> -typedef uint64_t xen_pfn_t;
> +typedef __u64 xen_pfn_t;
> #define PRI_xen_pfn "llx"
> typedef uint64_t xen_ulong_t;
> #define PRI_xen_ulong "llx"
Why this change?
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 54/72] include/uapi/xen/privcmd.h: fix compilation in userspace
2016-08-23 18:13 ` Stefano Stabellini
@ 2016-08-23 20:38 ` Mikko Rapeli
2016-08-23 21:06 ` Stefano Stabellini
0 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-23 20:38 UTC (permalink / raw)
To: Stefano Stabellini
Cc: Russell King - ARM Linux, linux-kernel, David Vrabel,
Boris Ostrovsky, Juergen Gross, xen-devel, linux-arm-kernel
On Tue, Aug 23, 2016 at 11:13:52AM -0700, Stefano Stabellini wrote:
> On Tue, 23 Aug 2016, Russell King - ARM Linux wrote:
> > On Mon, Aug 22, 2016 at 08:33:11PM +0200, Mikko Rapeli wrote:
> > > xen/interface/xen.h is not exported from kernel headers so remove the
> > > dependency and provide needed defines for domid_t and xen_pfn_t if they
> > > are not already defined by some other e.g. Xen specific headers.
> >
> > I'm confused. How did we end up with a 64-bit PFN number on ARM? It's
> > insane - especially as the kernel uses "unsigned long" almost everywhere
> > for PFNs - we can't have physical addresses more than 44 bits (32 bit
> > pfn + 4k page size).
>
> That's because xen_pfn_t is the type used to store pfns in structures
> passed to Xen via hypercalls. The Xen hypercall ABI is shared between
> ARM and ARM64. On x86_32 and x86_64 we have different sizes for pfn
> types in the hypercall ABI and it caused quite a bit of trouble in the
> past as it is possible to run 32bit domains on a 64bit hypervisor.
> Having a common type for pfns on ARM and ARM64 helped a lot in that
> respect.
>
>
> > > Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
> > > <5569F9C9.8000607@citrix.com>.
> > >
> > > The ifdef for ARM is ugly but did not find better solutions for it.
> >
> > #ifdef __arm__
> >
> > maybe? Even if not, the unsightly parens are not necessary.
>
> Yes, I think it should be:
>
> #if defined(__arm__) || defined(__aarch64__)
Thanks, I will send a new version with this change.
> > diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
> > index 75d5968..6898ee1 100644
> > --- a/arch/arm/include/asm/xen/interface.h
> > +++ b/arch/arm/include/asm/xen/interface.h
> > @@ -38,7 +38,7 @@
> > * fine since it simply wouldn't be able to create any sure pfns in
> > * the first place.
> > */
> > -typedef uint64_t xen_pfn_t;
> > +typedef __u64 xen_pfn_t;
> > #define PRI_xen_pfn "llx"
> > typedef uint64_t xen_ulong_t;
> > #define PRI_xen_ulong "llx"
>
> Why this change?
I will double check but I think the other fix exposed then the common
"<stdint.h> definitions not available in userspace <linux/types.h>" and this
was needed to please the compiler. If so, I'll add this to commit message.
If you would prefer to include libc's <stdint.h> in userspace, well, join the
club. drm and fuse maintainers want the same but my patches with those fixes got
rejected in the past. Example: https://lkml.org/lkml/2015/6/1/160
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [dm-devel] [PATCH v05 04/72] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h
2016-08-23 14:28 ` Bart Van Assche
@ 2016-08-23 20:42 ` Mikko Rapeli
2016-08-25 4:24 ` Bart Van Assche
0 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-23 20:42 UTC (permalink / raw)
To: Bart Van Assche; +Cc: linux-kernel, dm-devel, Mike Snitzer, Alasdair Kergon
On Tue, Aug 23, 2016 at 02:28:19PM +0000, Bart Van Assche wrote:
> On 08/23/16 06:57, Bart Van Assche wrote:
> > On 08/22/16 11:32, Mikko Rapeli wrote:
> >> - * uint32_t (*get_region_size)(struct dm_dirty_log *log);
> >> + * __u32 (*get_region_size)(struct dm_dirty_log *log);
> >
> > uint32_t is a type that is defined by ANSI C but __u32 not. So this
> > change looks wrong to me. Would it have been sufficient to add "#include
> > <linux/types.h>" and keep the uint32_t etc. type names?
>
> Answering my own question: adding "#include <linux/types.h>" wouldn't be
> sufficient. How about adding the following code that also occurs in a
> few other uapi header files?
>
> #ifndef __KERNEL__
> #include <stdint.h>
> #endif
> #include <linux/types.h>
I have tried that before but I was instructed to use the linux/types.h
versions. For example https://lkml.org/lkml/2015/6/1/160
But lately drm and fuse and some others have questioned this approach and
would like to use/continue using C99 stdint.h types.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 08/72] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h
2016-08-22 18:52 ` Sowmini Varadhan
@ 2016-08-23 20:46 ` Mikko Rapeli
0 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-23 20:46 UTC (permalink / raw)
To: Sowmini Varadhan; +Cc: linux-kernel
On Mon, Aug 22, 2016 at 02:52:58PM -0400, Sowmini Varadhan wrote:
> On (08/22/16 20:32), Mikko Rapeli wrote:
> >
> > Fixes userspace compilation errors like:
> >
> > linux/rds.h:96:2: error: unknown type name ‘uint8_t’
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>
> Acked-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
>
> I think we discussed this some time before, and I certainly
> dont have any religious opinions about it, but I would like
> to point out that this means that the exported rds.h will
> expose __<type> to user space applications.
Thanks. I'm also not religious but patches to include <stdint.h> in userspace
side were previously rejected with arguments like
https://lkml.org/lkml/2015/6/1/160
Thus I've been sending linux/types.h conversion patches.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 47/72] include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc definitions for userspace
2016-08-23 3:08 ` kbuild test robot
@ 2016-08-23 20:53 ` Mikko Rapeli
0 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-23 20:53 UTC (permalink / raw)
To: kbuild test robot; +Cc: kbuild-all, linux-kernel, Jan Harkes, coda, codalist
On Tue, Aug 23, 2016 at 11:08:06AM +0800, kbuild test robot wrote:
> Hi Mikko,
>
> [auto build test ERROR on linus/master]
> [also build test ERROR on v4.8-rc3]
> [cannot apply to next-20160822]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
> [Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
> [Check https://git-scm.com/docs/git-format-patch for more information]
>
> url: https://github.com/0day-ci/linux/commits/Mikko-Rapeli/Userspace-compile-test-and-fixes-for-exported-uapi-header-files/20160823-034928
> config: x86_64-randconfig-v0-08230740 (attached as .config)
> compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
> reproduce:
> # save the attached .config to linux build tree
> make ARCH=x86_64
>
> All errors (new ones prefixed by >>):
>
> In file included from include/linux/coda.h:64,
> from fs/coda/psdev.c:45:
> >> include/uapi/linux/coda.h:103: error: redefinition of typedef 'u_long'
> include/linux/types.h:86: note: previous declaration of 'u_long' was here
> >> include/uapi/linux/coda.h:104: error: redefinition of typedef 'u_int'
> include/linux/types.h:85: note: previous declaration of 'u_int' was here
> >> include/uapi/linux/coda.h:105: error: redefinition of typedef 'u_short'
> include/linux/types.h:84: note: previous declaration of 'u_short' was here
> >> include/uapi/linux/coda.h:106: error: redefinition of typedef 'ino_t'
> include/linux/types.h:16: note: previous declaration of 'ino_t' was here
>
> vim +/u_long +103 include/uapi/linux/coda.h
>
> 97 #endif /* !DJGPP */
> 98
> 99
> 100 #if defined(__linux__)
> 101 #include <linux/time.h>
> 102 #define cdev_t u_quad_t
> > 103 typedef unsigned long u_long;
> > 104 typedef unsigned int u_int;
> > 105 typedef unsigned short u_short;
> > 106 typedef u_long ino_t;
Thanks! I'll move these to #ifndef __KERNEL__ side and try to detect if
they are already defined by userspace headers.
-Mikko
> 107
> 108 #ifndef __KERNEL__
> 109 typedef u_long dev_t;
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 54/72] include/uapi/xen/privcmd.h: fix compilation in userspace
2016-08-23 20:38 ` Mikko Rapeli
@ 2016-08-23 21:06 ` Stefano Stabellini
0 siblings, 0 replies; 141+ messages in thread
From: Stefano Stabellini @ 2016-08-23 21:06 UTC (permalink / raw)
To: Mikko Rapeli
Cc: Stefano Stabellini, Russell King - ARM Linux, linux-kernel,
David Vrabel, Boris Ostrovsky, Juergen Gross, xen-devel,
linux-arm-kernel
On Tue, 23 Aug 2016, Mikko Rapeli wrote:
> On Tue, Aug 23, 2016 at 11:13:52AM -0700, Stefano Stabellini wrote:
> > On Tue, 23 Aug 2016, Russell King - ARM Linux wrote:
> > > On Mon, Aug 22, 2016 at 08:33:11PM +0200, Mikko Rapeli wrote:
> > > > xen/interface/xen.h is not exported from kernel headers so remove the
> > > > dependency and provide needed defines for domid_t and xen_pfn_t if they
> > > > are not already defined by some other e.g. Xen specific headers.
> > >
> > > I'm confused. How did we end up with a 64-bit PFN number on ARM? It's
> > > insane - especially as the kernel uses "unsigned long" almost everywhere
> > > for PFNs - we can't have physical addresses more than 44 bits (32 bit
> > > pfn + 4k page size).
> >
> > That's because xen_pfn_t is the type used to store pfns in structures
> > passed to Xen via hypercalls. The Xen hypercall ABI is shared between
> > ARM and ARM64. On x86_32 and x86_64 we have different sizes for pfn
> > types in the hypercall ABI and it caused quite a bit of trouble in the
> > past as it is possible to run 32bit domains on a 64bit hypervisor.
> > Having a common type for pfns on ARM and ARM64 helped a lot in that
> > respect.
> >
> >
> > > > Suggested by Andrew Cooper <andrew.cooper3@citrix.com> on lkml message
> > > > <5569F9C9.8000607@citrix.com>.
> > > >
> > > > The ifdef for ARM is ugly but did not find better solutions for it.
> > >
> > > #ifdef __arm__
> > >
> > > maybe? Even if not, the unsightly parens are not necessary.
> >
> > Yes, I think it should be:
> >
> > #if defined(__arm__) || defined(__aarch64__)
>
> Thanks, I will send a new version with this change.
>
> > > diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
> > > index 75d5968..6898ee1 100644
> > > --- a/arch/arm/include/asm/xen/interface.h
> > > +++ b/arch/arm/include/asm/xen/interface.h
> > > @@ -38,7 +38,7 @@
> > > * fine since it simply wouldn't be able to create any sure pfns in
> > > * the first place.
> > > */
> > > -typedef uint64_t xen_pfn_t;
> > > +typedef __u64 xen_pfn_t;
> > > #define PRI_xen_pfn "llx"
> > > typedef uint64_t xen_ulong_t;
> > > #define PRI_xen_ulong "llx"
> >
> > Why this change?
>
> I will double check but I think the other fix exposed then the common
> "<stdint.h> definitions not available in userspace <linux/types.h>" and this
> was needed to please the compiler. If so, I'll add this to commit message.
That would be strange, because I don't think
arch/arm/include/asm/xen/interface.h is exposed to userspace. If it
was, we would need to replace the other definitions there too.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 66/72] uapi icmp.h: glibc netinet/ip_icmp.h header file compatibility fixes
2016-08-22 23:33 ` David Miller
@ 2016-08-23 21:21 ` Mikko Rapeli
2016-08-23 23:38 ` David Miller
0 siblings, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-23 21:21 UTC (permalink / raw)
To: David Miller, netdev
Cc: linux-kernel, edumazet, nicolas.dichtel, ralf, linux-hams
On Mon, Aug 22, 2016 at 04:32:51PM -0700, David Miller wrote:
> You have to post this properly to the netdev list.
>
> If netdev is not CC:'d it doesn't get properly logged in patchwork,
> and won't be applied.
Sorry, get_maintainers.pl did not find netdev list for these patches.
Could you update MAINTAINERS so that networking stuff from include/linux/uapi/
finds netdev?
I could propose patches but they are bound to be incomplete so networking devs
could do this faster and with fewer review iterations.
This problem seems to be quite common though. Maybe the uapi split did not
update MAINTAINER file with include/uapi files.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 66/72] uapi icmp.h: glibc netinet/ip_icmp.h header file compatibility fixes
2016-08-22 18:33 ` [PATCH v05 66/72] uapi icmp.h: glibc netinet/ip_icmp.h " Mikko Rapeli
2016-08-22 23:33 ` David Miller
@ 2016-08-23 23:36 ` David Miller
1 sibling, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-23 23:36 UTC (permalink / raw)
To: mikko.rapeli; +Cc: linux-kernel, edumazet, nicolas.dichtel
You'll need to respin these on top of the 'net' GIT tree, I've already
applied the other patches yesterday and I'm getting rejects for the
libc-compat.h changes.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 66/72] uapi icmp.h: glibc netinet/ip_icmp.h header file compatibility fixes
2016-08-23 21:21 ` Mikko Rapeli
@ 2016-08-23 23:38 ` David Miller
0 siblings, 0 replies; 141+ messages in thread
From: David Miller @ 2016-08-23 23:38 UTC (permalink / raw)
To: mikko.rapeli
Cc: netdev, linux-kernel, edumazet, nicolas.dichtel, ralf, linux-hams
From: Mikko Rapeli <mikko.rapeli@iki.fi>
Date: Wed, 24 Aug 2016 00:21:45 +0300
> I could propose patches but they are bound to be incomplete so
> networking devs could do this faster and with fewer review
> iterations.
If I did it I'm seriously not going to go any further than taking the
diffstat of your patches and using that to add entries to MAINTAINERS.
So you could do it equally as well.
I don't have time for an exhaustive add.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 27/72] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
2016-08-23 8:03 ` Frans Klaver
@ 2016-08-24 6:57 ` Frans Klaver
2016-11-15 19:39 ` Mikko Rapeli
0 siblings, 1 reply; 141+ messages in thread
From: Frans Klaver @ 2016-08-24 6:57 UTC (permalink / raw)
To: David Miller; +Cc: Mikko Rapeli, linux-kernel, zhangshengju
On Tue, Aug 23, 2016 at 10:03 AM, Frans Klaver <fransklaver@gmail.com> wrote:
> On Tue, Aug 23, 2016 at 9:05 AM, David Miller <davem@davemloft.net> wrote:
>> From: Frans Klaver <fransklaver@gmail.com>
>> Date: Tue, 23 Aug 2016 09:03:20 +0200
>>
>>> On Tue, Aug 23, 2016 at 1:30 AM, David Miller <davem@davemloft.net> wrote:
>>>> From: Mikko Rapeli <mikko.rapeli@iki.fi>
>>>> Date: Mon, 22 Aug 2016 20:32:44 +0200
>>>>
>>>>> Fixes userspace compiler error:
>>>>>
>>>>> error: ‘IFNAMSIZ’ undeclared here (not in a function)
>>>>>
>>>>> Suggested by Frans Klaver <fransklaver@gmail.com> on lkml message
>>>>> <20150530195223.GA15645@bugger.home>.
>>>>>
>>>>> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>>>>
>>>> IFNAMSIZ has to be in linux/if.h, you aren't explaining why you have
>>>> to move it to the hdlc header instead of having the hdlc header
>>>> include linux/if.h
>>>
>>> Circular references. linux/if.h includes hdlc/ioctl.h, and has to
>>> define IFNAMSIZ before doing so.
>>
>> That's not acceptable. Use forward declarations or similar to avoid
>> the circular dependency.
>>
>> IFNAMSIZ belongs in linux/if.h, please keep it there.
>
> I went back to one of the previous patch sets, but couldn't find why
> the circular dependency had to be broken. So if this can be fixed by
> including linux/if.h instead, I'm all for it.
Alright, so the core of the 'problem' is that the structs in
hdlc/ioctl.h are typedefs of anonymous structs, and linux/if.h points
to those types. We can't really forward declare these structs unless
we name them, so the proper approach would be to name them and use
forward declarations in linux/if.h. hdlc/ioctl.h can then include
linux/if.h. linux/if.h should probably keep including hdlc/ioctl.h to
keep depending application builds from breaking.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 60/72] arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t
2016-08-22 18:33 ` [PATCH v05 60/72] arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
@ 2016-08-24 15:02 ` Arnd Bergmann
2016-11-16 14:11 ` Mikko Rapeli
0 siblings, 1 reply; 141+ messages in thread
From: Arnd Bergmann @ 2016-08-24 15:02 UTC (permalink / raw)
To: linux-arm-kernel; +Cc: Mikko Rapeli, linux-kernel, Russell King
On Monday, August 22, 2016 8:33:17 PM CEST Mikko Rapeli wrote:
> diff --git a/arch/arm/include/uapi/asm/signal.h b/arch/arm/include/uapi/asm/signal.h
> index 33073bd..859f2de 100644
> --- a/arch/arm/include/uapi/asm/signal.h
> +++ b/arch/arm/include/uapi/asm/signal.h
> @@ -113,7 +113,7 @@ struct sigaction {
> typedef struct sigaltstack {
> void __user *ss_sp;
> int ss_flags;
> - size_t ss_size;
> + __kernel_size_t ss_size;
> } stack_t;
I was going to reply with an Ack, but on further consideration,
I'm not sure if we can't do this in general: size_t may be either
'unsigned int' or 'unsigned long' (depending on the architecture
and toolchain), and if kernel and glibc disagree on this, we
have a problem with any user space code that expects sigaltstack->ss_size
to be the same type as size_t (as mandated by the man page).
I wonder if there is another way to address this.
Arnd
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 14/72] include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h
2016-08-22 18:32 ` [PATCH v05 14/72] include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h Mikko Rapeli
@ 2016-08-24 15:36 ` Arnd Bergmann
2016-11-15 19:31 ` Mikko Rapeli
0 siblings, 1 reply; 141+ messages in thread
From: Arnd Bergmann @ 2016-08-24 15:36 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, linux-arch
On Monday, August 22, 2016 8:32:31 PM CEST Mikko Rapeli wrote:
> Fixes userspace compilation error:
>
> error: unknown type name ‘__kernel_key_t’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>
Looks good. I was on Cc for patches 14, 15, 16, 17, 18, 35,
65 and 71. They all seem reasonable to me, the only change
I would do is to remove "include/uapi/" from the subject,
and instead write it as
"asm-generic/ipcbuf.h: include linux/posix_types.h"
With that changed, please add
Acked-by: Arnd Bergmann <arnd@arndb.de>
if you want to keep the entire series together, or resend
those patches as a new series to me if you would like me to
apply them to the asm-generic git tree instead.
Arnd
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [dm-devel] [PATCH v05 04/72] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h
2016-08-23 20:42 ` Mikko Rapeli
@ 2016-08-25 4:24 ` Bart Van Assche
2016-08-25 6:57 ` Mikko Rapeli
2016-08-28 6:42 ` [PATCH v06] uapi dm-log-userspace.h: use __u32, __s32, __u64 and __s64 " Mikko Rapeli
0 siblings, 2 replies; 141+ messages in thread
From: Bart Van Assche @ 2016-08-25 4:24 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: dm-devel, Alasdair Kergon, linux-kernel, Mike Snitzer
On 08/23/16 13:42, Mikko Rapeli wrote:
> On Tue, Aug 23, 2016 at 02:28:19PM +0000, Bart Van Assche wrote:
>> On 08/23/16 06:57, Bart Van Assche wrote:
>>> On 08/22/16 11:32, Mikko Rapeli wrote:
>>>> - * uint32_t (*get_region_size)(struct dm_dirty_log *log);
>>>> + * __u32 (*get_region_size)(struct dm_dirty_log *log);
>>>
>>> uint32_t is a type that is defined by ANSI C but __u32 not. So this
>>> change looks wrong to me. Would it have been sufficient to add "#include
>>> <linux/types.h>" and keep the uint32_t etc. type names?
>>
>> Answering my own question: adding "#include <linux/types.h>" wouldn't be
>> sufficient. How about adding the following code that also occurs in a
>> few other uapi header files?
>>
>> #ifndef __KERNEL__
>> #include <stdint.h>
>> #endif
>> #include <linux/types.h>
>
> I have tried that before but I was instructed to use the linux/types.h
> versions. For example https://lkml.org/lkml/2015/6/1/160
>
> But lately drm and fuse and some others have questioned this approach and
> would like to use/continue using C99 stdint.h types.
Hello Mikko,
Thanks for the feedback. I have a minor comment though about your patch:
are you aware that you have changed uint64_t into __u64 in source code
comments but that int64_t has not been changed into __s64?
Bart.
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [dm-devel] [PATCH v05 04/72] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h
2016-08-25 4:24 ` Bart Van Assche
@ 2016-08-25 6:57 ` Mikko Rapeli
2016-08-28 6:42 ` [PATCH v06] uapi dm-log-userspace.h: use __u32, __s32, __u64 and __s64 " Mikko Rapeli
1 sibling, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-25 6:57 UTC (permalink / raw)
To: Bart Van Assche; +Cc: dm-devel, Alasdair Kergon, linux-kernel, Mike Snitzer
On Thu, Aug 25, 2016 at 04:24:11AM +0000, Bart Van Assche wrote:
> On 08/23/16 13:42, Mikko Rapeli wrote:
> > On Tue, Aug 23, 2016 at 02:28:19PM +0000, Bart Van Assche wrote:
> >> On 08/23/16 06:57, Bart Van Assche wrote:
> >>> On 08/22/16 11:32, Mikko Rapeli wrote:
> >>>> - * uint32_t (*get_region_size)(struct dm_dirty_log *log);
> >>>> + * __u32 (*get_region_size)(struct dm_dirty_log *log);
> >>>
> >>> uint32_t is a type that is defined by ANSI C but __u32 not. So this
> >>> change looks wrong to me. Would it have been sufficient to add "#include
> >>> <linux/types.h>" and keep the uint32_t etc. type names?
> >>
> >> Answering my own question: adding "#include <linux/types.h>" wouldn't be
> >> sufficient. How about adding the following code that also occurs in a
> >> few other uapi header files?
> >>
> >> #ifndef __KERNEL__
> >> #include <stdint.h>
> >> #endif
> >> #include <linux/types.h>
> >
> > I have tried that before but I was instructed to use the linux/types.h
> > versions. For example https://lkml.org/lkml/2015/6/1/160
> >
> > But lately drm and fuse and some others have questioned this approach and
> > would like to use/continue using C99 stdint.h types.
>
> Hello Mikko,
>
> Thanks for the feedback. I have a minor comment though about your patch:
> are you aware that you have changed uint64_t into __u64 in source code
> comments but that int64_t has not been changed into __s64?
Thanks, that's a bug. I'll update the patch.
I guess I was reading compiler error list and string replacing only those.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 61/72] include/uapi/rdma/rdma_user_rxe.h: include in.h and in6.h
2016-08-22 18:33 ` [PATCH v05 61/72] include/uapi/rdma/rdma_user_rxe.h: include in.h and in6.h Mikko Rapeli
2016-08-23 15:03 ` Doug Ledford
@ 2016-08-25 14:00 ` Moni Shoua
1 sibling, 0 replies; 141+ messages in thread
From: Moni Shoua @ 2016-08-25 14:00 UTC (permalink / raw)
To: Mikko Rapeli
Cc: linux-kernel, Doug Ledford, Sean Hefty, Hal Rosenstock, linux-rdma
Acked-by: Moni Shoua <monis@mellanox.com>
On Mon, Aug 22, 2016 at 9:33 PM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> Fixes these userspace compilation errors when rdma_user_rxe.h is compiled
> alone:
>
> rdma/rdma_user_rxe.h:59:20: error: field ‘_sockaddr’ has incomplete type
> struct sockaddr _sockaddr;
> ^~~~~~~~~
> rdma/rdma_user_rxe.h:60:22: error: field ‘_sockaddr_in’ has incomplete type
> struct sockaddr_in _sockaddr_in;
> ^~~~~~~~~~~~
> rdma/rdma_user_rxe.h:61:23: error: field ‘_sockaddr_in6’ has incomplete type
> struct sockaddr_in6 _sockaddr_in6;
> ^~~~~~~~~~~~~
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/rdma/rdma_user_rxe.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/uapi/rdma/rdma_user_rxe.h b/include/uapi/rdma/rdma_user_rxe.h
> index 1de99cf..ce6c929 100644
> --- a/include/uapi/rdma/rdma_user_rxe.h
> +++ b/include/uapi/rdma/rdma_user_rxe.h
> @@ -34,6 +34,8 @@
> #define RDMA_USER_RXE_H
>
> #include <linux/types.h>
> +#include <linux/in.h>
> +#include <linux/in6.h>
>
> union rxe_gid {
> __u8 raw[16];
> --
> 2.8.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h header file compatibility fixes
2016-08-22 18:33 ` [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h " Mikko Rapeli
2016-08-22 23:33 ` David Miller
@ 2016-08-26 15:38 ` walter harms
2016-08-28 5:59 ` Mikko Rapeli
1 sibling, 1 reply; 141+ messages in thread
From: walter harms @ 2016-08-26 15:38 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, linux-hams
perhaps this not tested snipped would make sure that
you have included linux/rose.h ?
#ifndef ROSE_KERNEL_H
#include <linux/rose.h>
#endif
#include <netrose/rose.h>
re,
wh
Am 22.08.2016 20:33, schrieb Mikko Rapeli:
> Fixes these userspace compile errors and warnings when glibc
> netrose/rose.h is included before linux/rose.h:
>
> linux/rose.h:25:0: warning: "SIOCRSGCAUSE" redefined
> linux/rose.h:26:0: warning: "SIOCRSSCAUSE" redefined
> linux/rose.h:27:0: warning: "SIOCRSL2CALL" redefined
> linux/rose.h:28:0: warning: "SIOCRSSL2CALL" redefined
> linux/rose.h:29:0: warning: "SIOCRSACCEPT" redefined
> linux/rose.h:30:0: warning: "SIOCRSCLRRT" redefined
> linux/rose.h:31:0: warning: "SIOCRSGL2CALL" redefined
> linux/rose.h:32:0: warning: "SIOCRSGFACILITIES" redefined
> linux/rose.h:47:3: error: conflicting types for ‘rose_address’
> linux/rose.h:49:8: error: redefinition of ‘struct sockaddr_rose’
> linux/rose.h:57:8: error: redefinition of ‘struct full_sockaddr_rose’
> linux/rose.h:65:8: error: redefinition of ‘struct rose_route_struct’
> linux/rose.h:74:8: error: redefinition of ‘struct rose_cause_struct’
> linux/rose.h:79:8: error: redefinition of ‘struct rose_facilities_struct’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> ---
> include/uapi/linux/libc-compat.h | 30 ++++++++++++++++++++++++++++++
> include/uapi/linux/rose.h | 15 +++++++++++++++
> 2 files changed, 45 insertions(+)
>
> diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
> index 01bb521..acc2e75 100644
> --- a/include/uapi/linux/libc-compat.h
> +++ b/include/uapi/linux/libc-compat.h
> @@ -209,6 +209,27 @@
>
> #endif /* defined(__NETIPX_IPX_H) */
>
> +/* Coordinate with glibc netrose/rose.h */
> +#if defined(_NETROSE_ROSE_H)
> +#define __UAPI_DEF_SIOCRSGCAUSE_TO_SIOCRSGFACILITIES 0
> +#define __UAPI_DEF_ROSE_ADDRESS 0
> +#define __UAPI_DEF_SOCKADDR_ROSE 0
> +#define __UAPI_DEF_FULL_SOCKADDR_ROSE 0
> +#define __UAPI_DEF_ROSE_ROUTE_STRUCT 0
> +#define __UAPI_DEF_ROSE_CAUSE_STRUCT 0
> +#define __UAPI_DEF_ROSE_FACILITIES_STRUCT 0
> +
> +#else /* defined(_NETROSE_ROSE_H) */
> +#define __UAPI_DEF_SIOCRSGCAUSE_TO_SIOCRSGFACILITIES 1
> +#define __UAPI_DEF_ROSE_ADDRESS 1
> +#define __UAPI_DEF_SOCKADDR_ROSE 1
> +#define __UAPI_DEF_FULL_SOCKADDR_ROSE 1
> +#define __UAPI_DEF_ROSE_ROUTE_STRUCT 1
> +#define __UAPI_DEF_ROSE_CAUSE_STRUCT 1
> +#define __UAPI_DEF_ROSE_FACILITIES_STRUCT 1
> +
> +#endif /* defined(_NETROSE_ROSE_H) */
> +
> /* Definitions for sys/uio.h */
> #if defined(_SYS_UIO_H)
> #define __UAPI_DEF_IOVEC 0
> @@ -283,6 +304,15 @@
> #define __UAPI_DEF_IPX_CONFIG_DATA 1
> #define __UAPI_DEF_IPX_ROUTE_DEF 1
>
> +/* Definitions for rose.h */
> +#define __UAPI_DEF_SIOCRSGCAUSE_TO_SIOCRSGFACILITIES 1
> +#define __UAPI_DEF_ROSE_ADDRESS 1
> +#define __UAPI_DEF_SOCKADDR_ROSE 1
> +#define __UAPI_DEF_FULL_SOCKADDR_ROSE 1
> +#define __UAPI_DEF_ROSE_ROUTE_STRUCT 1
> +#define __UAPI_DEF_ROSE_CAUSE_STRUCT 1
> +#define __UAPI_DEF_ROSE_FACILITIES_STRUCT 1
> +
> /* Definitions for uio.h */
> #define __UAPI_DEF_IOVEC 1
>
> diff --git a/include/uapi/linux/rose.h b/include/uapi/linux/rose.h
> index 1fcfe95..c39499c 100644
> --- a/include/uapi/linux/rose.h
> +++ b/include/uapi/linux/rose.h
> @@ -7,6 +7,7 @@
> #ifndef ROSE_KERNEL_H
> #define ROSE_KERNEL_H
>
> +#include <linux/libc-compat.h>
> #include <linux/socket.h>
> #include <linux/ax25.h>
>
> @@ -22,6 +23,7 @@
> #define ROSE_QBITINCL 6
> #define ROSE_HOLDBACK 7
>
> +#if __UAPI_DEF_SIOCRSGCAUSE_TO_SIOCRSGFACILITIES
> #define SIOCRSGCAUSE (SIOCPROTOPRIVATE+0)
> #define SIOCRSSCAUSE (SIOCPROTOPRIVATE+1)
> #define SIOCRSL2CALL (SIOCPROTOPRIVATE+2)
> @@ -30,6 +32,7 @@
> #define SIOCRSCLRRT (SIOCPROTOPRIVATE+4)
> #define SIOCRSGL2CALL (SIOCPROTOPRIVATE+5)
> #define SIOCRSGFACILITIES (SIOCPROTOPRIVATE+6)
> +#endif /* __UAPI_DEF_SIOCRSGCAUSE_TO_SIOCRSGFACILITIES */
>
> #define ROSE_DTE_ORIGINATED 0x00
> #define ROSE_NUMBER_BUSY 0x01
> @@ -42,10 +45,13 @@
> #define ROSE_LOCAL_PROCEDURE 0x13
> #define ROSE_SHIP_ABSENT 0x39
>
> +#if __UAPI_DEF_ROSE_ADDRESS
> typedef struct {
> char rose_addr[5];
> } rose_address;
> +#endif /* __UAPI_DEF_ROSE_ADDRESS */
>
> +#if __UAPI_DEF_SOCKADDR_ROSE
> struct sockaddr_rose {
> __kernel_sa_family_t srose_family;
> rose_address srose_addr;
> @@ -53,7 +59,9 @@ struct sockaddr_rose {
> int srose_ndigis;
> ax25_address srose_digi;
> };
> +#endif /* __UAPI_DEF_SOCKADDR_ROSE */
>
> +#if __UAPI_DEF_FULL_SOCKADDR_ROSE
> struct full_sockaddr_rose {
> __kernel_sa_family_t srose_family;
> rose_address srose_addr;
> @@ -61,7 +69,9 @@ struct full_sockaddr_rose {
> unsigned int srose_ndigis;
> ax25_address srose_digis[ROSE_MAX_DIGIS];
> };
> +#endif /* __UAPI_DEF_FULL_SOCKADDR_ROSE */
>
> +#if __UAPI_DEF_ROSE_ROUTE_STRUCT
> struct rose_route_struct {
> rose_address address;
> unsigned short mask;
> @@ -70,12 +80,16 @@ struct rose_route_struct {
> unsigned char ndigis;
> ax25_address digipeaters[AX25_MAX_DIGIS];
> };
> +#endif /* __UAPI_DEF_ROSE_ROUTE_STRUCT */
>
> +#if __UAPI_DEF_ROSE_CAUSE_STRUCT
> struct rose_cause_struct {
> unsigned char cause;
> unsigned char diagnostic;
> };
> +#endif /* __UAPI_DEF_ROSE_CAUSE_STRUCT */
>
> +#if __UAPI_DEF_ROSE_FACILITIES_STRUCT
> struct rose_facilities_struct {
> rose_address source_addr, dest_addr;
> ax25_address source_call, dest_call;
> @@ -86,5 +100,6 @@ struct rose_facilities_struct {
> rose_address fail_addr;
> ax25_address fail_call;
> };
> +#endif /* __UAPI_DEF_ROSE_FACILITIES_STRUCT */
>
> #endif
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h header file compatibility fixes
2016-08-26 15:38 ` walter harms
@ 2016-08-28 5:59 ` Mikko Rapeli
2016-08-28 12:37 ` walter harms
2016-08-29 19:34 ` David Ranch
0 siblings, 2 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-28 5:59 UTC (permalink / raw)
To: walter harms; +Cc: linux-kernel, linux-hams
On Fri, Aug 26, 2016 at 05:38:00PM +0200, walter harms wrote:
> perhaps this not tested snipped would make sure that
> you have included linux/rose.h ?
>
> #ifndef ROSE_KERNEL_H
> #include <linux/rose.h>
> #endif
>
> #include <netrose/rose.h>
Sorry, I did not quite get this.
<linux/rose.h> has conflicting definitions with glibc <netrose/rose.h>.
The patches fixes the uapi headers <linux/rose.h> so that it hides
definitions if <netrose/rose.h> from glibc was already included.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* [PATCH v06] uapi dm-log-userspace.h: use __u32, __s32, __u64 and __s64 from linux/types.h
2016-08-25 4:24 ` Bart Van Assche
2016-08-25 6:57 ` Mikko Rapeli
@ 2016-08-28 6:42 ` Mikko Rapeli
2016-08-28 16:07 ` Bart Van Assche
1 sibling, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-28 6:42 UTC (permalink / raw)
To: Bart.VanAssche, dm-devel; +Cc: agk, snitzer, linux-kernel, Mikko Rapeli
Fixes userspace compilation errors like:
linux/dm-log-userspace.h:416:2: error: unknown type name ‘uint64_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Cc: Bart Van Assche <Bart.VanAssche@sandisk.com>
---
include/uapi/linux/dm-log-userspace.h | 53 ++++++++++++++++++-----------------
1 file changed, 27 insertions(+), 26 deletions(-)
diff --git a/include/uapi/linux/dm-log-userspace.h b/include/uapi/linux/dm-log-userspace.h
index 0fa0d9e..05e91e1 100644
--- a/include/uapi/linux/dm-log-userspace.h
+++ b/include/uapi/linux/dm-log-userspace.h
@@ -7,6 +7,7 @@
#ifndef __DM_LOG_USERSPACE_H__
#define __DM_LOG_USERSPACE_H__
+#include <linux/types.h>
#include <linux/dm-ioctl.h> /* For DM_UUID_LEN */
/*
@@ -147,12 +148,12 @@
/*
* DM_ULOG_GET_REGION_SIZE corresponds to (found in dm-dirty-log.h):
- * uint32_t (*get_region_size)(struct dm_dirty_log *log);
+ * __u32 (*get_region_size)(struct dm_dirty_log *log);
*
* Payload-to-userspace:
* None.
* Payload-to-kernel:
- * uint64_t - contains the region size
+ * __u64 - contains the region size
*
* The region size is something that was determined at constructor time.
* It is returned in the payload area and 'data_size' is set to
@@ -168,11 +169,11 @@
* int (*is_clean)(struct dm_dirty_log *log, region_t region);
*
* Payload-to-userspace:
- * uint64_t - the region to get clean status on
+ * __u64 - the region to get clean status on
* Payload-to-kernel:
- * int64_t - 1 if clean, 0 otherwise
+ * __s64 - 1 if clean, 0 otherwise
*
- * Payload is sizeof(uint64_t) and contains the region for which the clean
+ * Payload is sizeof(__u64) and contains the region for which the clean
* status is being made.
*
* When the request has been processed, user-space must return the
@@ -187,9 +188,9 @@
* int can_block);
*
* Payload-to-userspace:
- * uint64_t - the region to get sync status on
+ * __u64 - the region to get sync status on
* Payload-to-kernel:
- * int64_t - 1 if in-sync, 0 otherwise
+ * __s64 - 1 if in-sync, 0 otherwise
*
* Exactly the same as 'is_clean' above, except this time asking "has the
* region been recovered?" vs. "is the region not being modified?"
@@ -203,7 +204,7 @@
* Payload-to-userspace:
* If the 'integrated_flush' directive is present in the constructor
* table, the payload is as same as DM_ULOG_MARK_REGION:
- * uint64_t [] - region(s) to mark
+ * __u64 [] - region(s) to mark
* else
* None
* Payload-to-kernel:
@@ -225,13 +226,13 @@
* void (*mark_region)(struct dm_dirty_log *log, region_t region);
*
* Payload-to-userspace:
- * uint64_t [] - region(s) to mark
+ * __u64 [] - region(s) to mark
* Payload-to-kernel:
* None.
*
* Incoming payload contains the one or more regions to mark dirty.
* The number of regions contained in the payload can be determined from
- * 'data_size/sizeof(uint64_t)'.
+ * 'data_size/sizeof(__u64)'.
*
* When the request has been processed, user-space must return the
* dm_ulog_request to the kernel - setting the 'error' field and clearing
@@ -244,13 +245,13 @@
* void (*clear_region)(struct dm_dirty_log *log, region_t region);
*
* Payload-to-userspace:
- * uint64_t [] - region(s) to clear
+ * __u64 [] - region(s) to clear
* Payload-to-kernel:
* None.
*
* Incoming payload contains the one or more regions to mark clean.
* The number of regions contained in the payload can be determined from
- * 'data_size/sizeof(uint64_t)'.
+ * 'data_size/sizeof(__u64)'.
*
* When the request has been processed, user-space must return the
* dm_ulog_request to the kernel - setting the 'error' field and clearing
@@ -266,8 +267,8 @@
* None.
* Payload-to-kernel:
* {
- * int64_t i; -- 1 if recovery necessary, 0 otherwise
- * uint64_t r; -- The region to recover if i=1
+ * __s64 i; -- 1 if recovery necessary, 0 otherwise
+ * __u64 r; -- The region to recover if i=1
* }
* 'data_size' should be set appropriately.
*
@@ -283,8 +284,8 @@
*
* Payload-to-userspace:
* {
- * uint64_t - region to set sync state on
- * int64_t - 0 if not-in-sync, 1 if in-sync
+ * __u64 - region to set sync state on
+ * __s64 - 0 if not-in-sync, 1 if in-sync
* }
* Payload-to-kernel:
* None.
@@ -302,7 +303,7 @@
* Payload-to-userspace:
* None.
* Payload-to-kernel:
- * uint64_t - the number of in-sync regions
+ * __u64 - the number of in-sync regions
*
* No incoming payload. Kernel-bound payload contains the number of
* regions that are in-sync (in a size_t).
@@ -350,11 +351,11 @@
* int (*is_remote_recovering)(struct dm_dirty_log *log, region_t region);
*
* Payload-to-userspace:
- * uint64_t - region to determine recovery status on
+ * __u64 - region to determine recovery status on
* Payload-to-kernel:
* {
- * int64_t is_recovering; -- 0 if no, 1 if yes
- * uint64_t in_sync_hint; -- lowest region still needing resync
+ * __s64 is_recovering; -- 0 if no, 1 if yes
+ * __u64 in_sync_hint; -- lowest region still needing resync
* }
*
* When the request has been processed, user-space must return the
@@ -413,16 +414,16 @@ struct dm_ulog_request {
* differentiate between logs that are being swapped and have the
* same 'uuid'. (Think "live" and "inactive" device-mapper tables.)
*/
- uint64_t luid;
+ __u64 luid;
char uuid[DM_UUID_LEN];
char padding[3]; /* Padding because DM_UUID_LEN = 129 */
- uint32_t version; /* See DM_ULOG_REQUEST_VERSION */
- int32_t error; /* Used to report back processing errors */
+ __u32 version; /* See DM_ULOG_REQUEST_VERSION */
+ __s32 error; /* Used to report back processing errors */
- uint32_t seq; /* Sequence number for request */
- uint32_t request_type; /* DM_ULOG_* defined above */
- uint32_t data_size; /* How much data (not including this struct) */
+ __u32 seq; /* Sequence number for request */
+ __u32 request_type; /* DM_ULOG_* defined above */
+ __u32 data_size; /* How much data (not including this struct) */
char data[0];
};
--
2.8.1
^ permalink raw reply related [flat|nested] 141+ messages in thread
* Re: [PATCH v05 06/72] include/uapi/linux/hsi/cs-protocol.h: include linux/time.h
2016-08-22 20:52 ` Sebastian Reichel
2016-08-23 6:55 ` Mikko Rapeli
@ 2016-08-28 7:00 ` Mikko Rapeli
1 sibling, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-28 7:00 UTC (permalink / raw)
To: Sebastian Reichel; +Cc: linux-kernel
On Mon, Aug 22, 2016 at 10:52:20PM +0200, Sebastian Reichel wrote:
> Hi,
>
> On Mon, Aug 22, 2016 at 08:32:23PM +0200, Mikko Rapeli wrote:
> > Fixes userspace compilation errors due to missing timespec definition.
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> > ---
> > include/uapi/linux/hsi/cs-protocol.h | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/include/uapi/linux/hsi/cs-protocol.h b/include/uapi/linux/hsi/cs-protocol.h
> > index f153d6e..c8d9f08 100644
> > --- a/include/uapi/linux/hsi/cs-protocol.h
> > +++ b/include/uapi/linux/hsi/cs-protocol.h
> > @@ -26,6 +26,7 @@
> >
> > #include <linux/types.h>
> > #include <linux/ioctl.h>
> > +#include <linux/time.h>
> >
> > /* chardev parameters */
> > #define CS_DEV_FILE_NAME "/dev/cmt_speech"
>
> As far as I can see there header file does not use timespec since
> I removed it roughly a year ago.
Yes, your patch 5023a5ca8e144846ec0646554336000abb11e04f fixes also uapi
compilation errors. This patch from me is not needed and even wrong
for the API.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h header file compatibility fixes
2016-08-28 5:59 ` Mikko Rapeli
@ 2016-08-28 12:37 ` walter harms
2016-08-29 19:34 ` David Ranch
1 sibling, 0 replies; 141+ messages in thread
From: walter harms @ 2016-08-28 12:37 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, linux-hams
Am 28.08.2016 07:59, schrieb Mikko Rapeli:
> On Fri, Aug 26, 2016 at 05:38:00PM +0200, walter harms wrote:
>> perhaps this not tested snipped would make sure that
>> you have included linux/rose.h ?
>>
>> #ifndef ROSE_KERNEL_H
>> #include <linux/rose.h>
>> #endif
>>
>> #include <netrose/rose.h>
>
> Sorry, I did not quite get this.
>
> <linux/rose.h> has conflicting definitions with glibc <netrose/rose.h>.
> The patches fixes the uapi headers <linux/rose.h> so that it hides
> definitions if <netrose/rose.h> from glibc was already included.
>
> -Mikko
no problem,
so far i understand the conflict arise because you need to include
linux/rose.h before netrose/rose.h
My suggestion was to add a check for linux/rose.h (ROSE_KERNEL_H)
and include it if not already done. (basicly this should work out
of the box but it seems a problem here).
I have no idea if you need to cover other cases but in my
understanding userspace programms should not include kernel headers.
re,
wh
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v06] uapi dm-log-userspace.h: use __u32, __s32, __u64 and __s64 from linux/types.h
2016-08-28 6:42 ` [PATCH v06] uapi dm-log-userspace.h: use __u32, __s32, __u64 and __s64 " Mikko Rapeli
@ 2016-08-28 16:07 ` Bart Van Assche
0 siblings, 0 replies; 141+ messages in thread
From: Bart Van Assche @ 2016-08-28 16:07 UTC (permalink / raw)
To: Mikko Rapeli, dm-devel; +Cc: agk, snitzer, linux-kernel
On 08/27/16 23:43, Mikko Rapeli wrote:
> Fixes userspace compilation errors like:
>
> linux/dm-log-userspace.h:416:2: error: unknown type name ‘uint64_t’
Reviewed-by: Bart Van Assche <Bart.VanAssche@sandisk.com>
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h header file compatibility fixes
2016-08-28 5:59 ` Mikko Rapeli
2016-08-28 12:37 ` walter harms
@ 2016-08-29 19:34 ` David Ranch
2016-08-30 7:34 ` Mikko Rapeli
2016-11-16 19:07 ` Mikko Rapeli
1 sibling, 2 replies; 141+ messages in thread
From: David Ranch @ 2016-08-29 19:34 UTC (permalink / raw)
To: Mikko Rapeli, walter harms; +Cc: linux-kernel, linux-hams
Hello Mikko,
Somewhat related, the ax25.h file from libax25-devel also has conflicts
with the Glibc's ax.25.h. This creates trouble so if we could get a fix
for that, that would be appreciated as well though it might be a Glibc
issue and not a kernel issue.
--David
On 08/27/2016 10:59 PM, Mikko Rapeli wrote:
> On Fri, Aug 26, 2016 at 05:38:00PM +0200, walter harms wrote:
>> perhaps this not tested snipped would make sure that
>> you have included linux/rose.h ?
>>
>> #ifndef ROSE_KERNEL_H
>> #include <linux/rose.h>
>> #endif
>>
>> #include <netrose/rose.h>
> Sorry, I did not quite get this.
>
> <linux/rose.h> has conflicting definitions with glibc <netrose/rose.h>.
> The patches fixes the uapi headers <linux/rose.h> so that it hides
> definitions if <netrose/rose.h> from glibc was already included.
>
> -Mikko
> --
> To unsubscribe from this list: send the line "unsubscribe linux-hams" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h header file compatibility fixes
2016-08-29 19:34 ` David Ranch
@ 2016-08-30 7:34 ` Mikko Rapeli
2016-11-16 19:07 ` Mikko Rapeli
1 sibling, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-08-30 7:34 UTC (permalink / raw)
To: David Ranch; +Cc: walter harms, linux-kernel, linux-hams
On Mon, Aug 29, 2016 at 12:34:25PM -0700, David Ranch wrote:
> Hello Mikko,
>
> Somewhat related, the ax25.h file from libax25-devel also has conflicts with
> the Glibc's ax.25.h. This creates trouble so if we could get a fix for
> that, that would be appreciated as well though it might be a Glibc issue and
> not a kernel issue.
I'll put this to the back of my todo list. The approach could be similar to
include/uapi/linux/libc-compat.h from linux uapi headers.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 14/72] include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h
2016-08-24 15:36 ` Arnd Bergmann
@ 2016-11-15 19:31 ` Mikko Rapeli
0 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-11-15 19:31 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: linux-kernel, linux-arch
On Wed, Aug 24, 2016 at 05:36:22PM +0200, Arnd Bergmann wrote:
> On Monday, August 22, 2016 8:32:31 PM CEST Mikko Rapeli wrote:
> > Fixes userspace compilation error:
> >
> > error: unknown type name ‘__kernel_key_t’
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> >
>
> Looks good. I was on Cc for patches 14, 15, 16, 17, 18, 35,
> 65 and 71. They all seem reasonable to me, the only change
> I would do is to remove "include/uapi/" from the subject,
> and instead write it as
>
> "asm-generic/ipcbuf.h: include linux/posix_types.h"
>
> With that changed, please add
>
> Acked-by: Arnd Bergmann <arnd@arndb.de>
Thanks, done.
> if you want to keep the entire series together, or resend
> those patches as a new series to me if you would like me to
> apply them to the asm-generic git tree instead.
I will send a new series after fixing all other review findings and testing
the changes again.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 27/72] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h
2016-08-24 6:57 ` Frans Klaver
@ 2016-11-15 19:39 ` Mikko Rapeli
0 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-11-15 19:39 UTC (permalink / raw)
To: Frans Klaver; +Cc: David Miller, linux-kernel, zhangshengju
On Wed, Aug 24, 2016 at 08:57:21AM +0200, Frans Klaver wrote:
> On Tue, Aug 23, 2016 at 10:03 AM, Frans Klaver <fransklaver@gmail.com> wrote:
> > On Tue, Aug 23, 2016 at 9:05 AM, David Miller <davem@davemloft.net> wrote:
> >> From: Frans Klaver <fransklaver@gmail.com>
> >> Date: Tue, 23 Aug 2016 09:03:20 +0200
> >>
> >>> On Tue, Aug 23, 2016 at 1:30 AM, David Miller <davem@davemloft.net> wrote:
> >>>> From: Mikko Rapeli <mikko.rapeli@iki.fi>
> >>>> Date: Mon, 22 Aug 2016 20:32:44 +0200
> >>>>
> >>>>> Fixes userspace compiler error:
> >>>>>
> >>>>> error: ‘IFNAMSIZ’ undeclared here (not in a function)
> >>>>>
> >>>>> Suggested by Frans Klaver <fransklaver@gmail.com> on lkml message
> >>>>> <20150530195223.GA15645@bugger.home>.
> >>>>>
> >>>>> Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
> >>>>
> >>>> IFNAMSIZ has to be in linux/if.h, you aren't explaining why you have
> >>>> to move it to the hdlc header instead of having the hdlc header
> >>>> include linux/if.h
> >>>
> >>> Circular references. linux/if.h includes hdlc/ioctl.h, and has to
> >>> define IFNAMSIZ before doing so.
> >>
> >> That's not acceptable. Use forward declarations or similar to avoid
> >> the circular dependency.
> >>
> >> IFNAMSIZ belongs in linux/if.h, please keep it there.
> >
> > I went back to one of the previous patch sets, but couldn't find why
> > the circular dependency had to be broken. So if this can be fixed by
> > including linux/if.h instead, I'm all for it.
>
> Alright, so the core of the 'problem' is that the structs in
> hdlc/ioctl.h are typedefs of anonymous structs, and linux/if.h points
> to those types. We can't really forward declare these structs unless
> we name them, so the proper approach would be to name them and use
> forward declarations in linux/if.h. hdlc/ioctl.h can then include
> linux/if.h. linux/if.h should probably keep including hdlc/ioctl.h to
> keep depending application builds from breaking.
Thanks! I will do this and send a new patch.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 60/72] arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t
2016-08-24 15:02 ` Arnd Bergmann
@ 2016-11-16 14:11 ` Mikko Rapeli
0 siblings, 0 replies; 141+ messages in thread
From: Mikko Rapeli @ 2016-11-16 14:11 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: linux-arm-kernel, linux-kernel, Russell King
On Wed, Aug 24, 2016 at 05:02:56PM +0200, Arnd Bergmann wrote:
> On Monday, August 22, 2016 8:33:17 PM CEST Mikko Rapeli wrote:
> > diff --git a/arch/arm/include/uapi/asm/signal.h b/arch/arm/include/uapi/asm/signal.h
> > index 33073bd..859f2de 100644
> > --- a/arch/arm/include/uapi/asm/signal.h
> > +++ b/arch/arm/include/uapi/asm/signal.h
> > @@ -113,7 +113,7 @@ struct sigaction {
> > typedef struct sigaltstack {
> > void __user *ss_sp;
> > int ss_flags;
> > - size_t ss_size;
> > + __kernel_size_t ss_size;
> > } stack_t;
>
> I was going to reply with an Ack, but on further consideration,
> I'm not sure if we can't do this in general: size_t may be either
> 'unsigned int' or 'unsigned long' (depending on the architecture
> and toolchain), and if kernel and glibc disagree on this, we
> have a problem with any user space code that expects sigaltstack->ss_size
> to be the same type as size_t (as mandated by the man page).
>
> I wonder if there is another way to address this.
I presume that kernel headers need to follow libc in this case and include
<stddef.h>?
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h header file compatibility fixes
2016-08-29 19:34 ` David Ranch
2016-08-30 7:34 ` Mikko Rapeli
@ 2016-11-16 19:07 ` Mikko Rapeli
2016-11-16 22:17 ` David Ranch
1 sibling, 1 reply; 141+ messages in thread
From: Mikko Rapeli @ 2016-11-16 19:07 UTC (permalink / raw)
To: David Ranch; +Cc: walter harms, linux-kernel, linux-hams
Hi,
On Mon, Aug 29, 2016 at 12:34:25PM -0700, David Ranch wrote:
> Hello Mikko,
>
> Somewhat related, the ax25.h file from libax25-devel also has conflicts with
> the Glibc's ax.25.h. This creates trouble so if we could get a fix for
> that, that would be appreciated as well though it might be a Glibc issue and
> not a kernel issue.
I had a look at libax25 git tree and the rose.h and ax25.h there are copies
from glibc sources which in turn are modified copies from age old kernel
headers. My suggestion is on Linux platforms to use the linux kernel headers
which will co-operate nicely with glibc headers with these changes if you need
something from them which are not available in glibc headers yet.
-Mikko
^ permalink raw reply [flat|nested] 141+ messages in thread
* Re: [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h header file compatibility fixes
2016-11-16 19:07 ` Mikko Rapeli
@ 2016-11-16 22:17 ` David Ranch
0 siblings, 0 replies; 141+ messages in thread
From: David Ranch @ 2016-11-16 22:17 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: walter harms, linux-kernel, linux-hams
Hello Mikko,
It would be great to see a solution to this long standing issue. I
would highlight that we have two pockets of AX.25 that need to be
considered aligned IMHO:
#Official AX.25 repo but sometimes doesn't include all available fixes
http://git.linux-ax25.org/cgit/libax25.git/tree/netax25/ax25.h
#Unofficial AX.25 repo which sometimes has more fixes
https://github.com/ve7fet/linuxax25/blob/master/libax25/netax25/ax25.h
#Current Glibc version
https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=sysdeps/unix/sysv/linux/netax25/ax25.h;hb=HEAD
Fortunately, it looks like both of these repos have the same file
(confirmed with a diff). Comparing to the Glibc versio, the differences
are minimal:
diff -u ax25.h-officialax25 ax25.h-glibc
--- ax25.h-officialax25 2016-11-16 13:53:27.000000000 -0800
+++ ax25.h-glibc 2016-11-16 14:14:03.000000000 -0800
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -12,15 +12,14 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
#ifndef _NETAX25_AX25_H
#define _NETAX25_AX25_H 1
#include <features.h>
-#include <sys/socket.h>
+#include <bits/sockaddr.h>
/* Setsockoptions(2) level. Thanks to BSD these must match
IPPROTO_xxx. */
#define SOL_AX25 257
--David
^ permalink raw reply [flat|nested] 141+ messages in thread
end of thread, other threads:[~2016-11-16 22:46 UTC | newest]
Thread overview: 141+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-22 18:32 [PATCH v05 00/72] Userspace compile test and fixes for exported uapi header files Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 01/72] headers_install.sh: enhance error handling Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 02/72] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 03/72] headers_compile_test.sh: add GNU libc compatibility test Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 04/72] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h Mikko Rapeli
2016-08-23 13:57 ` [dm-devel] " Bart Van Assche
2016-08-23 14:28 ` Bart Van Assche
2016-08-23 20:42 ` Mikko Rapeli
2016-08-25 4:24 ` Bart Van Assche
2016-08-25 6:57 ` Mikko Rapeli
2016-08-28 6:42 ` [PATCH v06] uapi dm-log-userspace.h: use __u32, __s32, __u64 and __s64 " Mikko Rapeli
2016-08-28 16:07 ` Bart Van Assche
2016-08-22 18:32 ` [PATCH v05 05/72] hsi_char.h: use __u32 " Mikko Rapeli
2016-08-22 20:54 ` Sebastian Reichel
2016-08-22 18:32 ` [PATCH v05 06/72] include/uapi/linux/hsi/cs-protocol.h: include linux/time.h Mikko Rapeli
2016-08-22 20:52 ` Sebastian Reichel
2016-08-23 6:55 ` Mikko Rapeli
2016-08-28 7:00 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 07/72] cld.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 08/72] rds.h: " Mikko Rapeli
2016-08-22 18:52 ` Sowmini Varadhan
2016-08-23 20:46 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 09/72] sctp.h: use __u8 and __u32 " Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 10/72] scsi_bsg_fc.h: use __u8, __u32 and __u64 " Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 11/72] scsi_netlink.h: use __u8, __u16 " Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 12/72] scsi_netlink_fc.h: use __u16, __u32 " Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 13/72] include/uapi/linux/sysctl.h: use __kernel_size_t instead of size_t Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 14/72] include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h Mikko Rapeli
2016-08-24 15:36 ` Arnd Bergmann
2016-11-15 19:31 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 15/72] include/uapi/asm-generic/msgbuf.h: include asm/ipcbuf.h Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 16/72] include/uapi/asm-generic/shmbuf.h: include fixes Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 17/72] asm-generic/sembuf.h: include asm/posix_types.h and asm/ipcbuf.h Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 18/72] include/uapi/asm-generic/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 19/72] include/uapi/linux/socket.h: include sys/socket.h in userspace Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 20/72] include/uapi/linux/rds.h: include linux/socket.h and linux/types.h Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 21/72] include/uapi/linux/if_pppox.h: include linux/if.h Mikko Rapeli
2016-08-22 19:37 ` Stephen Hemminger
2016-08-22 23:26 ` David Miller
2016-08-23 6:41 ` Mikko Rapeli
2016-08-22 23:33 ` David Miller
2016-08-22 18:32 ` [PATCH v05 22/72] include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and linux/in6.h Mikko Rapeli
2016-08-22 23:28 ` David Miller
2016-08-22 18:32 ` [PATCH v05 23/72] include/uapi/linux/ipv6_route.h: include linux/in6.h Mikko Rapeli
2016-08-22 23:28 ` David Miller
2016-08-22 18:32 ` [PATCH v05 24/72] " Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 25/72] include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h Mikko Rapeli
2016-08-22 23:31 ` David Miller
2016-08-22 18:32 ` [PATCH v05 26/72] include/uapi/linux/if_pppox.h: " Mikko Rapeli
2016-08-22 23:31 ` David Miller
2016-08-22 18:32 ` [PATCH v05 27/72] linux/if.h linux/hdlc/ioctl.h: move IFNAMSIZ definition to hdlc/ioctl.h Mikko Rapeli
2016-08-22 23:30 ` David Miller
2016-08-23 7:03 ` Frans Klaver
2016-08-23 7:05 ` David Miller
2016-08-23 8:03 ` Frans Klaver
2016-08-24 6:57 ` Frans Klaver
2016-11-15 19:39 ` Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 28/72] include/uapi/linux/packet_diag.h: include linux/netdevice.h Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 29/72] include/uapi/linux/llc.h: include linux/if.h Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 30/72] include/uapi/linux/mqueue.h: include linux/types.h Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 31/72] include/uapi/linux/mroute.h: include linux/in.h Mikko Rapeli
2016-08-22 23:30 ` David Miller
2016-08-22 18:32 ` [PATCH v05 32/72] include/uapi/linux/dlm_netlink.h: include linux/dlmconstants.h Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 33/72] include/uapi/linux/ip6_tunnel.h: include linux/if.h and linux/in6.h Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 34/72] include/uapi/linux/errqueue.h: include linux/time.h Mikko Rapeli
2016-08-22 21:32 ` kbuild test robot
2016-08-23 7:02 ` Mikko Rapeli
2016-08-22 22:03 ` kbuild test robot
2016-08-22 23:24 ` kbuild test robot
2016-08-22 18:32 ` [PATCH v05 35/72] include/uapi/asm-generic/ucontext.h: include asm/signal.h and asm/sigcontext.h Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 36/72] arch/x86/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 37/72] include/uapi/linux/auto_fs.h: include linux/limits.h Mikko Rapeli
2016-08-23 0:42 ` Ian Kent
2016-08-22 18:32 ` [PATCH v05 38/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h Mikko Rapeli
2016-08-22 19:39 ` Stephen Hemminger
2016-08-22 23:27 ` David Miller
2016-08-23 6:49 ` Mikko Rapeli
2016-08-22 23:31 ` David Miller
2016-08-22 18:32 ` [PATCH v05 39/72] include/uapi/linux/target_core_user.h: use __u8, __u16, __u32 and __u64 " Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 40/72] include/uapi/linux/omapfb.h: use __kernel_size_t instead of size_t Mikko Rapeli
2016-08-22 18:32 ` [PATCH v05 41/72] include/uapi/linux/atm_zatm.h: include linux/time.h Mikko Rapeli
2016-08-22 23:30 ` David Miller
2016-08-22 18:32 ` [PATCH v05 42/72] include/uapi/linux/scc.h: include linux/sockios.h Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 43/72] include/uapi/linux/btrfs.h: define NULL Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 44/72] include/uapi/linux/kexec.h: use __kernel_size_t instead of size_t Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 45/72] include/uapi/linux/reiserfs_xattr.h: " Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 46/72] include/uapi/linux/patchkey.h: change #error to #warning if file included directly Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 47/72] include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc definitions for userspace Mikko Rapeli
2016-08-23 3:08 ` kbuild test robot
2016-08-23 20:53 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 48/72] include/uapi/linux/android/binder.h: use __kernel_pid_t and __kernel_uid_t Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 49/72] arch/x86/include/uapi/asm/sembuf.h: include linux/types.h and linux/ipc.h Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 50/72] include/uapi/linux/fuse.h: use linux/types.h also in userspace Mikko Rapeli
2016-08-23 7:16 ` Miklos Szeredi
2016-08-23 7:39 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 51/72] include/linux/ipmi-fru.h: use linux/types.h instead of stdint.h Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 52/72] include/linux/sdb.h: use linux/types.h types " Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 53/72] include/linux/xz.h: " Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 54/72] include/uapi/xen/privcmd.h: fix compilation in userspace Mikko Rapeli
2016-08-23 10:02 ` Russell King - ARM Linux
2016-08-23 18:13 ` Stefano Stabellini
2016-08-23 20:38 ` Mikko Rapeli
2016-08-23 21:06 ` Stefano Stabellini
2016-08-22 18:33 ` [PATCH v05 55/72] include/uapi/xen/gntdev.h: include xen/privcmd.h and define grant_ref_t Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 56/72] include/uapi/xen/evtchn.h: include xen/privcmd.h Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 57/72] coda_psdev.h: move upc_req definition from uapi to kernel side headers Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 58/72] include/uapi/linux/elfcore.h: remove non-compiling userspace parts Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 59/72] include/uapi/linux/errqueue.h: include time.h in userspace Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 60/72] arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli
2016-08-24 15:02 ` Arnd Bergmann
2016-11-16 14:11 ` Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 61/72] include/uapi/rdma/rdma_user_rxe.h: include in.h and in6.h Mikko Rapeli
2016-08-23 15:03 ` Doug Ledford
2016-08-25 14:00 ` Moni Shoua
2016-08-22 18:33 ` [PATCH v05 62/72] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h Mikko Rapeli
2016-08-22 23:32 ` David Miller
2016-08-22 18:33 ` [PATCH v05 63/72] include/uapi/sound/Kbuild: remove sound/asoc.h from userspace Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 64/72] include/uapi/linux/ipx.h: fix conflicting defitions with glibc netipx/ipx.h Mikko Rapeli
2016-08-22 23:33 ` David Miller
2016-08-22 18:33 ` [PATCH v05 65/72] uapi fcntl.h: glibc fcntl.h header file compatibility fixes Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 66/72] uapi icmp.h: glibc netinet/ip_icmp.h " Mikko Rapeli
2016-08-22 23:33 ` David Miller
2016-08-23 21:21 ` Mikko Rapeli
2016-08-23 23:38 ` David Miller
2016-08-23 23:36 ` David Miller
2016-08-22 18:33 ` [PATCH v05 67/72] uapi uio.h: glibc sys/uio.h " Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 68/72] uapi ax25.h: glibc netax25/ax25.h " Mikko Rapeli
2016-08-22 23:33 ` David Miller
2016-08-22 18:33 ` [PATCH v05 69/72] uapi rose.h: glibc netrose/rose.h " Mikko Rapeli
2016-08-22 23:33 ` David Miller
2016-08-26 15:38 ` walter harms
2016-08-28 5:59 ` Mikko Rapeli
2016-08-28 12:37 ` walter harms
2016-08-29 19:34 ` David Ranch
2016-08-30 7:34 ` Mikko Rapeli
2016-11-16 19:07 ` Mikko Rapeli
2016-11-16 22:17 ` David Ranch
2016-08-22 18:33 ` [PATCH v05 70/72] uapi time.h: glibc time.h " Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 71/72] uapi term*.h: glibc termios.h " Mikko Rapeli
2016-08-22 18:33 ` [PATCH v05 72/72] uapi route.h: glibc net/route.h compat fix Mikko Rapeli
2016-08-22 23:32 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).