public inbox for llvm@lists.linux.dev
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Kees Cook <keescook@chromium.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	Justin Stitt <justinstitt@google.com>
Subject: [kees:devel/hardening/v6.8/2-arg-strscpy 1/2] include/linux/suspend.h:81:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations
Date: Thu, 1 Feb 2024 04:11:53 +0800	[thread overview]
Message-ID: <202402010432.vVJfVbUz-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git devel/hardening/v6.8/2-arg-strscpy
head:   52fcd0404512a41ebc6f406977ac04ffd86349fc
commit: 8f94a332197dea2f8461b136697955624250671b [1/2] string: Allow 2-argument strscpy()
config: arm-mmp2_defconfig (https://download.01.org/0day-ci/archive/20240201/202402010432.vVJfVbUz-lkp@intel.com/config)
compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project.git 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240201/202402010432.vVJfVbUz-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402010432.vVJfVbUz-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from init/do_mounts.c:7:
>> include/linux/suspend.h:81:2: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           strscpy(suspend_stats.failed_devs[suspend_stats.last_failed_dev],
           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
   In file included from init/do_mounts.c:7:
>> include/linux/suspend.h:81:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   In file included from init/do_mounts.c:7:
   include/linux/suspend.h:81:2: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
>> init/do_mounts.c:65:2: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           strscpy(saved_root_name, line, sizeof(saved_root_name));
           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
>> init/do_mounts.c:65:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   init/do_mounts.c:65:2: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   init/do_mounts.c:137:2: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           strscpy(p, root_fs_names, size);
           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
   init/do_mounts.c:137:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   init/do_mounts.c:137:2: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   9 errors generated.
--
>> init/version.c:26:11: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           arglen = strscpy(init_uts_ns.name.nodename, arg, bufsize);
                    ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
>> init/version.c:26:11: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   init/version.c:26:11: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   3 errors generated.
--
   In file included from kernel/sys.c:30:
>> include/linux/suspend.h:81:2: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           strscpy(suspend_stats.failed_devs[suspend_stats.last_failed_dev],
           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
   In file included from kernel/sys.c:30:
>> include/linux/suspend.h:81:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   In file included from kernel/sys.c:30:
   include/linux/suspend.h:81:2: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   3 errors generated.
--
>> kernel/params.c:854:4: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
                           strscpy(modname, kp->name, name_len);
                           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
>> kernel/params.c:854:4: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   kernel/params.c:854:4: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   3 errors generated.
--
>> kernel/kallsyms.c:664:2: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           strscpy(iter->module_name, "bpf", MODULE_NAME_LEN);
           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
>> kernel/kallsyms.c:664:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   kernel/kallsyms.c:664:2: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   kernel/kallsyms.c:684:2: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           strscpy(iter->module_name, "__builtin__kprobes", MODULE_NAME_LEN);
           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
   kernel/kallsyms.c:684:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   kernel/kallsyms.c:684:2: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   6 errors generated.
--
>> kernel/seccomp.c:2285:10: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
                           ret = strscpy(names, sep, size);
                                 ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
>> kernel/seccomp.c:2285:10: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   kernel/seccomp.c:2285:10: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   kernel/seccomp.c:2294:9: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
                   ret = strscpy(names, cur->name, size);
                         ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
   kernel/seccomp.c:2294:9: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   kernel/seccomp.c:2294:9: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   6 errors generated.
--
>> mm/dmapool.c:258:2: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           strscpy(retval->name, name, sizeof(retval->name));
           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
>> mm/dmapool.c:258:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   mm/dmapool.c:258:2: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   3 errors generated.
--
>> fs/super.c:770:2: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           strscpy(s->s_id, s->s_type->name, sizeof(s->s_id));
           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
>> fs/super.c:770:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   fs/super.c:770:2: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   fs/super.c:858:2: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           strscpy(s->s_id, type->name, sizeof(s->s_id));
           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
   fs/super.c:858:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   fs/super.c:858:2: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   6 errors generated.
--
>> fs/char_dev.c:153:2: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           strscpy(cd->name, name, sizeof(cd->name));
           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
>> fs/char_dev.c:153:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   fs/char_dev.c:153:2: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   3 errors generated.
--
>> crypto/api.c:119:2: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           strscpy(larval->alg.cra_name, name, CRYPTO_MAX_ALG_NAME);
           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
>> crypto/api.c:119:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   crypto/api.c:119:2: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   3 errors generated.
--
>> crypto/aead.c:186:2: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           strscpy(raead.type, "aead", sizeof(raead.type));
           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
>> crypto/aead.c:186:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   crypto/aead.c:186:2: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   crypto/aead.c:187:2: error: use of undeclared identifier '__strscpy'
           strscpy(raead.geniv, "<none>", sizeof(raead.geniv));
           ^
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   crypto/aead.c:227:2: error: call to undeclared function 'CONCATENATE'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           strscpy(raead.type, "aead", sizeof(raead.type));
           ^
   include/linux/string.h:105:2: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
           ^
   crypto/aead.c:227:2: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
   include/linux/string.h:105:25: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                                  ^
   crypto/aead.c:227:2: error: use of undeclared identifier '__strscpy'
   include/linux/string.h:105:14: note: expanded from macro 'strscpy'
           CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__)
                       ^
   7 errors generated.
..


vim +/COUNT_ARGS +81 include/linux/suspend.h

2a77c46de1e3da ShuoX Liu    2011-08-10  78  
2a77c46de1e3da ShuoX Liu    2011-08-10  79  static inline void dpm_save_failed_dev(const char *name)
2a77c46de1e3da ShuoX Liu    2011-08-10  80  {
bd8092def983f5 Wolfram Sang 2022-08-18 @81  	strscpy(suspend_stats.failed_devs[suspend_stats.last_failed_dev],
2a77c46de1e3da ShuoX Liu    2011-08-10  82  		name,
2a77c46de1e3da ShuoX Liu    2011-08-10  83  		sizeof(suspend_stats.failed_devs[0]));
2a77c46de1e3da ShuoX Liu    2011-08-10  84  	suspend_stats.last_failed_dev++;
2a77c46de1e3da ShuoX Liu    2011-08-10  85  	suspend_stats.last_failed_dev %= REC_FAILED_NUM;
2a77c46de1e3da ShuoX Liu    2011-08-10  86  }
2a77c46de1e3da ShuoX Liu    2011-08-10  87  

:::::: The code at line 81 was first introduced by commit
:::::: bd8092def983f567800f764a5d23b2dca98f078c PM: suspend: move from strlcpy() with unused retval to strscpy()

:::::: TO: Wolfram Sang <wsa+renesas@sang-engineering.com>
:::::: CC: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2024-01-31 20:12 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202402010432.vVJfVbUz-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=justinstitt@google.com \
    --cc=keescook@chromium.org \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox