On Mon, Jan 17, 2022 at 01:37:08PM -0600, Justin Forbes wrote:
> For kernel, the only bug on the GCC side I'm aware of is
>
https://gcc.gnu.org/PR101941
We are seeing similar issues in a few different files depending on
arch. Largely due to options compiled in and compile order, nothing
particularly arch specific. All of the failures are with
fortify_string, some are read beyond size of object. Some are write
beyond size of object. Some are directive output may be truncated.
These kernels all build fine against f35 and stable fedora kernels
fail against rawhide, so it is definitely the toolchain changes, and
not limited to bad code brought in through the 5.17 merge window. A
good sampling of the errors can be seen in the build log for
https://koji.fedoraproject.org/koji/taskinfo?taskID=81369256 with most
arches failing in different places.
All I've looked at (besides PR101941) was
check.c:2836:58: error: '%d' directive output may be truncated writing between 1
and 10 bytes into a region of size 9 [-Werror=format-truncation=]
which boils down to roughly:
char a[16];
void f (int x, int y)
{
int idx;
if (y)
{
idx = x / sizeof (void *);
snprintf (a, sizeof a, "pv_ops[%d]", idx);
}
}
where the warning doesn't seem to be a false positive,
though perhaps it would need to be a very large module.
pv_ops[-268435456] is the longest string for lp64 and
pv_ops[-536870912] for ilp32, but even when not negative,
pv_ops[536870911] is 18 bytes including zero termination, not 16.
If you have other warnings and they seem to be false positives, please
send them to Martin Sebor.
Jakub