Re: [PATCH] tools: include: add proper strscpy() declaration
From: kernel test robot
Date: Sun May 10 2026 - 19:26:57 EST
Hi Lucas,
kernel test robot noticed the following build errors:
[auto build test ERROR on linus/master]
[also build test ERROR on v7.1-rc2 next-20260508]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Lucas-Poupeau/tools-include-add-proper-strscpy-declaration/20260511-022707
base: linus/master
patch link: https://lore.kernel.org/r/20260504212301.63750-1-lucasp.linux%40gmail.com
patch subject: [PATCH] tools: include: add proper strscpy() declaration
config: x86_64-randconfig-012-20260511 (https://download.01.org/0day-ci/archive/20260511/202605110734.1Vga6ipo-lkp@xxxxxxxxx/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260511/202605110734.1Vga6ipo-lkp@xxxxxxxxx/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605110734.1Vga6ipo-lkp@xxxxxxxxx/
All errors (new ones prefixed by >>):
In file included from parse-options.c:3:
>> tools/include/linux/string.h:32:8: error: unknown type name 'ssize_t'; did you mean 'size_t'?
32 | extern ssize_t strscpy(char *dest, const char *src, size_t count);
| ^~~~~~~
| size_t
>> tools/include/linux/string.h:36:7: error: redundant redeclaration of 'str_error_r' [-Werror=redundant-decls]
36 | char *str_error_r(int errnum, char *buf, size_t buflen);
| ^~~~~~~~~~~
tools/include/linux/string.h:34:7: note: previous declaration of 'str_error_r' with type 'char *(int, char *, size_t)' {aka 'char *(int, char *, long unsigned int)'}
34 | char *str_error_r(int errnum, char *buf, size_t buflen);
| ^~~~~~~~~~~
In file included from exec-cmd.c:3:
>> tools/include/linux/string.h:32:8: error: unknown type name 'ssize_t'; did you mean 'size_t'?
32 | extern ssize_t strscpy(char *dest, const char *src, size_t count);
| ^~~~~~~
| size_t
>> tools/include/linux/string.h:36:7: error: redundant redeclaration of 'str_error_r' [-Werror=redundant-decls]
36 | char *str_error_r(int errnum, char *buf, size_t buflen);
| ^~~~~~~~~~~
tools/include/linux/string.h:34:7: note: previous declaration of 'str_error_r' with type 'char *(int, char *, size_t)' {aka 'char *(int, char *, long unsigned int)'}
34 | char *str_error_r(int errnum, char *buf, size_t buflen);
| ^~~~~~~~~~~
In file included from run-command.c:9:
>> tools/include/linux/string.h:36:7: error: redundant redeclaration of 'str_error_r' [-Werror=redundant-decls]
36 | char *str_error_r(int errnum, char *buf, size_t buflen);
| ^~~~~~~~~~~
tools/include/linux/string.h:34:7: note: previous declaration of 'str_error_r' with type 'char *(int, char *, size_t)' {aka 'char *(int, char *, long unsigned int)'}
34 | char *str_error_r(int errnum, char *buf, size_t buflen);
| ^~~~~~~~~~~
In file included from help.c:5:
>> tools/include/linux/string.h:36:7: error: redundant redeclaration of 'str_error_r' [-Werror=redundant-decls]
36 | char *str_error_r(int errnum, char *buf, size_t buflen);
| ^~~~~~~~~~~
tools/include/linux/string.h:34:7: note: previous declaration of 'str_error_r' with type 'char *(int, char *, size_t)' {aka 'char *(int, char *, long unsigned int)'}
34 | char *str_error_r(int errnum, char *buf, size_t buflen);
| ^~~~~~~~~~~
cc1: all warnings being treated as errors
cc1: all warnings being treated as errors
make[6]: *** [tools/build/Makefile.build:95: tools/objtool/libsubcmd/exec-cmd.o] Error 1 shuffle=2681766322
make[6]: *** [tools/build/Makefile.build:95: tools/objtool/libsubcmd/parse-options.o] Error 1 shuffle=2681766322
cc1: all warnings being treated as errors
make[6]: *** [tools/build/Makefile.build:95: tools/objtool/libsubcmd/run-command.o] Error 1 shuffle=2681766322
cc1: all warnings being treated as errors
make[6]: *** [tools/build/Makefile.build:95: tools/objtool/libsubcmd/help.o] Error 1 shuffle=2681766322
make[6]: Target '__build' not remade because of errors.
make[5]: *** [Makefile:78: tools/objtool/libsubcmd/libsubcmd-in.o] Error 2 shuffle=2681766322
make[5]: Target 'tools/objtool/libsubcmd/libsubcmd.a' not remade because of errors.
make[4]: *** [Makefile:135: tools/objtool/libsubcmd/libsubcmd.a] Error 2 shuffle=2681766322
make[4]: Target 'all' not remade because of errors.
make[3]: *** [Makefile:74: objtool] Error 2 shuffle=2681766322
make[2]: *** [Makefile:1557: tools/objtool] Error 2 shuffle=2681766322
make[2]: Target 'prepare' not remade because of errors.
make[1]: *** [Makefile:248: __sub-make] Error 2 shuffle=2681766322
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2 shuffle=2681766322
make: Target 'prepare' not remade because of errors.
vim +32 tools/include/linux/string.h
31
> 32 extern ssize_t strscpy(char *dest, const char *src, size_t count);
33
34 char *str_error_r(int errnum, char *buf, size_t buflen);
35
> 36 char *str_error_r(int errnum, char *buf, size_t buflen);
37
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki