process-util: use clone2 on ia64
glibc does not provide clone() on ia64, only clone2. But only as a symbol in the shared library, there's no prototype in the gblic headers, so we have to define it, copied from the manpage.
This commit is contained in:
@@ -654,3 +654,17 @@ static inline ssize_t missing_getdents64(int fd, void *buffer, size_t length) {
|
||||
|
||||
# define getdents64 missing_getdents64
|
||||
#endif
|
||||
|
||||
/* ======================================================================= */
|
||||
|
||||
/* glibc does not provide clone() on ia64, only clone2(). Not only that, but it also doesn't provide a
|
||||
* prototype, only the symbol in the shared library (it provides a prototype for clone(), but not the
|
||||
* symbol in the shared library). */
|
||||
#if defined(__ia64__)
|
||||
int __clone2(int (*fn)(void *), void *stack_base, size_t stack_size, int flags, void *arg);
|
||||
#define HAVE_CLONE 0
|
||||
#else
|
||||
/* We know that everywhere else clone() is available, so we don't bother with a meson check (that takes time
|
||||
* at build time) and just define it. Once the kernel drops ia64 support, we can drop this too. */
|
||||
#define HAVE_CLONE 1
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user