| From 34c78b21878ae7b0471299d11a7e861125e31b2c Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Geoffrey=20Le=20Gourri=C3=A9rec?= |
| <geoffrey.legourrierec@gmail.com> |
| Date: Mon, 18 Jan 2021 23:40:28 +0100 |
| Subject: [PATCH] Use types.h and not time_types.h in sockios.h |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| This fixes builds for sh arch when libc is not using relevant |
| time data structures definitions for 32-bit machines. A previous |
| commit [1] provided a fix, that we seemed to slip through here. |
| |
| As of the time of this writing, the bug was found with non- |
| up to date uclibc 1.0.37 only (currently the only libc supporting |
| sh architecture). |
| |
| [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fc94cf2092c7c1267fa2deb8388d624f50eba808 |
| |
| Signed-off-by: Geoffrey Le Gourriérec <geoffrey.legourrierec@gmail.com> |
| Cc: Arnd Bergmann <arnd@arndb.de> |
| |
| --- |
| |
| For the record, here's the build-time error: |
| |
| /usr/bin/make -j2 -C /builds/clumsyape/buildroot/output/build/uclibc-1.0.37 ARCH="sh" CROSS_COMPILE="/builds/clumsyape/buildroot/output/host/bin/sh4-buildroot-linux-uclibc-" UCLIBC_EXTRA_CFLAGS="" HOSTCC="/usr/bin/gcc" |
| make[1]: Entering directory '/builds/clumsyape/buildroot/output/build/uclibc-1.0.37' |
| GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelcond.h |
| GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelcond.h |
| GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.h |
| GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.h |
| In file included from /builds/clumsyape/buildroot/output/build/linux-headers-5.10.7/usr/include/asm/sockios.h:5, |
| from /builds/clumsyape/buildroot/output/build/linux-headers-5.10.7/usr/include/asm-generic/socket.h:6, |
| from /builds/clumsyape/buildroot/output/build/linux-headers-5.10.7/usr/include/asm/socket.h:1, |
| from ./include/bits/socket.h:360, |
| from ./include/sys/socket.h:39, |
| from ./include/netinet/in.h:24, |
| from ./include/resolv.h:57, |
| from ./libpthread/nptl/descr.h:36, |
| from ./libpthread/nptl/pthreadP.h:25, |
| from <stdin>:2: |
| /builds/clumsyape/buildroot/output/build/linux-headers-5.10.7/usr/include/linux/time_types.h:8:2: error: unknown type name '__kernel_time64_t' |
| 8 | __kernel_time64_t tv_sec; /* seconds */ |
| | ^~~~~~~~~~~~~~~~~ |
| /builds/clumsyape/buildroot/output/build/linux-headers-5.10.7/usr/include/linux/time_types.h:32:2: error: unknown type name '__kernel_old_time_t' |
| 32 | __kernel_old_time_t tv_sec; /* seconds */ |
| | ^~~~~~~~~~~~~~~~~~~ |
| libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch:135: recipe for target 'libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.h' failed |
| make[1]: *** [libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.h] Error 1 |
| make[1]: Leaving directory '/builds/clumsyape/buildroot/output/build/uclibc-1.0.37' |
| |
| I did a quick header dependency analysis starting from __kernel_time64_t |
| (one of the offending types), but could "follow up" to linux/time_types.h |
| as expected; so I fail to understand how this could break. What's even |
| more confusing is linux/time_types.h includes linux/types.h itself. |
| --- |
| arch/sh/include/uapi/asm/sockios.h | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/arch/sh/include/uapi/asm/sockios.h b/arch/sh/include/uapi/asm/sockios.h |
| index ef01ced9e169..d97d14685305 100644 |
| --- a/arch/sh/include/uapi/asm/sockios.h |
| +++ b/arch/sh/include/uapi/asm/sockios.h |
| @@ -2,7 +2,7 @@ |
| #ifndef __ASM_SH_SOCKIOS_H |
| #define __ASM_SH_SOCKIOS_H |
| |
| -#include <linux/time_types.h> |
| +#include <linux/types.h> |
| |
| /* Socket-level I/O control calls. */ |
| #define FIOGETOWN _IOR('f', 123, int) |
| -- |
| 2.17.1 |
| |