diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2018-12-31 09:26:42 -0800 |
---|---|---|
committer | Andreas K. Hüttel <dilfridge@gentoo.org> | 2019-01-08 13:07:07 +0100 |
commit | b462a389ad5ffdf99d87ba3ef832dd41d55cb90b (patch) | |
tree | 7b383f45f9dc6a484565f727489a921a82e765e7 | |
parent | [no-patch] Gentoo: Add --inplace-glibc switch to locale-gen (diff) | |
download | glibc-b462a389ad5ffdf99d87ba3ef832dd41d55cb90b.tar.gz glibc-b462a389ad5ffdf99d87ba3ef832dd41d55cb90b.tar.bz2 glibc-b462a389ad5ffdf99d87ba3ef832dd41d55cb90b.zip |
riscv: Use __has_include__ to include <asm/syscalls.h> [BZ #24022]
<asm/syscalls.h> has been removed by
commit 27f8899d6002e11a6e2d995e29b8deab5aa9cc25
Author: David Abdurachmanov <david.abdurachmanov@gmail.com>
Date: Thu Nov 8 20:02:39 2018 +0100
riscv: add asm/unistd.h UAPI header
Marcin Juszkiewicz reported issues while generating syscall table for riscv
using 4.20-rc1. The patch refactors our unistd.h files to match some other
architectures.
- Add asm/unistd.h UAPI header, which has __ARCH_WANT_NEW_STAT only for 64-bit
- Remove asm/syscalls.h UAPI header and merge to asm/unistd.h
- Adjust kernel asm/unistd.h
So now asm/unistd.h UAPI header should show all syscalls for riscv.
<asm/syscalls.h> may be restored by
Subject: [PATCH] riscv: restore asm/syscalls.h UAPI header
Date: Tue, 11 Dec 2018 09:09:35 +0100
UAPI header asm/syscalls.h was merged into UAPI asm/unistd.h header,
which did resolve issue with missing syscalls macros resulting in
glibc (2.28) build failure. It also broke glibc in a different way:
asm/syscalls.h is being used by glibc. I noticed this while doing
Fedora 30/Rawhide mass rebuild.
The patch returns asm/syscalls.h header and incl. it into asm/unistd.h.
I plan to send a patch to glibc to use asm/unistd.h instead of
asm/syscalls.h
In the meantime, we use __has_include__, which was added to GCC 5, to
check if <asm/syscalls.h> exists before including it. Tested with
build-many-glibcs.py for riscv against kernel 4.19.12 and 4.20-rc7.
[BZ #24022]
* sysdeps/unix/sysv/linux/riscv/flush-icache.c: Check if
<asm/syscalls.h> exists with __has_include__ before including it.
(cherry picked from commit 0b9c84906f653978fb8768c7ebd0ee14a47e662e)
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
-rw-r--r-- | sysdeps/unix/sysv/linux/riscv/flush-icache.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/riscv/flush-icache.c b/sysdeps/unix/sysv/linux/riscv/flush-icache.c index d612ef4c6c..0b2042620b 100644 --- a/sysdeps/unix/sysv/linux/riscv/flush-icache.c +++ b/sysdeps/unix/sysv/linux/riscv/flush-icache.c @@ -21,7 +21,11 @@ #include <stdlib.h> #include <atomic.h> #include <sys/cachectl.h> -#include <asm/syscalls.h> +#if __has_include__ (<asm/syscalls.h>) +# include <asm/syscalls.h> +#else +# include <asm/unistd.h> +#endif typedef int (*func_type) (void *, void *, unsigned long int); |