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

    <tr>
        <th>Summary</th>
        <td>
            libc RISCV
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          advancedwebdeveloper
      </td>
    </tr>
</table>

<pre>
    I tried to build libc on rv64gc:

> ubuntu@ubuntu:~/llvm-project$ git diff
> diff --git a/libc/cmake/modules/LLVMLibCArchitectures.cmake b/libc/cmake/modules/LLVMLibCArchitectures.cmake
> index 8d49054ed048..1dc457acdde2 100644
> --- a/libc/cmake/modules/LLVMLibCArchitectures.cmake
> +++ b/libc/cmake/modules/LLVMLibCArchitectures.cmake
> @@ -17,6 +17,10 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64)|(AMD64|amd64)|(^i.86$)")
>  elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)")
>    set(LIBC_TARGET_ARCHITECTURE_IS_POWER TRUE)
>    set(LIBC_TARGET_ARCHITECTURE "power")
> +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(riscv64|riscv)")
> +  set(LIBC_TARGET_ARCHITECTURE_IS_RISCV TRUE)
> +  set(LIBC_TARGET_ARCHITECTURE "riscv")
> +
>  else()
>    message(FATAL_ERROR "Unsupported processor ${CMAKE_SYSTEM_PROCESSOR}")
>  endif()

also copied contents of https://github.com/llvm/llvm-project/tree/main/libc/config/linux/aarch64 into https://github.com/llvm/llvm-project/tree/main/libc/config/linux/riscv folder, which was created ahead of this.

I got this:

> ubuntu@ubuntu:~/libc_test$ make 
> [  0%] Built target libc_test_utils
> [  0%] Built target libc.src.__support.CPP.type_traits
> [  0%] Building CXX object libc/utils/UnitTest/CMakeFiles/LibcUnitTest.dir/LibcTest.cpp.o
> In file included from /home/ubuntu/llvm-project/libc/src/__support/CPP/TypeTraits.h:12,
>                  from /home/ubuntu/llvm-project/libc/utils/UnitTest/LibcTest.h:17,
>                  from /home/ubuntu/llvm-project/libc/utils/UnitTest/LibcTest.cpp:9:
> /home/ubuntu/llvm-project/libc/src/__support/CPP/UInt.h: In member function ‘constexpr __llvm_libc::cpp::UInt<Bits> __llvm_libc::cpp::UInt<Bits>::operator*(const __llvm_libc::cpp::UInt<Bits>&) const [wit
> h long unsigned int Bits = 128]’:
> /home/ubuntu/llvm-project/libc/src/__support/CPP/UInt.h:295:48: error: call to non-‘constexpr’ function ‘const uint64_t& __llvm_libc::cpp::UInt<Bits>::operator[](size_t) const [with long unsigned int Bit
> s = 128; uint64_t = long unsigned int; size_t = long unsigned int]’
>   295 |   uint64_t temp_low = low(val[0]) * low(other[0]);
>       |                                                ^
> make[2]: *** [libc/utils/UnitTest/CMakeFiles/LibcUnitTest.dir/build.make:63: libc/utils/UnitTest/CMakeFiles/LibcUnitTest.dir/LibcTest.cpp.o] Error 1
> make[1]: *** [CMakeFiles/Makefile2:20068: libc/utils/UnitTest/CMakeFiles/LibcUnitTest.dir/all] Error 2
> make: *** [Makefile:130: all] Error 2

> $ gcc --version
> gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0

