summaryrefslogtreecommitdiffstats
path: root/drivers/firmware/efi/libstub/string.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2025-04-23 10:08:29 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2025-04-23 10:08:29 -0700
commita79be02bba5c31f967885c7f3bf3a756d77d11d9 (patch)
treedab3f0fe3372bf62d98fca41f8ebd7cb36d1c85b /drivers/firmware/efi/libstub/string.c
parent82efd569a8909f2b13140c1b3de88535aea0b051 (diff)
downloadlinux-master.tar.gz
linux-master.tar.bz2
linux-master.zip
Fix mis-uses of 'cc-option' for warning disablementHEADmaster
This was triggered by one of my mis-uses causing odd build warnings on sparc in linux-next, but while figuring out why the "obviously correct" use of cc-option caused such odd breakage, I found eight other cases of the same thing in the tree. The root cause is that 'cc-option' doesn't work for checking negative warning options (ie things like '-Wno-stringop-overflow') because gcc will silently accept options it doesn't recognize, and so 'cc-option' ends up thinking they are perfectly fine. And it all works, until you have a situation where _another_ warning is emitted. At that point the compiler will go "Hmm, maybe the user intended to disable this warning but used that wrong option that I didn't recognize", and generate a warning for the unrecognized negative option. Which explains why we have several cases of this in the tree: the 'cc-option' test really doesn't work for this situation, but most of the time it simply doesn't matter that ity doesn't work. The reason my recently added case caused problems on sparc was pointed out by Thomas Weißschuh: the sparc build had a previous explicit warning that then triggered the new one. I think the best fix for this would be to make 'cc-option' a bit smarter about this sitation, possibly by adding an intentional warning to the test case that then triggers the unrecognized option warning reliably. But the short-term fix is to replace 'cc-option' with an existing helper designed for this exact case: 'cc-disable-warning', which picks the negative warning but uses the positive form for testing the compiler support. Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Link: https://lore.kernel.org/all/20250422204718.0b4e3f81@canb.auug.org.au/ Explained-by: Thomas Weißschuh <linux@weissschuh.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/firmware/efi/libstub/string.c')
0 files changed, 0 insertions, 0 deletions