<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">