From be62bbb621fae189f449f522512093b034cd2640 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 3 Jan 2019 14:13:32 +0100 Subject: [PATCH] riscv: Use __has_include__ to include [BZ #24022] has been removed by commit 27f8899d6002e11a6e2d995e29b8deab5aa9cc25 Author: David Abdurachmanov 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. 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 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 exists with __has_include__ before including it. (cherry picked from commit 0b9c84906f653978fb8768c7ebd0ee14a47e662e) --- ChangeLog | 6 ++++++ NEWS | 1 + sysdeps/unix/sysv/linux/riscv/flush-icache.c | 6 +++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 8de81aa559..967050e2c9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2018-12-31 H.J. Lu + + [BZ #24022] + * sysdeps/unix/sysv/linux/riscv/flush-icache.c: Check if + exists with __has_include__ before including it. + 2019-01-02 Florian Weimer [BZ #24018] diff --git a/NEWS b/NEWS index 865c075c82..388ac09060 100644 --- a/NEWS +++ b/NEWS @@ -29,6 +29,7 @@ The following bugs are resolved with this release: [23927] Linux if_nametoindex() does not close descriptor (CVE-2018-19591) [23972] __old_getdents64 uses wrong d_off value on overflow [24018] gettext may return NULL + [24022] riscv may lack [24027] malloc: Integer overflow in realloc Security related changes: 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 #include #include -#include +#if __has_include__ () +# include +#else +# include +#endif typedef int (*func_type) (void *, void *, unsigned long int);