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

    <tr>
        <th>Summary</th>
        <td>
            clang-cl: linker error for pre-built boost serialization 
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          sp4r74n-117
      </td>
    </tr>
</table>

<pre>
    In an CI environment we use `MSVC` and `ClangCL` toolset v13.0.1 (as part of Visual Studio 2022) to build a project which has a dependency on `boost_serialization-vc143-mt-gd-x64-1_79` [1].

To pick the "right" dll to link against, the auto-linking feature is disabled to let `CMake` handle this.
As of now, the linker aborts with an error tho:
`lld-link : error : undefined symbol: public: void __cdecl boost::archive::archive_exception::`vbase dtor'(void)`

`dumpbin` of exported symbols of the `boost` dependency:
```
ordinal hint RVA      name
 36   23 00001F20 ??1archive_exception@archive@boost@@UEAA@XZ
```

`dumpbin` of the object which fails to link:
```
RELOCATIONS #679
                                                Symbol    Symbol
 Offset    Type              Applied To         Index     Name
 --------  ----------------  -----------------  --------  ------
 00000004  ADDR32NB                   00000000      3319  ??_Darchive_exception@archive@boost@@QEAAXXZ (public: void __cdecl boost::archive::archive_exception::`vbase destructor'(void))
 0000000C  ADDR32NB                   00000000      1B01  _CTA2?AVarchive_exception@archive@boost@@
```

>From our observation it looks like `MSVC` acts as if no `virtual` has been specified and emits a throwinfo to point to the base dtor instead.
```
class BOOST_SYMBOL_VISIBLE archive_exception :
    public virtual std::exception
```

[1]: https://sourceforge.net/projects/boost/files/boost-binaries/
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVdtu6ygU_ZrkZcuRb7n4wQ9J2kiR2kbT9ESd8xJhwDFTAhbgtJ2vn43ttI3aHp0jDbJsLgb2WnuxKDR7zdcKiILlGrg6CaPVkSsHzxway2EwCW-3uyV-8B_mm0tJ1GF543uc1tJyB6coGYWjCAbxjFioiXGgS9gJ2xAJW9cwoSEO43gQZzgHikZIBgRqo__hFLeqBK2gwqkEGK-5YlzRV9DKb1dobd3eciOIFP8SJ7QKTjRKk-DoggMLXiZpEO2nmY9nMF5Eg_HVaBBeDcJ5937QUAv6BK5CMHFsxKFy-AUmpY9FCvUE5ECEsti9bH8jjdOBHxDqACUnrjEchAUmLCkkZ-08hO3JuCVP3G9dITuS43Rh--3n1pOg9PN5Wb8iN0AKbZyFZ-EqTzs3Rhsc14OkjxiXk5K1AQB29n_4WoPMlEJhBPb1WGjp--qmkIL62kkLBvs9ZZxKaGnzSyZzYmglTvyisecvlNeezK4b9zwVBPPNnDaDeIqZ9MthwnDkI53YZM2xLoTyqBEgf6kRz1tILeiW6z51_rf3pH4E2T9tUxsmFIqlEii9-90c2qLIkXfjkEywHScQYolWMeY6WeETfcaThmfAaR9BGuLz43o-x8_jzy_3_wacB6KLDyItiUCIvW6-A3N_fbNZzh_Wm7stSi6ZoDg7EH9Yti2j77V-lU1Z-kOH5eG15pdT5nUtBSYDVX8ua2T-pa3dvdMZ9AXeat_3fOg61_pVwq6kuO_V1X0S3y2-QNH_FHatJIky6JO3v_rt7P2F2Xt8_Okd5v8WPLfONPST7OPsEuTyD0BGizAC2C8f5jHCnO9-G-YvtLky-gi6MahHNMNTa4QgHEitnyzK8enSqylaDBqq8A7kB9DYHbpxZ1UWCs4V2JpTUXq5eGvnR-HnoOaNfhaq1F7mtfYHEiv-JLwZBHi35ISNvoyXSmItLDab7cN--_ftYnOz362368XNNXwiAt7OkOetSy30sYJ1rEvWO2-_OLud93tdVM7V1s-MV_hYJI3yUpsDHymOJr_q7x2L1Y77eFUKyd_aARoAMaLtGPI8mkym43Q6myRDlicsSzIydMJJnlN_FQa09eHe3Tuzxt3wduOBv-lcJ024uMJg2BiZXwZ6wBuhKUZUH7Eh5en8Cfp4sSmsbdqwxrNZOBlWOUEhRZRFWZZEdEonybQMxzOWZeWYE5okQ0kKLm2O7CA5Q5H7aziKwjScpmmcjMosKVALJMtYOYsoQQ3yI3rcyG88Qs6GJm9jKJqDxUEprLPvg5hocVCcn9fHm7PSJrd1aqapCqJoOmxDztt4_wO8HoCV">