From ad77b1bcca2499f422528c0af4b6f5565512d8bd Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Netto Date: Thu, 24 Aug 2023 13:42:16 -0300 Subject: [PATCH] linux: Define __ASSUME_CLONE3 to 0 for alpha, ia64, nios2, sh, and sparc Not all architectures added clone3 syscall. Reviewed-by: Florian Weimer --- .../unix/sysv/linux/alpha/kernel-features.h | 4 ++++ .../unix/sysv/linux/ia64/kernel-features.h | 4 ++++ .../unix/sysv/linux/nios2/kernel-features.h | 24 +++++++++++++++++++ sysdeps/unix/sysv/linux/sh/kernel-features.h | 4 ++++ .../unix/sysv/linux/sparc/kernel-features.h | 4 ++++ 5 files changed, 40 insertions(+) create mode 100644 sysdeps/unix/sysv/linux/nios2/kernel-features.h diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h index 3151e75449..d14c010333 100644 --- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h +++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h @@ -50,4 +50,8 @@ /* Alpha requires old sysvipc even being a 64-bit architecture. */ #undef __ASSUME_SYSVIPC_DEFAULT_IPC_64 +/* Alpha does not provide clone3. */ +#undef __ASSUME_CLONE3 +#define __ASSUME_CLONE3 0 + #endif /* _KERNEL_FEATURES_H */ diff --git a/sysdeps/unix/sysv/linux/ia64/kernel-features.h b/sysdeps/unix/sysv/linux/ia64/kernel-features.h index 98ebfb74bf..398ec37328 100644 --- a/sysdeps/unix/sysv/linux/ia64/kernel-features.h +++ b/sysdeps/unix/sysv/linux/ia64/kernel-features.h @@ -34,4 +34,8 @@ #undef __ASSUME_CLONE_DEFAULT #define __ASSUME_CLONE2 +/* ia64 does not provide clone3. */ +#undef __ASSUME_CLONE3 +#define __ASSUME_CLONE3 0 + #endif /* _KERNEL_FEATURES_H */ diff --git a/sysdeps/unix/sysv/linux/nios2/kernel-features.h b/sysdeps/unix/sysv/linux/nios2/kernel-features.h new file mode 100644 index 0000000000..239e507272 --- /dev/null +++ b/sysdeps/unix/sysv/linux/nios2/kernel-features.h @@ -0,0 +1,24 @@ +/* Set flags signalling availability of kernel features based on given + kernel version number. NIOS2 version. + Copyright (C) 2023 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + 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, see + . */ + +#include_next + +/* nios2 does not provide clone3. */ +#undef __ASSUME_CLONE3 +#define __ASSUME_CLONE3 0 diff --git a/sysdeps/unix/sysv/linux/sh/kernel-features.h b/sysdeps/unix/sysv/linux/sh/kernel-features.h index 953fa8dff0..3eaf9e0857 100644 --- a/sysdeps/unix/sysv/linux/sh/kernel-features.h +++ b/sysdeps/unix/sysv/linux/sh/kernel-features.h @@ -55,4 +55,8 @@ # undef __ASSUME_STATX #endif +/* sh does not provide clone3. */ +#undef __ASSUME_CLONE3 +#define __ASSUME_CLONE3 0 + #endif diff --git a/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/sysdeps/unix/sysv/linux/sparc/kernel-features.h index 98c938c16d..fcb343ef63 100644 --- a/sysdeps/unix/sysv/linux/sparc/kernel-features.h +++ b/sysdeps/unix/sysv/linux/sparc/kernel-features.h @@ -87,3 +87,7 @@ (INLINE_CLONE_SYSCALL). */ #undef __ASSUME_CLONE_DEFAULT #define __ASSUME_CLONE_BACKWARDS 1 + +/* sparc does not provide clone3. */ +#undef __ASSUME_CLONE3 +#define __ASSUME_CLONE3 0