On Fri, 1 Nov 2019, Martin Sebor wrote:
> Rebuilding the kernel with the updated patch results in the following
> breakdown of the two warnings (the numbers are total instances of each,
> unique instances, and files they come from):
>
> -Wzero-length-bounds 49 46 13
> -Warray-bounds 45 14 8
>
> The -Warray-bounds instances I checked look legitimate even though
> the code is some of them still looks benign. I'm not sure there's
> a good way to relax the warning to sanction some of these abuses
> without also missing some bugs. It might be worth looking into
> some more in stage 3, depending on the fallout during mass rebuild.
>
> After bootstrapping on x86_64 and i385 and regtesting I committed
> the attached patch in r277728.
It is what I believe has also broken glibc:
In file included from ../sysdeps/riscv/libc-tls.c:19:
../csu/libc-tls.c: In function '__libc_setup_tls':
../csu/libc-tls.c:209:30: error: array subscript 1 is outside the bounds of an
interior zero-length array 'struct dtv_slotinfo[0]' [-Werror=zero-length-bounds]
209 | static_slotinfo.si.slotinfo[1].map = main_map;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
In file included from ../sysdeps/riscv/ldsodefs.h:46,
from ../sysdeps/gnu/ldsodefs.h:46,
from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
from ../sysdeps/unix/sysv/linux/riscv/ldsodefs.h:22,
from ../csu/libc-tls.c:21,
from ../sysdeps/riscv/libc-tls.c:19:
../sysdeps/generic/ldsodefs.h:423:7: note: while referencing 'slotinfo'
423 | } slotinfo[0];
| ^~~~~~~~
cc1: all warnings being treated as errors
(here in a RISC-V build).
Has anybody looked yet into how the breakage could possibly be addressed?
Maciej