With C23, the following 12 functions were updated to have 'const-aware'
return types:

bsearch(), bsearch_s(), memchr(), strchr(), strpbrk(), strrchr(),
strstr(), wcschr(), wcspbrk(), wcsrchr(), wcsstr(), and wmemchr().

Of these functions, strchr(), strpbrk(), strrchr(), and strstr(), are
used within GRUB, and for 3 of these functions, strchr(), strrchr(), and
strstr(), some of their calls within GRUB are now resulting in
compile-time errors due to the C23 changes and 'discarding qualifier'
errors. The errors are generated by elevating 'discarding qualifier'
warnings to error-level. A promotion GRUB's build system defaults to
doing.

Most of the changes this patch series makes to fix these errors are
simple and only requiring changing a variable's type from 'char *' to
'const char *'.  However, the changes in ofpath.c are more involved as
they also update the way lengths are calculated and *printf() functions
are called as a result of these C23 changes.

Furthermore, the changes are needed as C runtime libraries, notably
glbc starting with version 2.43, are implementing the changes the C23
standard requires.

Signed-off-by: Nicholas Vinson <[email protected]>

Nicholas Vinson (3):
  grub-core/osdep/linux/ofpath.c: Update strstr() calls
  util/probe.c: save strrchr() ret val to const data ptr.
  util/resolve.c: Save str[r]chr() ret val to const data ptr

 grub-core/osdep/linux/ofpath.c | 25 ++++++++++++-------------
 util/probe.c                   |  6 +++---
 util/resolve.c                 | 10 +++++-----
 3 files changed, 20 insertions(+), 21 deletions(-)

-- 
2.53.0


_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to