<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/76982>76982</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Libclang/symbols.test fails on Linux when using the `mold` linker
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang:as-a-library
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
alanzhao1
</td>
</tr>
</table>
<pre>
I'm unsure if this is a mold issue or a clang issue, so I'm filing this bug here first.
Repro steps:
I have LLVM commit a7a78fd427569a7ad8a27e682a66fe414f004a35 checked out.
```
$ clang --version
Debian clang version 16.0.6 (16)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
$ mold --version
mold 2.2.0 (compatible with GNU ld)
$ cmake -DLLVM_USE_LINKER=mold -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLLVM_TARGETS_TO_BUILD='X86' -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS='clang' -G Ninja ../llvm
```
Failure message:
```
$ ninja check-clang
[3527/3528] Running the Clang regression tests
llvm-lit: /usr/local/google/home/ayzhao/src/llvm-project/llvm/utils/lit/lit/llvm/config.py:488: note: using clang: /usr/local/google/home/ayzhao/src/llvm-project/build-mold/bin/clang
FAIL: Clang :: LibClang/symbols.test (11870 of 20499)
******************** TEST 'Clang :: LibClang/symbols.test' FAILED ********************
Exit Code: 1
Command Output (stdout):
--
00000000010e3e70 t clang_Cursor_getTranslationUnit$plt
00000000010e3e60 t clang_Cursor_isNull$plt
00000000010e3eb0 t clang_Range_isNull$plt
00000000039414c8 d clang_createTranslationUnit$got
00000000010e3e40 t clang_defaultDiagnosticDisplayOptions$plt
00000000010e3f10 t clang_disposeString$plt
00000000010e3e00 t clang_equalCursors$plt
00000000010e3e30 t clang_formatDiagnostic$plt
00000000010e3f00 t clang_getCString$plt
00000000010e3db0 t clang_getCursorKind$plt
00000000010e3df0 t clang_getCursorLocation$plt
00000000010e3e10 t clang_getCursorReferenced$plt
00000000010e3e20 t clang_getCursorSemanticParent$plt
00000000010e3e50 t clang_getCursorUSR$plt
00000000010e3ef0 t clang_getFileLocation$plt
00000000010e3dd0 t clang_getFileName$plt
00000000010e3dc0 t clang_getNullCursor$plt
00000000010e3e80 t clang_getNullLocation$plt
00000000010e3e90 t clang_getNullRange$plt
00000000010e3ea0 t clang_getRange$plt
00000000010e3ed0 t clang_getRangeEnd$plt
00000000010e3ec0 t clang_getRangeStart$plt
00000000010e3ee0 t clang_getSpellingLocation$plt
00000000010e3f20 t clang_getTypeDeclaration$plt
00000000010e3f30 t clang_install_aborting_llvm_fatal_error_handler$plt
00000000010e3d80 t clang_isDeclaration$plt
00000000010e3da0 t clang_isExpression$plt
00000000010e3d70 t clang_isInvalid$plt
00000000010e3d90 t clang_isReference$plt
00000000010e3de0 t clang_visitChildren$plt
--
Command Output (stderr):
--
RUN: at line 2: llvm-nm -Dj --defined-only /usr/local/google/home/ayzhao/src/llvm-project/build-mold/lib/libclang.so | grep -v -e '@@LLVM_[0-9]\+$' | /usr/local/google/home/ayzhao/src/llvm-project/build-mold/bin/not grep '^clang'
+ grep -v -e '@@LLVM_[0-9]\+$'
+ /usr/local/google/home/ayzhao/src/llvm-project/build-mold/bin/not grep '^clang'
+ llvm-nm -Dj --defined-only /usr/local/google/home/ayzhao/src/llvm-project/build-mold/lib/libclang.so
RUN: at line 6: llvm-nm /usr/local/google/home/ayzhao/src/llvm-project/build-mold/lib/libclang.so | /usr/local/google/home/ayzhao/src/llvm-project/build-mold/bin/not grep '[a-z] clang_[^.]\+$'
+ llvm-nm /usr/local/google/home/ayzhao/src/llvm-project/build-mold/lib/libclang.so
+ /usr/local/google/home/ayzhao/src/llvm-project/build-mold/bin/not grep '[a-z] clang_[^.]\+$'
--
********************
********************
Failed Tests (1):
Clang :: LibClang/symbols.test
Testing Time: 33.40s
Total Discovered Tests: 35168
Skipped : 35 (0.10%)
Unsupported : 3411 (9.70%)
Passed : 31697 (90.13%)
Expectedly Failed: 24 (0.07%)
Failed : 1 (0.00%)
FAILED: tools/clang/test/CMakeFiles/check-clang /usr/local/google/home/ayzhao/src/llvm-project/build-mold/tools/clang/test/CMakeFiles/check-clang
cd /usr/local/google/home/ayzhao/src/llvm-project/build-mold/tools/clang/test && /usr/bin/python3 /usr/local/google/home/ayzhao/src/llvm-project/build-mold/./bin/llvm-lit -sv --param USE_Z3_SOLVER=0 /usr/local/google/home/ayzhao/src/llvm-project/build-mold/tools/clang/test
ninja: build stopped: subcommand failed.
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEWF1v2zoS_TXMCyFBor6sBz8k_iiydZPCdi66-2JQ0lhmS5FaksqN769fkLJju7GTdpveGwQybM7hnJk5FDmkWrNaAAxRcoOS8RXtzEaqIeVU_LWhMrwqZLUd3iKSNbgTulOA2RqbDdOYaUxxI3mFmdYdYKkwxSWnou5_QGSEtcQ9ds04E3UPLLoab0ABXjOljY-CMQqu--ccWiWxNtBqFF0fj9ziDX0EPJv98QmXsmmYwTSj2WBdxSRL0pxmtBpQkkE6IDRN1xCH8ToIYholuNxA-Q0qLLtTbygNdv_9VxLv-HveIyjNpOgHxlAwKnZjuxEcpn7gpxiRQZgikveWS6pqMCi6xk-DdJXGXlt6nInuyatFtzPZKKAVbmQF3Bq2UrOnXYxCG8o5VGOm7BAi004rRKYFEweKLuXfMXS_EZ_4gSVUyqalhhUc8J_MbPCHuwfMq2eSLs6GfgPsjW0-Vw-LyWp2e_dxMkfR2E2FvfHo0_XHyWq0Gt1_-nw7c0O75OyHvnx5MYjIDSI3-3mX1_MPk-Vitbxf3TzczsYoGiOSfRmkiGTP07iR1fLfnycoGs-BA9XPxCZ31zezyerz_P5fk9Fy0eN3jjLsfcB3THyl2PcRmXL-2Jwvq3tOKeNWvQ1oTWv4Tl1nlCDc1E46Xu-yH0puooRkiEyjhAxQMsbzTohe24BHLkMKagXaqcSANrpHWoIeZ-akslyWlCMyraWsOSAy3cjGftCtXX6ITLUqd8F5rZJfoTT7WMm0M4xr-5WZw7MfKqVYs9pvtyi6jgcD61NIY8PGnbZs-5B-nUrRMV55VjQ7nZLpUbam17cz66TPi016dI1nrBj1NZzqbVNIrn2bJreUwkEWYLnGJIjz_Eix__8_Xk4WS4xI9iMcrKws58kY_4rPnvXkiRk8kpXLengst5FsGioqfN-ZtnOBa1PJztiA98L0vP4z2P-FAUSQBdj0tVuNOqWlWtVglooKzalhUjwIq4K45eYcOn2BZvqu4_wyojgg5lTU8BogyuMwLge42gFKBdTAS3K1POsqPriqYE07bsaM1kJqw8ox0y2n2_vWTqMv0l2HR3Mw3UoNC6OYLfOlAIMDAv7bUd7n5bILiA6AtVQNPWJ5mdeRlxrM6A1SVXFq7ih9ZKK6jFifQcxk6dJ-OZbwDGoOa1AgSrjsDcgZ3AIaKgwrP1MF4hUNJmewD4v5ZcBpaFPG4c3AquoF5o7al9kl-_LE3iq8J3aZ1eAF4u105y8wbk1dBtATwBvG1UvjySuSgfKl_cJQ9Urp4ASxaIHbQ92bca9P5bLctjCGklP1BuxopbH-ZLSihVSGiXpld6HVmhrKV6CUVKsNFRWHywWrjgrG9I_4r-gxYvLU7vb0y4DsGHArHilnryzZ_Nj6edVdtj_K_iPTzIw2jFcKTvicbh1ntxlQ6tw2M3-4s9sUNZgzAZjYL26rFw32xl-x51WwZgIqTwq-fddTA2dF_3TB-VpilI1wraDF3iP2wG7eKA5QHLhDIUpuAi9HyRglI3fejO2ubSHvf5QR0vRELIVksj967k8lNz_J8oD7B6j-U9U8q6_0WF-_X0y_O9031PvL9gL98nS99MS_WPy_Je6_T2s_EfzJK-fXz_bvNYNtDqHCS9usuTbk-A2Jf6h7OQmpb_RB260KL1njOoAo8uNAn1hIQzkeM13KR1B7As42CdPB3v3iG2tbqPDzn7XAGEeJ5Rr4YYBI8twrYfwgdNe2Upk9xtlHcRha-9zPvrP_TLU-nt7ZR2GaZ84-8MPoFDB5aqE0UPEt7jO3I0TinlCQndrv0vsiABzu7E8I9f2XNTFSuv529y6b9h3adPSJfgN7pnNjhwb9XYX-k7576mX12zlgRFJE0tO7ITJtt2YjRfSu7v3n2fdXF9jTj9jzWqpogx8Wk9V_otXifvaHuwAKfn_-XZLdxYyVh7PH2ki7OuwPuivK3ZFn7STnv3IhdFUNoyqPcnoFwzAL4igPgnxwtRlCVWUVKSCnQV5Ga8iyOCvStBhENEiyhF6xIQlIHIRBHGZxGA38EGie0LTM8yIbBCGgOICGMu7bAH2p6it3ITrM0nxArjgtgGt34UrI_hqGao96nBWKqi0iBCXjKzV0-Sm6WqM44EwbfZjQMMNhONu97r-_SbHRaywFnjHRPeE_NyB21z5mAxilgUtyGti9-Buoq07x4caY_tKVTG3lmNl0hV_K5nCn9F25XEy2RC6s_wUAAP__hP6leg">