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

    <tr>
        <th>Summary</th>
        <td>
            undefined reference on clang-fuzzer-dictionary error when building LLVM 15 with GCC 12.2.0
        </td>
    </tr>

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

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

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

<pre>
    Hi,

I'm trying to bootstrap LLVM with Clang, OpenMP, Polly, and compiler-rt enabled. The build uses GCC 12.1.0, which is installed to LLVM installation prefix (`LLVM_PREFIX=$HOME/.local/llvm`). Because I'm using newer GCC than provided by my Linux distribution (Debian 11), I have to configure LLVM as (following [Getting Started tutorial](https://llvm.org/docs/GettingStarted.html#getting-a-modern-host-c-toolchain)):
```
$ CC=$LLVM_PREFIX/bin/gcc CXX=$LLVM_PREFIX/bin/g++ \
  ccmake ../llvm -DCMAKE_CXX_LINK_FLAGS="-Wl,-rpath,$LLVM_PREFIX/lib64 -L$LLVM_PREFIX/lib64" \
  -DCMAKE_BUILD_TYPE=Release -G "Ninja"
```

The configuration has `LLVM_BUILD_LLVM_DYLIB` and `LLVM_LINK_LLVM_DYLIB` enabled (I prefer to use build libllvm instead of statically link it).

I see undefined reference to `libstdc++` error:
```
Linking C executable bin/clang-fuzzer-dictionary
FAILED: bin/clang-fuzzer-dictionary
: && /home/bagas/.local/llvm/bin/gcc -fPIC -fno-semantic-interposition -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-comment -Wmisleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O2 -DNDEBUG -Wl,-rpath-link,/home/bagas/repo/llvm-project/build/./lib  -Wl,--gc-sections tools/clang/tools/clang-fuzzer/dictionary/CMakeFiles/clang-fuzzer-dictionary.dir/dictionary.c.o -o bin/clang-fuzzer-dictionary  -Wl,-rpath,"\$ORIGIN/../lib"  lib/libLLVM-15.so  -lpthread && :
/usr/bin/ld: lib/libLLVM-15.so: undefined reference to `std::__exception_ptr::exception_ptr::_M_release()@CXXABI_1.3.13'
/usr/bin/ld: lib/libLLVM-15.so: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30'
/usr/bin/ld: lib/libLLVM-15.so: undefined reference to `std::__throw_bad_array_new_length()@GLIBCXX_3.4.29'
/usr/bin/ld: lib/libLLVM-15.so: undefined reference to `std::__exception_ptr::exception_ptr::_M_addref()@CXXABI_1.3.13'
collect2: error: ld returned 1 exit status
```

It seems like `-L$LLVM_PREFIX/lib64` doesn't get passed to the erred command above (as effect of `CMAKE_CXX_LINK_FLAGS` getting ignored).

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1Vtty2joU_RrzorEHbCDhgYcEQsqUXCZtT9snj2zLWI1s-UhyEvr1Z20ZcmvS05fOMNiWtvZ17bWV6WI3_yCDeBEMl8HwpP9fB_FRzZzZyWbLnGaZ1s46w1u22fxzwe6lq9hC8WaLc-yqFc3FNb1da6V29MKbguW6bqUSJjSOiYZnShQR-1wJlnVSFayzwrLzxYKN4mgUDenUfSXziknLZGMdVzhAtr3F_Qp3UjesNaKUDyyIj4PpkLbT65uz1fpbkCyDePzh6uIsiFeR0jlXeFHqroZcEM8idipyDsOsj6-zFF4j7oXxnriKk3J9JwuYznas3rGNbLoHVkhEL7POm4fdpcgkZEcjaCXP16zid4K8zXVTym1nRO83tyReIi_6nowFk9Nz4Ry9fnLcOAqxc9pIuDqB98eVc60NkhM4vvc90gZpXhU6t3jsT-8PR5WrEWOy7VdDHta6EKYJK21dmIdOa5VXXDbezxnp7auMfPS__jMes8WiT9_zfMarjI6utnnOFt--_UYgiE_xQ3h7GDGW5zW_FSyK9mGwcLm4OPl4lkJRullffkxXm5PzT15nHH5FFIvQtNxVBMXXVpTMpmMWbt7egILnlg-GTr-sN8v08_frMxi5EUpwVD48R0HiS9n84Hi-nQ3_T0g9FLOHXUXF3AOu1-1fl98361Ose9Af9n2AL7f3PUB4WHsIA3UADMGx7wjE4hNFWBe8YLpkAL2TgLHaYbe5ZdIRjF90KrNCsK4p0BINtHu9osk9GGEWSq0r8r4-3g1jtHkPCED7LWFzwcSDyDtHHrO-xDm1e1h2P3-ipQuZU0q42fXnVifrzdkSWv9EmMSCeIofHqtK14JwxLfc_tK2zwEYltfrBf4bHVpR8waJCWXjhGm1lb5A4dd9cMuCOxE6WaPeX5E92nkAfeGJ012DnBdhyw2vBc5j9d5IHKAeb7a2l6qlJXoISylUAUMwwZVEPNhvReHt95JKQ4z-8CnrVslcurCEWVcZ3W2rXgp0WIvG4QOagcWClEvUrXE9vMKykHzboHFlbiGuNDwry67x2UPM_mlJjjv-7PsqBuQvl2enX87Z80YKCTK-m14n2YhW71Mcgu9-QBXtEgqpBH1fsYOycJs_WSNGsYcK4_nie19xYqunmserxQWYYIVZ8FrwGTSiQr48F-WRZqH-PaAY-4U5YmKCeHx1sz5fX1I0-3CIJJh_0he1ZjiaRFZDhWpRKeq4AyofuyNeddY8ohDZAXTf0EHL77cg-o80JidpKh5y0ZLvaetMv_jGUnqRmp6uaMSBtsdDkObJ6TodRUk0SjC8_op_oLvCd1J6xzGR0Pv9-j0n3jl-lOsa-W8nUnTqbZAsHpfrzomHIDnzWSSnz8F8xPZJNI6S4d_yOk2pz-7TjBcpN4bvUkz0VIlmS4g4_tUVGoV_y5U_LjAvCqj5n_qCBBQaLybzB95mihxwnSFPRuBp6fyY6Oxvhtna0ZioLWLDTMbmu6MUE6LQwiIbR47hWsFabm1_EXOYiPBC-KtdTdOOZxq3HgSBySjKEq7S0IKONyc9VO_vKUyC56DoaZgNxHw0nY6Hw9l0djQo5kkxS2Z84KRTYv5W5kGY73GCzxQuk6LpBysZ9Jex0aS_ue5vnXE0HHRGzV9eubaQ6LIIIT4NoVdEicnQeS6bHM0m8aCa88koywVPJsNpPoyzcjbJslkhpqPJeHycZJOB4plQdo7bH2gI8GRehSer5UDO42EcD2fxeHg8GU-Oorw4KsujfJaM45IXSQ58YOBJFR2ugwMz9y5l3dZiU-F2ap82UTDkVwhvDvp55ypt5p78azHwpufe9f8AZunIxg">