y2038: fix socket.h header inclusion

Referencing the __kernel_long_t type caused some user space applications
to stop compiling when they had not already included linux/posix_types.h,
e.g.

s/multicast.c -o ext/sockets/multicast.lo
In file included from /builddir/build/BUILD/php-7.3.3/main/php.h:468,
                 from /builddir/build/BUILD/php-7.3.3/ext/sockets/sockets.c:27:
/builddir/build/BUILD/php-7.3.3/ext/sockets/sockets.c: In function 'zm_startup_sockets':
/builddir/build/BUILD/php-7.3.3/ext/sockets/sockets.c:776:40: error: '__kernel_long_t' undeclared (first use in this function)
  776 |  REGISTER_LONG_CONSTANT("SO_SNDTIMEO", SO_SNDTIMEO, CONST_CS | CONST_PERSISTENT);

It is safe to include that header here, since it only contains kernel
internal types that do not conflict with other user space types.

It's still possible that some related build failures remain, but those
are likely to be for code that is not already y2038 safe.

Reported-by: Laura Abbott <labbott@redhat.com>
Fixes: a9beb86ae6 ("sock: Add SO_RCVTIMEO_NEW and SO_SNDTIMEO_NEW")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Arnd Bergmann 2019-03-11 16:38:17 +01:00 committed by David S. Miller
parent a843dc4eba
commit a623a7a1a5
5 changed files with 5 additions and 5 deletions

View File

@ -2,8 +2,8 @@
#ifndef _UAPI_ASM_SOCKET_H #ifndef _UAPI_ASM_SOCKET_H
#define _UAPI_ASM_SOCKET_H #define _UAPI_ASM_SOCKET_H
#include <linux/posix_types.h>
#include <asm/sockios.h> #include <asm/sockios.h>
#include <asm/bitsperlong.h>
/* For setsockopt(2) */ /* For setsockopt(2) */
/* /*

View File

@ -10,8 +10,8 @@
#ifndef _UAPI_ASM_SOCKET_H #ifndef _UAPI_ASM_SOCKET_H
#define _UAPI_ASM_SOCKET_H #define _UAPI_ASM_SOCKET_H
#include <linux/posix_types.h>
#include <asm/sockios.h> #include <asm/sockios.h>
#include <asm/bitsperlong.h>
/* /*
* For setsockopt(2) * For setsockopt(2)

View File

@ -2,8 +2,8 @@
#ifndef _UAPI_ASM_SOCKET_H #ifndef _UAPI_ASM_SOCKET_H
#define _UAPI_ASM_SOCKET_H #define _UAPI_ASM_SOCKET_H
#include <linux/posix_types.h>
#include <asm/sockios.h> #include <asm/sockios.h>
#include <asm/bitsperlong.h>
/* For setsockopt(2) */ /* For setsockopt(2) */
#define SOL_SOCKET 0xffff #define SOL_SOCKET 0xffff

View File

@ -2,8 +2,8 @@
#ifndef _ASM_SOCKET_H #ifndef _ASM_SOCKET_H
#define _ASM_SOCKET_H #define _ASM_SOCKET_H
#include <linux/posix_types.h>
#include <asm/sockios.h> #include <asm/sockios.h>
#include <asm/bitsperlong.h>
/* For setsockopt(2) */ /* For setsockopt(2) */
#define SOL_SOCKET 0xffff #define SOL_SOCKET 0xffff

View File

@ -2,8 +2,8 @@
#ifndef __ASM_GENERIC_SOCKET_H #ifndef __ASM_GENERIC_SOCKET_H
#define __ASM_GENERIC_SOCKET_H #define __ASM_GENERIC_SOCKET_H
#include <linux/posix_types.h>
#include <asm/sockios.h> #include <asm/sockios.h>
#include <asm/bitsperlong.h>
/* For setsockopt(2) */ /* For setsockopt(2) */
#define SOL_SOCKET 1 #define SOL_SOCKET 1