From 329042ba26fd0565dc9c927ecb6d43e2a845ff75 Mon Sep 17 00:00:00 2001 From: Johnny Mnemonic Date: Wed, 17 Jul 2024 09:43:58 +0200 Subject: [PATCH] Fix ia64 build for linux-4.19.y with extra patch for now See #2. --- ...39759474d150a9927b920a80ea2afb4c2a51.patch | 414 ++++++++++++++++++ 1 file changed, 414 insertions(+) create mode 100644 linux-4.19.y/fb3739759474d150a9927b920a80ea2afb4c2a51.patch diff --git a/linux-4.19.y/fb3739759474d150a9927b920a80ea2afb4c2a51.patch b/linux-4.19.y/fb3739759474d150a9927b920a80ea2afb4c2a51.patch new file mode 100644 index 000000000000..e6e5bc7bd5a2 --- /dev/null +++ b/linux-4.19.y/fb3739759474d150a9927b920a80ea2afb4c2a51.patch @@ -0,0 +1,414 @@ +From fb3739759474d150a9927b920a80ea2afb4c2a51 Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann +Date: Wed, 18 Apr 2018 22:01:26 +0200 +Subject: [PATCH] asm-generic: Move common compat types to asm-generic/compat.h + +While converting compat system call handlers to work on 32-bit +architectures, I found a number of types used in those handlers +that are identical between all architectures. + +Let's move all the identical ones into asm-generic/compat.h to avoid +having to add even more identical definitions of those types. + +For unknown reasons, mips defines __compat_gid32_t, __compat_uid32_t +and compat_caddr_t as signed, while all others have them unsigned. +This seems to be a mistake, but I'm leaving it alone here. The other +types all differ by size or alignment on at least on architecture. + +compat_aio_context_t is currently defined in linux/compat.h but +also needed for compat_sys_io_getevents(), so let's move it into +the same place. + +While we still have not decided whether the 32-bit time handling +will always use the compat syscalls, or in which form, I think this +is a useful cleanup that we can merge regardless. + +Reviewed-by: Christoph Hellwig +Signed-off-by: Arnd Bergmann +--- + arch/arm64/include/asm/compat.h | 20 ++------------------ + arch/mips/include/asm/compat.h | 22 ++-------------------- + arch/parisc/include/asm/compat.h | 18 ++---------------- + arch/powerpc/include/asm/compat.h | 18 ++---------------- + arch/s390/include/asm/compat.h | 18 ++---------------- + arch/sparc/include/asm/compat.h | 19 ++----------------- + arch/x86/include/asm/compat.h | 19 ++----------------- + include/asm-generic/compat.h | 24 +++++++++++++++++++++++- + include/linux/compat.h | 2 -- + 9 files changed, 37 insertions(+), 123 deletions(-) + +diff --git a/arch/arm64/include/asm/compat.h b/arch/arm64/include/asm/compat.h +index 4a89007db14a28..ee689d8a026dd7 100644 +--- a/arch/arm64/include/asm/compat.h ++++ b/arch/arm64/include/asm/compat.h +@@ -25,6 +25,8 @@ + #include + #include + ++#include ++ + #define COMPAT_USER_HZ 100 + #ifdef __AARCH64EB__ + #define COMPAT_UTS_MACHINE "armv8b\0\0" +@@ -32,10 +34,6 @@ + #define COMPAT_UTS_MACHINE "armv8l\0\0" + #endif + +-typedef u32 compat_size_t; +-typedef s32 compat_ssize_t; +-typedef s32 compat_clock_t; +-typedef s32 compat_pid_t; + typedef u16 __compat_uid_t; + typedef u16 __compat_gid_t; + typedef u16 __compat_uid16_t; +@@ -43,27 +41,13 @@ typedef u16 __compat_gid16_t; + typedef u32 __compat_uid32_t; + typedef u32 __compat_gid32_t; + typedef u16 compat_mode_t; +-typedef u32 compat_ino_t; + typedef u32 compat_dev_t; +-typedef s32 compat_off_t; +-typedef s64 compat_loff_t; + typedef s32 compat_nlink_t; + typedef u16 compat_ipc_pid_t; +-typedef s32 compat_daddr_t; + typedef u32 compat_caddr_t; + typedef __kernel_fsid_t compat_fsid_t; +-typedef s32 compat_key_t; +-typedef s32 compat_timer_t; +- +-typedef s16 compat_short_t; +-typedef s32 compat_int_t; +-typedef s32 compat_long_t; + typedef s64 compat_s64; +-typedef u16 compat_ushort_t; +-typedef u32 compat_uint_t; +-typedef u32 compat_ulong_t; + typedef u64 compat_u64; +-typedef u32 compat_uptr_t; + + struct compat_stat { + #ifdef __AARCH64EB__ +diff --git a/arch/mips/include/asm/compat.h b/arch/mips/include/asm/compat.h +index 7dcbd855814ed4..c99166eadbde15 100644 +--- a/arch/mips/include/asm/compat.h ++++ b/arch/mips/include/asm/compat.h +@@ -9,43 +9,25 @@ + #include + #include + ++#include ++ + #define COMPAT_USER_HZ 100 + #define COMPAT_UTS_MACHINE "mips\0\0\0" + +-typedef u32 compat_size_t; +-typedef s32 compat_ssize_t; +-typedef s32 compat_clock_t; +-typedef s32 compat_suseconds_t; +- +-typedef s32 compat_pid_t; + typedef s32 __compat_uid_t; + typedef s32 __compat_gid_t; + typedef __compat_uid_t __compat_uid32_t; + typedef __compat_gid_t __compat_gid32_t; + typedef u32 compat_mode_t; +-typedef u32 compat_ino_t; + typedef u32 compat_dev_t; +-typedef s32 compat_off_t; +-typedef s64 compat_loff_t; + typedef u32 compat_nlink_t; + typedef s32 compat_ipc_pid_t; +-typedef s32 compat_daddr_t; + typedef s32 compat_caddr_t; + typedef struct { + s32 val[2]; + } compat_fsid_t; +-typedef s32 compat_timer_t; +-typedef s32 compat_key_t; +- +-typedef s16 compat_short_t; +-typedef s32 compat_int_t; +-typedef s32 compat_long_t; + typedef s64 compat_s64; +-typedef u16 compat_ushort_t; +-typedef u32 compat_uint_t; +-typedef u32 compat_ulong_t; + typedef u64 compat_u64; +-typedef u32 compat_uptr_t; + + struct compat_stat { + compat_dev_t st_dev; +diff --git a/arch/parisc/include/asm/compat.h b/arch/parisc/include/asm/compat.h +index 32dadaf2b53420..e03e3c849f40aa 100644 +--- a/arch/parisc/include/asm/compat.h ++++ b/arch/parisc/include/asm/compat.h +@@ -8,36 +8,22 @@ + #include + #include + ++#include ++ + #define COMPAT_USER_HZ 100 + #define COMPAT_UTS_MACHINE "parisc\0\0" + +-typedef u32 compat_size_t; +-typedef s32 compat_ssize_t; +-typedef s32 compat_clock_t; +-typedef s32 compat_pid_t; + typedef u32 __compat_uid_t; + typedef u32 __compat_gid_t; + typedef u32 __compat_uid32_t; + typedef u32 __compat_gid32_t; + typedef u16 compat_mode_t; +-typedef u32 compat_ino_t; + typedef u32 compat_dev_t; +-typedef s32 compat_off_t; +-typedef s64 compat_loff_t; + typedef u16 compat_nlink_t; + typedef u16 compat_ipc_pid_t; +-typedef s32 compat_daddr_t; + typedef u32 compat_caddr_t; +-typedef s32 compat_key_t; +-typedef s32 compat_timer_t; +- +-typedef s32 compat_int_t; +-typedef s32 compat_long_t; + typedef s64 compat_s64; +-typedef u32 compat_uint_t; +-typedef u32 compat_ulong_t; + typedef u64 compat_u64; +-typedef u32 compat_uptr_t; + + struct compat_stat { + compat_dev_t st_dev; /* dev_t is 32 bits on parisc */ +diff --git a/arch/powerpc/include/asm/compat.h b/arch/powerpc/include/asm/compat.h +index 93f79d1a03c3a2..74d0db511099c7 100644 +--- a/arch/powerpc/include/asm/compat.h ++++ b/arch/powerpc/include/asm/compat.h +@@ -8,6 +8,8 @@ + #include + #include + ++#include ++ + #define COMPAT_USER_HZ 100 + #ifdef __BIG_ENDIAN__ + #define COMPAT_UTS_MACHINE "ppc\0\0" +@@ -15,34 +17,18 @@ + #define COMPAT_UTS_MACHINE "ppcle\0\0" + #endif + +-typedef u32 compat_size_t; +-typedef s32 compat_ssize_t; +-typedef s32 compat_clock_t; +-typedef s32 compat_pid_t; + typedef u32 __compat_uid_t; + typedef u32 __compat_gid_t; + typedef u32 __compat_uid32_t; + typedef u32 __compat_gid32_t; + typedef u32 compat_mode_t; +-typedef u32 compat_ino_t; + typedef u32 compat_dev_t; +-typedef s32 compat_off_t; +-typedef s64 compat_loff_t; + typedef s16 compat_nlink_t; + typedef u16 compat_ipc_pid_t; +-typedef s32 compat_daddr_t; + typedef u32 compat_caddr_t; + typedef __kernel_fsid_t compat_fsid_t; +-typedef s32 compat_key_t; +-typedef s32 compat_timer_t; +- +-typedef s32 compat_int_t; +-typedef s32 compat_long_t; + typedef s64 compat_s64; +-typedef u32 compat_uint_t; +-typedef u32 compat_ulong_t; + typedef u64 compat_u64; +-typedef u32 compat_uptr_t; + + struct compat_stat { + compat_dev_t st_dev; +diff --git a/arch/s390/include/asm/compat.h b/arch/s390/include/asm/compat.h +index 97db2fba546ad2..63b46e30b2c373 100644 +--- a/arch/s390/include/asm/compat.h ++++ b/arch/s390/include/asm/compat.h +@@ -9,6 +9,8 @@ + #include + #include + ++#include ++ + #define __TYPE_IS_PTR(t) (!__builtin_types_compatible_p( \ + typeof(0?(__force t)0:0ULL), u64)) + +@@ -51,34 +53,18 @@ + #define COMPAT_USER_HZ 100 + #define COMPAT_UTS_MACHINE "s390\0\0\0\0" + +-typedef u32 compat_size_t; +-typedef s32 compat_ssize_t; +-typedef s32 compat_clock_t; +-typedef s32 compat_pid_t; + typedef u16 __compat_uid_t; + typedef u16 __compat_gid_t; + typedef u32 __compat_uid32_t; + typedef u32 __compat_gid32_t; + typedef u16 compat_mode_t; +-typedef u32 compat_ino_t; + typedef u16 compat_dev_t; +-typedef s32 compat_off_t; +-typedef s64 compat_loff_t; + typedef u16 compat_nlink_t; + typedef u16 compat_ipc_pid_t; +-typedef s32 compat_daddr_t; + typedef u32 compat_caddr_t; + typedef __kernel_fsid_t compat_fsid_t; +-typedef s32 compat_key_t; +-typedef s32 compat_timer_t; +- +-typedef s32 compat_int_t; +-typedef s32 compat_long_t; + typedef s64 compat_s64; +-typedef u32 compat_uint_t; +-typedef u32 compat_ulong_t; + typedef u64 compat_u64; +-typedef u32 compat_uptr_t; + + typedef struct { + u32 mask; +diff --git a/arch/sparc/include/asm/compat.h b/arch/sparc/include/asm/compat.h +index 7018cb60beef0b..30b1763580b1d1 100644 +--- a/arch/sparc/include/asm/compat.h ++++ b/arch/sparc/include/asm/compat.h +@@ -6,38 +6,23 @@ + */ + #include + ++#include ++ + #define COMPAT_USER_HZ 100 + #define COMPAT_UTS_MACHINE "sparc\0\0" + +-typedef u32 compat_size_t; +-typedef s32 compat_ssize_t; +-typedef s32 compat_clock_t; +-typedef s32 compat_pid_t; + typedef u16 __compat_uid_t; + typedef u16 __compat_gid_t; + typedef u32 __compat_uid32_t; + typedef u32 __compat_gid32_t; + typedef u16 compat_mode_t; +-typedef u32 compat_ino_t; + typedef u16 compat_dev_t; +-typedef s32 compat_off_t; +-typedef s64 compat_loff_t; + typedef s16 compat_nlink_t; + typedef u16 compat_ipc_pid_t; +-typedef s32 compat_daddr_t; + typedef u32 compat_caddr_t; + typedef __kernel_fsid_t compat_fsid_t; +-typedef s32 compat_key_t; +-typedef s32 compat_timer_t; +- +-typedef s32 compat_int_t; +-typedef s32 compat_long_t; + typedef s64 compat_s64; +-typedef u32 compat_uint_t; +-typedef u32 compat_ulong_t; + typedef u64 compat_u64; +-typedef u32 compat_uptr_t; +- + struct compat_stat { + compat_dev_t st_dev; + compat_ino_t st_ino; +diff --git a/arch/x86/include/asm/compat.h b/arch/x86/include/asm/compat.h +index fb97cf7c413718..0ce6f452d33481 100644 +--- a/arch/x86/include/asm/compat.h ++++ b/arch/x86/include/asm/compat.h +@@ -12,38 +12,23 @@ + #include + #include + ++#include ++ + #define COMPAT_USER_HZ 100 + #define COMPAT_UTS_MACHINE "i686\0\0" + +-typedef u32 compat_size_t; +-typedef s32 compat_ssize_t; +-typedef s32 compat_clock_t; +-typedef s32 compat_pid_t; + typedef u16 __compat_uid_t; + typedef u16 __compat_gid_t; + typedef u32 __compat_uid32_t; + typedef u32 __compat_gid32_t; + typedef u16 compat_mode_t; +-typedef u32 compat_ino_t; + typedef u16 compat_dev_t; +-typedef s32 compat_off_t; +-typedef s64 compat_loff_t; + typedef u16 compat_nlink_t; + typedef u16 compat_ipc_pid_t; +-typedef s32 compat_daddr_t; + typedef u32 compat_caddr_t; + typedef __kernel_fsid_t compat_fsid_t; +-typedef s32 compat_timer_t; +-typedef s32 compat_key_t; +- +-typedef s32 compat_int_t; +-typedef s32 compat_long_t; + typedef s64 __attribute__((aligned(4))) compat_s64; +-typedef u32 compat_uint_t; +-typedef u32 compat_ulong_t; +-typedef u32 compat_u32; + typedef u64 __attribute__((aligned(4))) compat_u64; +-typedef u32 compat_uptr_t; + + struct compat_stat { + compat_dev_t st_dev; +diff --git a/include/asm-generic/compat.h b/include/asm-generic/compat.h +index 28819451b6d13f..a86f65bffab8d0 100644 +--- a/include/asm-generic/compat.h ++++ b/include/asm-generic/compat.h +@@ -1,3 +1,25 @@ + /* SPDX-License-Identifier: GPL-2.0 */ ++#ifndef __ASM_GENERIC_COMPAT_H ++#define __ASM_GENERIC_COMPAT_H + +-/* This is an empty stub for 32-bit-only architectures */ ++/* These types are common across all compat ABIs */ ++typedef u32 compat_size_t; ++typedef s32 compat_ssize_t; ++typedef s32 compat_clock_t; ++typedef s32 compat_pid_t; ++typedef u32 compat_ino_t; ++typedef s32 compat_off_t; ++typedef s64 compat_loff_t; ++typedef s32 compat_daddr_t; ++typedef s32 compat_timer_t; ++typedef s32 compat_key_t; ++typedef s16 compat_short_t; ++typedef s32 compat_int_t; ++typedef s32 compat_long_t; ++typedef u16 compat_ushort_t; ++typedef u32 compat_uint_t; ++typedef u32 compat_ulong_t; ++typedef u32 compat_uptr_t; ++typedef u32 compat_aio_context_t; ++ ++#endif +diff --git a/include/linux/compat.h b/include/linux/compat.h +index 0e058792ecf642..d376fa8be00d02 100644 +--- a/include/linux/compat.h ++++ b/include/linux/compat.h +@@ -110,8 +110,6 @@ typedef struct compat_sigaltstack { + typedef __compat_uid32_t compat_uid_t; + typedef __compat_gid32_t compat_gid_t; + +-typedef compat_ulong_t compat_aio_context_t; +- + struct compat_sel_arg_struct; + struct rusage; +