<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/150487>150487</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[libc++] Allow building the dylib with the observe assertion semantic
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc++,
hardening
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
var-const
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ldionne
</td>
</tr>
</table>
<pre>
In #149459, we added assertion semantics (experimentally). One of these semantics is the `observe` semantic, which requires linking against `libc++experimental.a`. That means that we currently can't build the dylib itself with the observe semantic, since that would create a cyclic dependency (`libc++experimental.a` requires the dylib for various things, and `libc++.dylib` requires `libc++experimental.a` for the definition of the logging function).
This issue would go away on its own if we made the logging function (and the assertion semantics) non-experimental, because then we'd move the logging function to the dylib.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyEU81u4zgMfhr5QsRw5L_44EPaIsCe9tIXkCXa5q5MZSU52bz9QG4wSdHOzMkARX9_JFUINDFiL-oXIeVF-Z12HKKQUtRvmVrj7HxvDTlmzAZnbv1fDEKW-6qr6k7IV7giKGPQgAoBfSTHEHBRHEkHEPKA_5_R04IclbU3Ibsc_mYEN0KcMeBTM4VUAtEUbgjoLyia4ufzRjWTnsHjfyt5DGCJ_yWeQE2KOMT0o6VBC_ki5Mszba5EU-TwPqsICypOPCom5Xr1HjnaG2jFQrYRhpWs2XSYm6UBKAa0I1wpzlv1Lu2TrkCs8Y7pVmtAe1QRQYG-aUsaDJ6RDbK-pUR-r_Ph7yFidB4uypNbU5V4ColWsfnsOd-6P2H8gSsBbzQ4EtM2vI_BgHXTlMIdV9apngYniqMoju8zpVmFFe9uJwfqqm7gOKUF7spAY0p3UQa_BUspJPXp7Zu1EbIDdrx71psMD6jVGjZIhisK2RpY3OUXHNE9Eswz05emKzuVYb9v67I8FF3VZnOPRpVjq7FGPTbDQZVj0-2bEgtddkNVDhn1spB10cpqf9jXVZOPcj-ObVU0Ro26kkZUBS6KbG7tZcmdn7ItnH5fF9Whzawa0Ib7gT1mkS5MvgopZ-UNMvF0vznfJ5zdsE5BVIWlEMMDOVK027E-AdVvcLTWXT9WN0XwWJwva_s17Wz1tp9jPAdRHoU8CXmaKM7rkGu3CHlK3PfP7uzdP6ijkKfNYhDydHd56eWPAAAA__9xknK6">