drm/radeon/r600_cs: Build failures with GCC 16
Brahmajit Das
listout at listout.xyz
Sat Aug 9 09:36:35 UTC 2025
On 09.08.2025 04:45, Brahmajit Das wrote:
> Hello Developers,
>
> Building linux-next with GCC 16 results in this following build error
>
> $ make
> CALL scripts/checksyscalls.sh
> DESCEND objtool
> INSTALL libsubcmd_headers
> CC drivers/gpu/drm/radeon/r600_cs.o
> drivers/gpu/drm/radeon/r600_cs.c: In function ‘r600_texture_size’:
> drivers/gpu/drm/radeon/r600_cs.c:1411:29: error: variable ‘level’ set but not used [-Werror=unused-but-set-variable=]
> 1411 | unsigned offset, i, level;
> | ^~~~~
> cc1: all warnings being treated as errors
> make[6]: *** [scripts/Makefile.build:287: drivers/gpu/drm/radeon/r600_cs.o] Error 1
> make[5]: *** [scripts/Makefile.build:556: drivers/gpu/drm/radeon] Error 2
> make[4]: *** [scripts/Makefile.build:556: drivers/gpu/drm] Error 2
> make[3]: *** [scripts/Makefile.build:556: drivers/gpu] Error 2
> make[2]: *** [scripts/Makefile.build:556: drivers] Error 2
> make[1]: *** [/home/listout/linux/Makefile:2011: .] Error 2
> make: *** [Makefile:248: __sub-make] Error 2
>
> I'm not sure whether this is kernel bug or GCC bug at the moment. But
> building with GCC 15 does not give this error, hence I'm more inclined
> towards the latter.
> Planning to also report this on GCC side, wanted to get some
> opinion/feedback from kernel devs as well.
> I'm on GCC 16.0.0_p2025080.
>
> --
> Regards,
> listout
After giving a more thorough look, the level usage seems like dead code?
It's just set (level = blevel) and incremented in the loop (level++). I
don't see any other usage of the level variable. So if we do something
like
diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c
index ac77d1246b94..953ce0c57dfb 100644
--- a/drivers/gpu/drm/radeon/r600_cs.c
+++ b/drivers/gpu/drm/radeon/r600_cs.c
@@ -1408,7 +1408,7 @@ static void r600_texture_size(unsigned nfaces, unsigned blevel, unsigned llevel,
unsigned block_align, unsigned height_align, unsigned base_align,
unsigned *l0_size, unsigned *mipmap_size)
{
- unsigned offset, i, level;
+ unsigned offset, i;
unsigned width, height, depth, size;
unsigned blocksize;
unsigned nbx, nby;
@@ -1420,7 +1420,7 @@ static void r600_texture_size(unsigned nfaces, unsigned blevel, unsigned llevel,
w0 = r600_mip_minify(w0, 0);
h0 = r600_mip_minify(h0, 0);
d0 = r600_mip_minify(d0, 0);
- for(i = 0, offset = 0, level = blevel; i < nlevels; i++, level++) {
+ for(i = 0, offset = 0; i < nlevels; i++) {
width = r600_mip_minify(w0, i);
nbx = r600_fmt_get_nblocksx(format, width);
I think it should be fine.
Would really appreciate some feedback.
(CC-ed Dave)
--
Regards,
listout
More information about the amd-gfx
mailing list