[llvm] [libcxx] [libc++][hardening] Rework macros for enabling the hardening mode. (PR #70575)

Louis Dionne via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 31 13:51:03 PDT 2023


================
@@ -58,16 +58,23 @@ Improvements and New Features
 - The library now provides a hardened mode under which common cases of library undefined behavior will be turned into
   a reliable program termination. Vendors can configure whether the hardened mode is enabled by default with the
   ``LIBCXX_HARDENING_MODE`` variable at CMake configuration time. Users can control whether the hardened mode is
-  enabled on a per translation unit basis using the ``-D_LIBCPP_ENABLE_HARDENED_MODE=1`` macro. See
+  enabled on a per translation unit basis using the ``_LIBCPP_HARDENING_MODE`` macro. See
   :ref:`the hardening documentation <using-hardening-modes>` for more details.
 
-- The library now provides a debug mode which is a superset of the safe mode, additionally enabling more expensive
+- The library now provides a debug-lite mode which is a superset of the hardened mode, additionally enabling checks that
+  catch common logic errors that aren't necessarily security-critical. This mode is largely a replacement for the safe
+  release. Unlike the legacy debug mode, this doesn't affect the ABI and doesn't require locking. Vendors can configure
+  whether the debug-lite mode is enabled by default with the ``LIBCXX_HARDENING_MODE`` variable at CMake configuration
+  time. ``LIBCXX_HARDENING_MODE`` variable at CMake configuration time. Users can control whether the hardened mode is
+  enabled on a per translation unit basis using the ``_LIBCPP_HARDENING_MODE`` macro. See
+  :ref:`the hardening documentation <using-hardening-modes>` for more details.
----------------
ldionne wrote:

```suggestion
- The library now provides a debug-lite mode which is a superset of the hardened mode, additionally enabling checks that
  catch common logic errors that aren't necessarily security-critical. This mode is largely a replacement for the safe
  mode. Vendors can configure
  whether the debug-lite mode is enabled by default with the ``LIBCXX_HARDENING_MODE`` variable at CMake configuration
  time. Users can control whether the hardened mode is
  enabled on a per translation unit basis using the ``_LIBCPP_HARDENING_MODE`` macro. See
  :ref:`the hardening documentation <using-hardening-modes>` for more details.
```

https://github.com/llvm/llvm-project/pull/70575


More information about the llvm-commits mailing list