Build clang libcxx libcxxabi libunwind compiler-rt error

I need to add support for “- lc++, - lc++abi, - lunwind, - lclang_rt.builtins_riscv32” libraries for the Clang compiler, because when I use the clang compiler to compile projects, I am prompted that these libraries cannot be found. So I re download the LLVM 15.04 compressed package in github. After decompression, execute the following command to build:

cd llvm-project-15.04.src
mkdir build
cd build
cmake -G "Unix Makefiles" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_TARGETS_TO_BUILD="RISCV" \ 
-DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi;libunwind;compiler-rt" \
../llvm
make -j2

However, an error is reported during execution. The error log is as follows:

In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_referenceable.h:14,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/add_lvalue_reference.h:13,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__functional/invoke.h:14,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:421,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_same.h:22:53: error: there are no arguments to ‘__is_same’ that depend on a template parameter, so a declaration of ‘__is_same’ must be available [-fpermissive]
   22 | struct _LIBCPP_TEMPLATE_VIS is_same : _BoolConstant<__is_same(_Tp, _Up)> { };
      |                                                     ^~~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_same.h:22:53: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_same.h:22:72: error: template argument 1 is invalid
   22 | struct _LIBCPP_TEMPLATE_VIS is_same : _BoolConstant<__is_same(_Tp, _Up)> { };
      |                                                                        ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_same.h:26:48: error: expected primary-expression before ‘,’ token
   26 | inline constexpr bool is_same_v = __is_same(_Tp, _Up);
      |                                                ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_same.h:26:53: error: expected primary-expression before ‘)’ token
   26 | inline constexpr bool is_same_v = __is_same(_Tp, _Up);
      |                                                     ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_same.h:26:35: error: there are no arguments to ‘__is_same’ that depend on a template parameter, so a declaration of ‘__is_same’ must be available [-fpermissive]
   26 | inline constexpr bool is_same_v = __is_same(_Tp, _Up);
      |                                   ^~~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_same.h:37:31: error: there are no arguments to ‘__is_same’ that depend on a template parameter, so a declaration of ‘__is_same’ must be available [-fpermissive]
   37 | using _IsSame = _BoolConstant<__is_same(_Tp, _Up)>;
      |                               ^~~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_same.h:37:50: error: template argument 1 is invalid
   37 | using _IsSame = _BoolConstant<__is_same(_Tp, _Up)>;
      |                                                  ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_same.h:40:35: error: there are no arguments to ‘__is_same’ that depend on a template parameter, so a declaration of ‘__is_same’ must be available [-fpermissive]
   40 | using _IsNotSame = _BoolConstant<!__is_same(_Tp, _Up)>;
      |                                   ^~~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_same.h:40:54: error: template argument 1 is invalid
   40 | using _IsNotSame = _BoolConstant<!__is_same(_Tp, _Up)>;
      |                                                      ^
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/add_lvalue_reference.h:13,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__functional/invoke.h:14,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:421,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_referenceable.h:29:5: error: ‘_IsNotSame’ was not declared in this scope
   29 |     _IsNotSame<decltype(__is_referenceable_impl::__test<_Tp>(0)), false_type>::value> {};
      |     ^~~~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_referenceable.h:29:77: error: template argument 2 is invalid
   29 |     _IsNotSame<decltype(__is_referenceable_impl::__test<_Tp>(0)), false_type>::value> {};
      |                                                                             ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_referenceable.h:29:78: error: expected ‘{’ before ‘::’ token
   29 |     _IsNotSame<decltype(__is_referenceable_impl::__test<_Tp>(0)), false_type>::value> {};
      |                                                                              ^~
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/decay.h:13,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__functional/invoke.h:17,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:421,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/add_pointer.h:26:17: error: ‘_IsSame’ was not declared in this scope
   26 |                 _IsSame<typename remove_cv<_Tp>::type, void>::value>
      |                 ^~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/add_pointer.h:26:54: error: expected ‘(’ before ‘,’ token
   26 |                 _IsSame<typename remove_cv<_Tp>::type, void>::value>
      |                                                      ^
      |                                                      (
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/add_pointer.h:26:56: error: ‘void’ is not a valid type for a template non-type parameter
   26 |                 _IsSame<typename remove_cv<_Tp>::type, void>::value>
      |                                                        ^~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/add_pointer.h:26:63: error: ‘value’ in namespace ‘::’ does not name a type
   26 |                 _IsSame<typename remove_cv<_Tp>::type, void>::value>
      |                                                               ^~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/add_pointer.h:29:29: error: ‘__add_pointer_impl’ is not a class template
   29 | template <class _Tp> struct __add_pointer_impl<_Tp, false>
      |                             ^~~~~~~~~~~~~~~~~~
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:421,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__functional/invoke.h:410:7: error: ‘_IsNotSame’ was not declared in this scope
  410 |       _IsNotSame<_Result, __nat>::value,
      |       ^~~~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__functional/invoke.h:410:32: error: wrong number of template arguments (2, should be 3)
  410 |       _IsNotSame<_Result, __nat>::value,
      |                                ^
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__functional/invoke.h:16,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:421,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/conditional.h:39:33: note: provided for ‘template<bool _Bp, class _If, class _Then> struct std::__1::conditional’
   39 |     struct _LIBCPP_TEMPLATE_VIS conditional {typedef _If type;};
      |                                 ^~~~~~~~~~~
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:421,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__functional/invoke.h:409:25: error: expected nested-name-specifier
  409 |   using type = typename conditional<
      |                         ^~~~~~~~~~~~
  410 |       _IsNotSame<_Result, __nat>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__functional/invoke.h:413:29: error: ‘type’ has not been declared
  413 |   static const bool value = type::value;
      |                             ^~~~
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_type.h:16,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:13,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:432,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/remove_cvref.h:27:35: error: expected template-name before ‘<’ token
   27 | struct __is_same_uncvref : _IsSame<__uncvref_t<_Tp>, __uncvref_t<_Up> > {};
      |                                   ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/remove_cvref.h:27:35: error: expected ‘{’ before ‘<’ token
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:13,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:432,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_type.h:116:9: error: ‘_IsSame’ was not declared in this scope
  116 |         _IsSame<_Tp, typename decay<_Tp>::type>::value && _IsSame<_Up, typename decay<_Up>::type>::value,
      |         ^~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_type.h:116:47: error: wrong number of template arguments (2, should be 3)
  116 |         _IsSame<_Tp, typename decay<_Tp>::type>::value && _IsSame<_Up, typename decay<_Up>::type>::value,
      |                                               ^
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__functional/invoke.h:16,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:421,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/conditional.h:39:33: note: provided for ‘template<bool _Bp, class _If, class _Then> struct std::__1::conditional’
   39 |     struct _LIBCPP_TEMPLATE_VIS conditional {typedef _If type;};
      |                                 ^~~~~~~~~~~
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:13,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:432,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_type.h:116:48: error: expected ‘{’ before ‘::’ token
  116 |         _IsSame<_Tp, typename decay<_Tp>::type>::value && _IsSame<_Up, typename decay<_Up>::type>::value,
      |                                                ^~
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:432,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:61:1: error: ‘requires’ does not name a type
   61 | requires requires { typename __cv_cond_res<_Xp, _Yp>; } && is_reference_v<__cv_cond_res<_Xp, _Yp>>
      | ^~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:61:89: error: ‘_Xp’ was not declared in this scope
   61 | requires requires { typename __cv_cond_res<_Xp, _Yp>; } && is_reference_v<__cv_cond_res<_Xp, _Yp>>
      |                                                                                         ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:61:94: error: ‘_Yp’ was not declared in this scope
   61 | requires requires { typename __cv_cond_res<_Xp, _Yp>; } && is_reference_v<__cv_cond_res<_Xp, _Yp>>
      |                                                                                              ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:61:94: error: template argument 1 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:61:94: error: template argument 2 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:61:57: error: specializing member ‘::is_reference_v<<expression error> >’ requires ‘template<>’ syntax
   61 | requires requires { typename __cv_cond_res<_Xp, _Yp>; } && is_reference_v<__cv_cond_res<_Xp, _Yp>>
      |                                                         ^~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:75:1: error: ‘requires’ does not name a type
   75 | requires
      | ^~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:77:20: error: ‘_Ap’ was not declared in this scope
   77 |   is_convertible_v<_Ap&&, __common_ref_C<_Xp, _Yp>> &&
      |                    ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:77:42: error: ‘_Xp’ was not declared in this scope
   77 |   is_convertible_v<_Ap&&, __common_ref_C<_Xp, _Yp>> &&
      |                                          ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:77:47: error: ‘_Yp’ was not declared in this scope
   77 |   is_convertible_v<_Ap&&, __common_ref_C<_Xp, _Yp>> &&
      |                                               ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:77:47: error: template argument 1 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:77:47: error: template argument 2 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:77:3: error: parse error in template argument list
   77 |   is_convertible_v<_Ap&&, __common_ref_C<_Xp, _Yp>> &&
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:76:51: error: specializing member ‘::is_convertible_v<<expression error>, <expression error> >’ requires ‘template<>’ syntax
   76 |   requires { typename __common_ref_C<_Xp, _Yp>; } &&
      |                                                   ^~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:91:1: error: ‘requires’ does not name a type
   91 | requires requires { typename __common_ref_D<_Xp, _Yp>; } &&
      | ^~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:92:27: error: ‘_Ap’ was not declared in this scope
   92 |          is_convertible_v<_Ap&&, __common_ref_D<_Xp, _Yp>>
      |                           ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:92:49: error: ‘_Xp’ was not declared in this scope
   92 |          is_convertible_v<_Ap&&, __common_ref_D<_Xp, _Yp>>
      |                                                 ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:92:54: error: ‘_Yp’ was not declared in this scope
   92 |          is_convertible_v<_Ap&&, __common_ref_D<_Xp, _Yp>>
      |                                                      ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:92:54: error: template argument 1 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:92:54: error: template argument 2 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:92:10: error: parse error in template argument list
   92 |          is_convertible_v<_Ap&&, __common_ref_D<_Xp, _Yp>>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:91:58: error: specializing member ‘::is_convertible_v<<expression error>, <expression error> >’ requires ‘template<>’ syntax
   91 | requires requires { typename __common_ref_D<_Xp, _Yp>; } &&
      |                                                          ^~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:136:1: error: ‘requires’ does not name a type
  136 | requires is_reference_v<_Tp> && is_reference_v<_Up> && requires { typename __common_ref_t<_Tp, _Up>; }
      | ^~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:137:39: error: ‘_Tp’ was not declared in this scope
  137 | struct __common_reference_sub_bullet1<_Tp, _Up>
      |                                       ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:137:44: error: ‘_Up’ was not declared in this scope
  137 | struct __common_reference_sub_bullet1<_Tp, _Up>
      |                                            ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:137:47: error: template argument 1 is invalid
  137 | struct __common_reference_sub_bullet1<_Tp, _Up>
      |                                               ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:137:47: error: template argument 2 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:137:1: error: an explicit specialization must be preceded by ‘template <>’
  137 | struct __common_reference_sub_bullet1<_Tp, _Up>
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      | template <> 
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:152:1: error: ‘requires’ does not name a type
  152 | requires requires { typename __basic_common_reference_t<_Tp, _Up>; }
      | ^~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:153:39: error: ‘_Tp’ was not declared in this scope
  153 | struct __common_reference_sub_bullet2<_Tp, _Up>
      |                                       ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:153:44: error: ‘_Up’ was not declared in this scope
  153 | struct __common_reference_sub_bullet2<_Tp, _Up>
      |                                            ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:153:47: error: template argument 1 is invalid
  153 | struct __common_reference_sub_bullet2<_Tp, _Up>
      |                                               ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:153:47: error: template argument 2 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:153:1: error: an explicit specialization must be preceded by ‘template <>’
  153 | struct __common_reference_sub_bullet2<_Tp, _Up>
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      | template <> 
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:161:1: error: ‘requires’ does not name a type
  161 | requires requires { typename __cond_res<_Tp, _Up>; }
      | ^~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:162:39: error: ‘_Tp’ was not declared in this scope
  162 | struct __common_reference_sub_bullet3<_Tp, _Up>
      |                                       ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:162:44: error: ‘_Up’ was not declared in this scope
  162 | struct __common_reference_sub_bullet3<_Tp, _Up>
      |                                            ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:162:47: error: template argument 1 is invalid
  162 | struct __common_reference_sub_bullet3<_Tp, _Up>
      |                                               ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:162:47: error: template argument 2 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:162:1: error: an explicit specialization must be preceded by ‘template <>’
  162 | struct __common_reference_sub_bullet3<_Tp, _Up>
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      | template <> 
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:176:1: error: ‘requires’ does not name a type
  176 | requires requires { typename common_reference_t<_Tp, _Up>; }
      | ^~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:177:25: error: ‘_Tp’ was not declared in this scope
  177 | struct common_reference<_Tp, _Up, _Vp, _Rest...>
      |                         ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:177:30: error: ‘_Up’ was not declared in this scope
  177 | struct common_reference<_Tp, _Up, _Vp, _Rest...>
      |                              ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:177:35: error: ‘_Vp’ was not declared in this scope
  177 | struct common_reference<_Tp, _Up, _Vp, _Rest...>
      |                                   ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:177:40: error: ‘_Rest’ was not declared in this scope
  177 | struct common_reference<_Tp, _Up, _Vp, _Rest...>
      |                                        ^~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:177:45: error: expected parameter pack before ‘...’
  177 | struct common_reference<_Tp, _Up, _Vp, _Rest...>
      |                                             ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:177:48: error: template argument 1 is invalid
  177 | struct common_reference<_Tp, _Up, _Vp, _Rest...>
      |                                                ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:177:48: error: template argument 2 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:177:48: error: template argument 3 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:177:48: error: template argument 4 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:177:1: error: an explicit specialization must be preceded by ‘template <>’
  177 | struct common_reference<_Tp, _Up, _Vp, _Rest...>
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      | template <> 
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:178:43: error: ‘_Tp’ was not declared in this scope
  178 |     : common_reference<common_reference_t<_Tp, _Up>, _Vp, _Rest...>
      |                                           ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:178:48: error: ‘_Up’ was not declared in this scope
  178 |     : common_reference<common_reference_t<_Tp, _Up>, _Vp, _Rest...>
      |                                                ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:178:51: error: template argument 1 is invalid
  178 |     : common_reference<common_reference_t<_Tp, _Up>, _Vp, _Rest...>
      |                                                   ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:178:51: error: template argument 2 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:178:54: error: ‘_Vp’ was not declared in this scope
  178 |     : common_reference<common_reference_t<_Tp, _Up>, _Vp, _Rest...>
      |                                                      ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:178:59: error: ‘_Rest’ was not declared in this scope
  178 |     : common_reference<common_reference_t<_Tp, _Up>, _Vp, _Rest...>
      |                                                           ^~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:178:64: error: expected parameter pack before ‘...’
  178 |     : common_reference<common_reference_t<_Tp, _Up>, _Vp, _Rest...>
      |                                                                ^~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:178:67: error: template argument 1 is invalid
  178 |     : common_reference<common_reference_t<_Tp, _Up>, _Vp, _Rest...>
      |                                                                   ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:178:67: error: template argument 2 is invalid
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/common_reference.h:178:67: error: template argument 3 is invalid
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:485,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_pod.h:29:38: error: ‘is_trivially_default_constructible’ was not declared in this scope; did you mean ‘is_nothrow_default_constructible’?
   29 |     : public integral_constant<bool, is_trivially_default_constructible<_Tp>::value   &&
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                      is_nothrow_default_constructible
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_pod.h:29:76: error: template argument 2 is invalid
   29 |     : public integral_constant<bool, is_trivially_default_constructible<_Tp>::value   &&
      |                                                                            ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_pod.h:29:77: error: expected ‘{’ before ‘::’ token
   29 |     : public integral_constant<bool, is_trivially_default_constructible<_Tp>::value   &&
      |                                                                             ^~
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:496,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_trivial.h:25:31: error: ‘is_trivially_copyable’ was not declared in this scope
   25 |     : integral_constant<bool, is_trivially_copyable<_Tp>::value &&
      |                               ^~~~~~~~~~~~~~~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_trivial.h:25:56: error: template argument 2 is invalid
   25 |     : integral_constant<bool, is_trivially_copyable<_Tp>::value &&
      |                                                        ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/is_trivial.h:25:57: error: expected ‘{’ before ‘::’ token
   25 |     : integral_constant<bool, is_trivially_copyable<_Tp>::value &&
      |                                                         ^~
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:636:31: error: ‘_IsNotSame’ was not declared in this scope
  636 |     static const bool value = _IsNotSame<__swap1, __nat>::value
      |                               ^~~~~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:636:49: error: expected primary-expression before ‘,’ token
  636 |     static const bool value = _IsNotSame<__swap1, __nat>::value
      |                                                 ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:636:51: error: expected ‘;’ at end of member declaration
  636 |     static const bool value = _IsNotSame<__swap1, __nat>::value
      |                                                   ^~~~~
      |                                                        ;
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:636:51: error: declaration of ‘const bool std::__1::__detail::__swappable_with<_Tp, _Up, _NotVoid>::__nat’ changes meaning of ‘__nat’ [-fpermissive]
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__functional/invoke.h:27,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:421,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/nat.h:20:8: note: ‘__nat’ declared here as ‘struct std::__1::__nat’
   20 | struct __nat
      |        ^~~~~
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:636:56: error: expected unqualified-id before ‘>’ token
  636 |     static const bool value = _IsNotSame<__swap1, __nat>::value
      |                                                        ^
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:777:19: error: ‘_IsSame’ was not declared in this scope
  777 |     : conditional<_IsSame<_RawValTy, _Key>::value, __extract_key_self_tag,
      |                   ^~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:777:42: error: wrong number of template arguments (2, should be 3)
  777 |     : conditional<_IsSame<_RawValTy, _Key>::value, __extract_key_self_tag,
      |                                          ^
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__functional/invoke.h:16,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:421,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/conditional.h:39:33: note: provided for ‘template<bool _Bp, class _If, class _Then> struct std::__1::conditional’
   39 |     struct _LIBCPP_TEMPLATE_VIS conditional {typedef _If type;};
      |                                 ^~~~~~~~~~~
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:777:43: error: expected ‘{’ before ‘::’ token
  777 |     : conditional<_IsSame<_RawValTy, _Key>::value, __extract_key_self_tag,
      |                                           ^~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:782:19: error: ‘_IsSame’ was not declared in this scope
  782 |     : conditional<_IsSame<typename remove_const<_First>::type, _Key>::value,
      |                   ^~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:782:68: error: wrong number of template arguments (2, should be 3)
  782 |     : conditional<_IsSame<typename remove_const<_First>::type, _Key>::value,
      |                                                                    ^
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__functional/invoke.h:16,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:421,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/conditional.h:39:33: note: provided for ‘template<bool _Bp, class _If, class _Then> struct std::__1::conditional’
   39 |     struct _LIBCPP_TEMPLATE_VIS conditional {typedef _If type;};
      |                                 ^~~~~~~~~~~
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:782:69: error: expected ‘{’ before ‘::’ token
  782 |     : conditional<_IsSame<typename remove_const<_First>::type, _Key>::value,
      |                                                                     ^~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:791:31: error: ‘_IsSame’ was not declared in this scope
  791 |     : integral_constant<bool, _IsSame<_RawValTy, _Key>::value> {};
      |                               ^~~~~~~
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:791:54: error: wrong number of template arguments (3, should be 2)
  791 |     : integral_constant<bool, _IsSame<_RawValTy, _Key>::value> {};
      |                                                      ^
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/cstddef:39,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:92,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/__type_traits/integral_constant.h:21:29: note: provided for ‘template<class _Tp, _Tp __v> struct std::__1::integral_constant’
   21 | struct _LIBCPP_TEMPLATE_VIS integral_constant
      |                             ^~~~~~~~~~~~~~~~~
In file included from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/exception:85,
                 from /home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/new:94,
                 from /home/suncheng/llvm-project-15.0.4.src/libcxxabi/src/cxa_aux_runtime.cpp:13:
/home/suncheng/llvm-project-15.0.4.src/build/include/c++/v1/type_traits:791:55: error: expected ‘{’ before ‘::’ token
  791 |     : integral_constant<bool, _IsSame<_RawValTy, _Key>::value> {};
      |                                                       ^~
make[2]: *** [projects/libcxxabi/src/CMakeFiles/cxxabi_shared_objects.dir/build.make:63: projects/libcxxabi/src/CMakeFiles/cxxabi_shared_objects.dir/cxa_aux_runtime.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:23219: projects/libcxxabi/src/CMakeFiles/cxxabi_shared_objects.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ABIBreak.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMTargetParser.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/AMDGPUMetadata.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFixedPoint.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APSInt.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMAttributeParser.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMWinEH.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/AutoConvert.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamError.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamReader.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamRef.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamWriter.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BranchProbability.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BuryPointer.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CachePruning.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Caching.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/circular_raw_ostream.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Chrono.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/COM.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CodeGenCoverage.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Compression.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CRC.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTF.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTFWrapper.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CrashRecoveryContext.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CSKYAttributes.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CSKYAttributeParser.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CSKYTargetParser.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataExtractor.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Debug.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DebugCounter.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DeltaAlgorithm.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DivisionByConstantInfo.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DAGDeltaAlgorithm.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DJB.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ELFAttributeParser.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ELFAttributes.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Error.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ErrorHandling.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ExtensibleRTTI.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileCollector.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileUtilities.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileOutputBuffer.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FoldingSet.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormattedStream.cpp.o
[ 34%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormatVariadic.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GlobPattern.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GraphWriter.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Hashing.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/InitLLVM.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/InstructionCost.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntEqClasses.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntervalMap.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ItaniumManglingCanonicalizer.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/JSON.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/KnownBits.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LEB128.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LineIterator.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Locale.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LockFileManager.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LowLevelType.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ManagedStatic.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MathExtras.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemAlloc.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryBuffer.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryBufferRef.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MD5.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MSP430Attributes.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MSP430AttributeParser.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/NativeFormatting.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/OptimizedStructLayout.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Optional.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Parallel.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PrettyStackTrace.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RandomNumberGenerator.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Regex.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RISCVAttributes.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RISCVAttributeParser.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RISCVISAInfo.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScaledNumber.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScopedPrinter.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SHA1.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SHA256.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signposts.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallPtrSet.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallVector.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SpecialCaseList.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Statistic.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringExtras.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringMap.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringSaver.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringRef.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SuffixTree.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SymbolRemappingReader.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SystemUtils.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TarWriter.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetParser.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadPool.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TimeProfiler.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Timer.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ToolOutputFile.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TrigramIndex.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Triple.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Twine.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TypeSize.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Unicode.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/UnicodeCaseFold.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/UnicodeNameToCodepoint.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/UnicodeNameToCodepointGenerated.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/VersionTuple.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/VirtualFileSystem.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/WithColor.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/X86TargetParser.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLParser.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLTraits.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_os_ostream.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_ostream.cpp.o
[ 35%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regcomp.c.o
[ 35%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regerror.c.o
[ 35%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regexec.c.o
[ 35%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regfree.c.o
[ 35%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regstrlcpy.c.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/xxhash.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Z3Solver.cpp.o
[ 35%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Atomic.cpp.o
[ 37%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DynamicLibrary.cpp.o
[ 37%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Errno.cpp.o
[ 37%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Host.cpp.o
[ 37%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Memory.cpp.o
[ 37%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Path.cpp.o
[ 37%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Process.cpp.o
[ 37%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Program.cpp.o
[ 37%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RWMutex.cpp.o
[ 37%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o
[ 37%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadLocal.cpp.o
[ 37%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Threading.cpp.o
[ 37%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Valgrind.cpp.o
[ 37%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Watchdog.cpp.o
[ 37%] Linking CXX static library ../libLLVMSupport.a
[ 37%] Built target LLVMSupport
make: *** [Makefile:152: all] Error 2

Is there a problem with the way I built libcxx, libcxxabi…? I can build clang separately before.

An easy thing to check is that you are using a supported compiler to build libcxx. You can find those here: “libc++” C++ Standard Library — libc++ documentation (though that is for main, but you get the idea)

For 15 release the clang versions would have been 14 and 15. You could use the clang you just built for instance.

Since some of these errors may be due to not supporting newer c++ features.

How can I use clang to build libcxx? I used “make CC=clang - j2”, but it reported the same error as above when compiling

I would guess you have to re-run cmake to change the compiler used. export CC=<path to new clang>; cmake ... should work, I would clear the current build folder just in case.

Make sure you know which clang you’re asking it to use. It’s not just that it’s any clang, it’s that it needs to be a recent clang.

Thank you very much for your help.As you said, I can build libc++and other libraries, but I have encountered new problems and need to consult you.
I am compiling the bare metal project of the riscv32 architecture. The project was originally compiled using riscv32-unknown-elf-gcc. I intend to convert it to clang for compilation. However, at the final lld link stage, it reported an error and said that “-lc++, -lc++abi, -lunwindow; -lclang_rt. builtins-riscv32” could not be found. So, I need to build these libraries for clang. But the “libc++. a, - libc++abi. a, - libunwind. a” I built above are stored in the “build/lib/x86_64-unkonwn-linux-gnu/” directory. I think my riscv32 project should not work, and libclang_ rt.builtins-riscv32.a is not exist.So, how can I build these libraries for the bare metal project of riscv32?