<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/148331>148331</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang][KASAN][RISCV]How to Correctly Build Clang Containing KASAN
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          dong-miao
      </td>
    </tr>
</table>

<pre>
    ### Description
I am a beginner in clang.I want to debug the running process of LLVM KASAN for riscv64, but I used the following build configuration and ended up with an error. I want to know if there is a problem with my configuration, and what is the correct configuration to use -fsanitize=kernel-address option  for riscv64.
```
cmake -G Ninja ../llvm \
  -DLLVM_ENABLE_PROJECTS="clang;compiler-rt;lld" \
  -DLLVM_TARGETS_TO_BUILD="RISCV" \
  -DLLVM_ENABLE_ASSERTIONS=ON \
  -DCOMPILER_RT_DEFAULT_TARGET_TRIPLE="riscv64-unknown-elf" \
  -DLLVM_USE_LINKER=lld \
  -DCMAKE_BUILD_TYPE=DEBUG 
```
### The error is:
```
static long syscall_impl_5_args(long number, long arg1, long arg2, long arg3,
                                long arg4, long arg5) {
  register long a7 __asm__("a7") = number;
  register long a0 __asm__("a0") = arg1;
  register long a1 __asm__("a1") = arg2;
  register long a2 __asm__("a2") = arg3;
  register long a3 __asm__("a3") = arg4;
  register long a4 __asm__("a4") = arg5;
  __asm__ __volatile__("ecall\n\t"
                       : "=r"(a0)
                       : "r"(a7), "r"(a0), "r"(a1), "r"(a2), "r"(a3), "r"(a4)
                       : "memory");
  return a0;

/home/rv-llvm/compiler-rt/lib/builtins/cpu_model/riscv.c:153:17: error: invalid register name for 'a7'
  153 |   register long a7 __asm__("a7") = number;
      |                 ^~
/home/rv-llvm/compiler-rt/lib/builtins/cpu_model/riscv.c:154:17: error: invalid register name for 'a0'
  154 |   register long a0 __asm__("a0") = arg1;
      |                 ^~
/home/rv-llvm/compiler-rt/lib/builtins/cpu_model/riscv.c:155:17: error: invalid register name for 'a1'
  155 |   register long a1 __asm__("a1") = arg2;
      |                 ^~
/home/rv-llvm/compiler-rt/lib/builtins/cpu_model/riscv.c:156:17: error: invalid register name for 'a2'
  156 |   register long a2 __asm__("a2") = arg3;
      |                 ^~
/home/rv-llvm/compiler-rt/lib/builtins/cpu_model/riscv.c:157:17: error: invalid register name for 'a3'
  157 |   register long a3 __asm__("a3") = arg4;
      |                 ^~
/home/rv-llvm/compiler-rt/lib/builtins/cpu_model/riscv.c:158:17: error: invalid register name for 'a4'
  158 |   register long a4 __asm__("a4") = arg5;
```
Thank you all for your help!
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8l89vqzgQx_8a5zJKBDYEesiBBPI2-_LaKkmftCdkwCF-NXZkTKvsYf_2lU2qpGm622pXrVALZj4z8x3_6EDblteSsQkKpyhMB7QzO6UnlZL1sOFUDQpVHSYIk_6ClLWl5nvDlUResgDaAIWC1VxKpoFLKAWV9WgBz1QaMAoqVnQ1mB0D3UnJZQ17rUrWtqC2sFz-_AHfk3VyC1ulQfO2fBoHCM-g6AwsoGtZ5ditEkI9W7rouKigVHLL605TmwhQWQGTFaug28MzNzugEpjWSo_glMmjVM_At9afZsBboDaVQrCmZ5rDa7c2Dev5eUeNNbd5lEprVpqL-EbZTGG4bankhv_JEEkfmZZMDGlVaSfWlQzOZY6Ql6Cxd7y8pGzoI4PhN7jl8heF0QjhuRBPDaBwhrwEYJjaeuXZbTJdZvn96u73bLZZI5IijF3ZEZmWqtlzwfRQG0SmQlQI40sHm2T1Ldus881dPn1YLNPew2qxnv28Yn0Ml6zX2WqzuLu1Ae9uz6xmdz_uF8tsla82eZrNk4fl5hgi36wW98us939UPeyknQg5ZGJ7JdrDOsuXi9vv2QqRVIjqPM6P5HvWZ5xv_ri3btNs-vANLup4WqybHeuXAfAWkeTCrjXU8BKEkjW0h7akQuS82Ys8zKmuW4Rj90p2TcG0XQzukeraP3_A5w8E4T7bf_55MQ_O2RDhG0DR1PGa1bw1TB_fRpDntG3yHOEYYUwjhLEzJ-lLfuQq6F2A3hnolFzH_AvMf43hdzB8geHXGHkHIxcYeY0F72DBBRa8xsIX7GgFef6kBDVcsBeE2TlH4UyicGYs_e7UIZKANSCpdlFiW8mbf7V_MY6sMZ6dD3lvh_y3Q_jtEHk7FHwkl4Y1Sh_6Gp0qajotgXr9gNs8851qGMJz_TS0pw_C8_MzBc8FLxCe22PYcNna1_sub1TFhIXsJh-ViCR-SOzvyEZ3e9DecPlEBa9OMylpw9yZiHBkqxS5tPyQAIpm8B_2gRPuXFwUI8z--n9lBp-V6Z1kBtdlfnTXfp3I8LMi_ZPI8LrIj54xXydy_FmR-CRyfF3kR0_ErxMZfVYkOYmMrov86Pn9dSLjz4oMTiLj6yI_9t_mvL_Y7Kh8hIPqgArhIh1Up2HHxB5lczSdodgfVBNS3ZAbOmATPwoxjm-CeDzYTfAYR8WWBaEXxX4ckCKItnG13eLYH3t-vB3wCfZw6EU-9ogXBOMRCavAJz7xCPWqIvJR4LGGcjGypRwpXQ9423Zs4gcxIf5A0IKJ1rX9L90jxvYLQE8sMCy6ukWBJ3hr2pMLw41w3wo9EaYonLr-vb_te8gw_U0926Z41nfL4gBT17XPLAQzJQ3l7lPAoYNOi8nOmL3r0fAc4XnNza4rRqVqjj3w8c9wr9UvVtq14MTYNXDU8zTBfwcAAP__h2-1jg">