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

    <tr>
        <th>Summary</th>
        <td>
            issue building with `-DLLVM_ENABLE_ASSERTIONS=ON`
        </td>
    </tr>

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

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

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

<pre>
    I'm following https://mlir.llvm.org/getting_started/ to get a build of MLIR on my Mac. I used clang-15 as my compiler, and ran 

```
cmake -G Ninja ../llvm \                                                                                                                                                                                                                                  
                       -DLLVM_ENABLE_PROJECTS=mlir \
                       -DLLVM_BUILD_EXAMPLES=ON \
                       -DLLVM_TARGETS_TO_BUILD="X86" \
                       -DCMAKE_BUILD_TYPE=Release \
                       -DLLVM_ENABLE_ASSERTIONS=ON \
                       -DLLVM_CCACHE_BUILD=ON \
                       -DCMAKE_C_COMPILER=clang \
  
                       -DCMAKE_CXX_COMPILER=clang++
cmake --build . --target check-mlir      
```

I saw the following error that `_libcpp_verbose_abort` was undefined. Based on the comments on https://libcxx.llvm.org/UsingLibcxx.html I guessed to remove the assertions flag of the build which has gotten me past this point of the build.

```
➜  build git:(main) cmake --build . --target check-mlir                                                                                                                                                                                                                       (base) 14:02:32
[1/3116] Linking CXX executable bin/llvm-tblgen
FAILED: bin/llvm-tblgen
: && /usr/local/opt/llvm/bin/clang++ -lc++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -O3 -DNDEBUG -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/usr/local/opt/llvm/lib    -Wl,-dead_strip utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmMatcherEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmWriterEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmWriterInst.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/Attributes.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CallingConvEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeEmitterGen.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenHwModes.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenInstAlias.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenInstruction.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenIntrinsics.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenMapTable.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenRegisters.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenSchedule.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenTarget.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcherGen.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcher.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DecoderEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DFAEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DirectiveEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DisassemblerEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DXILEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/ExegesisEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/FastISelEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/GICombinerEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/GlobalISelEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/InfoByHwMode.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/InstrInfoEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/InstrDocsEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/IntrinsicEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/OptEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/OptParserEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/OptRSTEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/PredicateExpander.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CompressInstEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/RegisterBankEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/RegisterInfoEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/RISCVTargetDefEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/SDNodeProperties.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/SearchableTableEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/SubtargetEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/SubtargetFeatureInfo.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/TableGen.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/Types.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/VarLenCodeEmitterGen.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86DisassemblerTables.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86EVEX2VEXTablesEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86FoldTablesEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86MnemonicTables.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86ModRMFilters.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86RecognizableInstr.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/WebAssemblyDisassemblerEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CTagsEmitter.cpp.o -o bin/llvm-tblgen  -Wl,-rpath,@loader_path/../lib  lib/libLLVMSupport.a  lib/libLLVMTableGen.a  lib/libLLVMTableGenGlobalISel.a  lib/libLLVMTableGen.a  lib/libLLVMSupport.a  -lm  /Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/lib/libz.tbd  /usr/local/lib/libzstd.dylib  /Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/usr/lib/libcurses.tbd  lib/libLLVMDemangle.a && :
Undefined symbols for architecture x86_64:
  "std::__1::__libcpp_verbose_abort(char const*, ...)", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string[abi:v15006]<std::nullptr_t>(char const*) in AsmMatcherEmitter.cpp.o
      (anonymous namespace)::AsmMatcherEmitter::run(llvm::raw_ostream&) in AsmMatcherEmitter.cpp.o
      (anonymous namespace)::AsmMatcherInfo::buildInfo() in AsmMatcherEmitter.cpp.o
      emitConvertFuncs(llvm::CodeGenTarget&, llvm::StringRef, std::__1::vector<std::__1::unique_ptr<(anonymous namespace)::MatchableInfo, std::__1::default_delete<(anonymous namespace)::MatchableInfo> >, std::__1::allocator<std::__1::unique_ptr<(anonymous namespace)::MatchableInfo, std::__1::default_delete<(anonymous namespace)::MatchableInfo> > > >&, bool, bool, llvm::raw_ostream&) in AsmMatcherEmitter.cpp.o
      llvm::StringToOffsetTable::EmitString(llvm::raw_ostream&) in AsmMatcherEmitter.cpp.o
      std::__1::vector<std::__1::vector<llvm::Record*, std::__1::allocator<llvm::Record*> >, std::__1::allocator<std::__1::vector<llvm::Record*, std::__1::allocator<llvm::Record*> > > >::erase(std::__1::__wrap_iter<std::__1::vector<llvm::Record*, std::__1::allocator<llvm::Record*> > const*>, std::__1::__wrap_iter<std::__1::vector<llvm::Record*, std::__1::allocator<llvm::Record*> > const*>) in AsmMatcherEmitter.cpp.o
      llvm::SubtargetFeatureInfo::getEnumBitName() const in AsmMatcherEmitter.cpp.o
      ...
ld: symbol(s) not found for architecture x86_64
clang-15: error: linker command failed with exit code 1 (use -v to see invocation)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWl9z4jgS_zTKi0oU2IGQhzwQA1luYZIKmQn35JKlxmgjS16pTcJ--ivZ5N8kM5uN2au7pVIES-pf_2_JbXPvVW4Azkj_nPTHR7zCjXVnzm642R1lVu7OZiQ6Kejaam3vlcnpBrH0JB6RaEqiaaGV62i9LTrW5SSa5oCoTJ565A5BkmhK0dIckHKaVUpLatd0MZ9dU2tosaMLLjp0RisPkgrNTc56fcp9mBK2KJUGR6KEciOp44aS7ph0R_vvQXf_V1-Kgt8BZRf0izK_cdrpkGgaBKOkn9B__KexwQ8m2Xg-_7ZIJ19G5_NJenV9-a9JcrMk8Th4L9jnI9TnX2fzcTpZjRZX80kgvvzyUdKb0fXF5GaZ3lw2KCQekyhaDQckij6AkSxGv072_G_-fTUh8fgaNHAPHxVgr_louZxc38wuv_w18ZNklPwyeRL9Q4SNzEmaXC6uZvPJNYnHdXjXpJOIDLtkNPxTt-1RVqs3OCQ6D38vI581-dWhjCF3IeXEBsQdq51cf97Nm-Z7Rj2_p7iBF5kOzllHccORkkE31SoTZZluwWXWQ8oz65AMuvSee1oZCWtlQHboOQ-5bE0NJmxRgEEfrl8XjoD28PCydHz1yuTzZniDhaYzmlfgAxpa6qCwW6hBuffgUFnj6VrzPFSUMNyof79RYkM33NPcIoKhBdCSe6S4UZ6WVhl8RdD5SUkJjjqdkNOE7sFzhbUCw4IrQ6JT-mHT_-M-JBpm3EMwQu-YxKNuROJRHO0N1z_vkWga93oD0h_TuTJ3IaCS1YrCA4gKeaaBZsGGdY1mmOkcTEM8Hc3mkzGJRz9aEKZINCDRgJJoWnkXFlnBNYmmtsQ9CYmmDf2LfKFMi8df66tZQtl6q7zKlFa4Y8poZcCzjZISDGW3dQKQeCw5AkNVwIuxyuQVdxIk41uuNN9jGLin7JZrHZY-oOOU3RrLKhN2OFZyxwtAcJTd3juFwDw6ZXJP2a3gHtnvFQ-UhfIhGdhagZZMGYWKa_UHOE9ZCZIbVKIB1tbk9VdAaFQ7HbKwdXJktQDMQ6Eou1VFqZVQyNZca9w4W-WbQGS34EAyf69QbJiENa80NuDGwoOAEhnuSqiHDNsqhxXXTKINWkjQgMDemfFVnoNHFvCdkoG-UZYJa7bgvLKmUVUDl2FcGQkGOTYTArlkBd9lwCrjq7K04UBB2VoqnhvrUQnPhNWB2WVM2fjLeHL-9YIy5XfeWYshOOYqc9ztSDQdwxa0LcNxYprYouBGzpWBG2u1J9F0Of41_Ftwcblc9eJOt-PlHWW3mkQJ88Cd2KQlx41P18p5fJzZAJfgSi7Tgj-kynjkWqeGF-Apm_88OrXKQiLtkSRwmQYDlbRCVct0E7LkAkIMJwt-B1Olwb9OiI5UAX_kiwVHsQE3KRQiuI4oy479HNJtCMzDAc2Mx8-jIDqVVQj-0xAJ11qZPLFm21anxErYY1yAaQVzAWY8urjiAcu0UK6B-uV-YWUbGzUwwVUjrfhBgFwlQia3hwpFwyvRWqgFL2uatjjXkCuP4FoLtBQbkFV7gW7qI8enUcaji9kSdNvk2MMcqA69RmuTba-RLsvWhtojfR4GhJUHsNB0dACIKy7uAMPRojWYciBQbaE9kA8n_CLTBxBqNZu3xZg8QA5e-bY4U-7xEIl2MUtskSnT3joX2mZcH0KmmVnb812zDbUA8egCUntpPLqxFa1d9rT5tAW6LPEAEFfc-fZevyzxennTFuXKgVSCI0weSm5kGyQPlbRzew_h7qD9Ga0oHXgfYqAt1uNOf87N3aGwDhHf17Nl8q3Z9cewbou2HH-xEq5cuDlC1eIUuaxvk8Lymqa1XFXWNFMOBjQFjpWD4IJPgz2u_DzArmxh42_czcEc6EZkNRy83Gxrws-LthoOJt8mq-jbZNUgtfXbajiYWi0PBrYwUFijRHs9F1ZeL6ZKt7oLWA0H1yBsbtQfgabetD4NdgvZqPHj7pDnp-SG59-Zntm3fbmnLoYrOW5IlJDjrrZcgkubgWnzOEZllGqVNT_n82-LZdPX6fDvxp-y7EcTz0eXj9O-YMZ0Qdv3h577O49s_uhgJunbtuTzAo-yI3e1Jf4G_qJyHnwjxCvdx1Bwk2vo8KfWabxven997N1Tvysyqz1dW0dDKVcIIhRM-jAcpIPjJ4ogeuRRhoF4lKa9xx_vPiKIhmLDHRXWeCTRiEQJ7YRwOCVRFC4crMGBESDp2tniBZfwecsm416JtOklkjgJ4AHm7cIwk6LjCv3junjy_lKug6fQuueFNCx-y7B_zjNF4tG21-92B6Q_JnHyhGcqrUt0KdaMvtf7lCpDf9Cqe6kyiYbcWLMrbOVp3UssuYBgsJrJG4Rm2FWGRMO6t9hc8_vUenTAi9rjB-cettG9gSqlZX0ZDT_OCAqFSd0KxmllhH8l_avWRi1_Qp9nl7UvrmH9vje3IBpXvp2qjPq9grTEMP0nqtYKNKU5qPYep327PG3a4H8Vch9kfxqR_xdq0Cd1amdl1uqX_9sH5vfuv7GX67UHrOt9MxFom8mDpMJfiqynqWe-YXt3cl_zfu7i94g-Hx5_lyz0VV0EVz8AHL63E9w7XqaqLk7_Tfmeiu2P7Pa_IdknQv6de5hmJtwgmao4V_iFF7CvwDW3DzIJm3F9qYNq-0NAcGsAMhbp2lZG_vBQ0LyCsH91JwDsn5COqFbmDlz9DgAPAFxpkPRe4YbCg0IqrATaCxtO5YGyLUVLPQBVZhssqqwJBef1g_kjeRbL0_iUH8FZb3Byehwfn3RPjjZnPOp2h3FXHkeDHgcxOOnBWvaHJ4Ms60vZFUfqLOpGcTeOelEvHkYnHdk_Pln3-FqcZP3BSS8jx10ouNJP7yQcKe8rOBv0-qfDI80z0P7xPSl3Vp9-syr34airPPpnMlSo4awmbt4bUCZv1CaD7k_fSAkKVk6fvX5VIle4qbKOsMWLh4eBfensbyCQRNOaWTgg1sL-JwAA__-ghCOP">