Can test later, with Clang
CC @lazyparser @jim-wilson

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy9V1tzokgU_jX40iUFzUV48EERd6xNKik1s7NPVAON9CzSVNNoMr9-T7dGTEy2YmZmLQr7dm7fufQh5fnTeIGkYDRHkqO0Y1WOKpZmiNdI7Hx3kxnOxLBmhvX8dmLUpV0tO8O1jgM4MYoNPK-q3XbYCP6dZtLALtowiXJWFD2lmqHhUG0QRQCS4C_bkn8o_G953lW0hdHNzdfbG5ZGE5GVTAK7TtDW1OdQ-knCXgtW5_QRBbkbWp5Lc8sNTNPOM9cbkSzPKUa2Zfmu2xMMh8NP69tzMfD08PwCEwB8eNDQHhk48hVrPbKt5x1atZQVBg6i28mfcbL6e7WOb5P75V0Ur1Z3S3Q7WUdf4hVQYjj0GPiJ7xo4NEYRTCe3M5iNIrLNz1YNL2Zm4INn1ZKiC3uFrhLoQbQEDd9T0WTAu4H3GxwRainEUXCzmEbJerL8I14nk2X0ZbGOo_XDMk4Wq-T-7q94idbLh_g6WqWGVuC1VEDyaksEa7OdBkyP3rBFOf0D1iwXq-jrpTUfoFbKHIVfSH7lJOXJV1htaduSjdqZT9aTmyReLsFOYPVQt13TcCGhPkBiZ3COC6QiYDR9Gx1jNLsMjTrXePar-k2qlqOMN6r4ZLyWtJYt4gUqpWxaVVTwHB6oFWWXmhnfHivMRaGZS0F1ChFWnyUWrwu20fO6e4R_QiChfBeyHyrdb5KhXYAKXuUqsiK0L1lWoj1pUSYoUSiSkpJcWSlL1prncCzQhku9fE3JBUUSSVtdb3V5PHO9B2FjGdgzvBmaQmkH7kRsqEQnqqSTrGo_SmK2IjOT5BgSZnR_b8qnhiZSECb_i0vO6g2Kvn1DPFVwoiN8B-F4_lAzudY2zKNbsGHOjpUQjj3vmTkTxyU9zZrG5L3IRY0KoALnZlWXA86F4FsI1HnJt8pvR9gu3HrUBAyD98k0pcj9PbzXYN5aW2eWgLkNgR29yJyXv-uEvmH-yTwtbfR_SQMwQV7Yx50uHD-J3cOiPtihnLOl25QKVHR1Jhn0FkaMjcAywgBSqJX0sREoSRT_RHMFRZzJQSt4FCfDiaYqyECzjx48rPGGCiI5BA8k-0HcxzlguO1CdCCCqN4z2QNUoopDWHd1yzY1RBzUFaTokOHMkK2uy9mzlb8LWRx68HYDBTIVAoyEQUaqSjVzNa-HlzCfVHrPF6gDQ3w3AXH-Z6H2psp4HLTsB1WMXkL4DnA9QD2EzvSkjl67IFQnDlLe2T93wlkqAXII7msYnfhLum2Siu-PjPag_45UoLKljQnBb5PjOpclFf0OKPE6TQ-8r_qpXuLERXd73hQrAeBTHbzqURB-vnrq_t7UvJ2J7yjOv6wUQ6mPVQgi-8IK-y0rXrBXY1W_sQpqaL6Dn1MNMqDXB7_S57Uiz7JVxXUstf0m-Vn6wpdNlsFHwY6KFhKo31LLEB4POq1RaLqmNbQPSW7DfY0t03JNW8WS3jvnHJEaqRsZVdAmHHoHlSlRRerN8USkevuK_HhqiGihmMLsO9sO9wDPsxKDfOzkoROSgWSyomP9Kae7ykEnqvHVXQ9r206D7HkjDw_KcVhkBQ4cgr1R5jpOCt9L2Cps-HSipLDDdFCRFJrMsSoBGNd0jzQL3SrPBmyMLYwtDwc29nzHN2mAc2eEMxv7tuMVIzCJQotVmUoPk4vNQIy1Smm3aZX1rIWr-LRJWp3pdHyoOAPSyZKLMcl3pM5ovqdpTne0UnVpoPUYazv-BQoHcbk">