Skip to content

investigate LIBCXX_HARDENING_MODE=extensive #1652

@spoonincode

Description

@spoonincode

A few months ago a PR failed only on the reproducible build, and it was because LIBCXX_HARDENING_MODE=fast -- only enabled in the reproducible builds -- caught a defect.

Looking at libc++'s docs,
https://libcxx.llvm.org/Hardening.html

Extensive mode, which contains all the checks from fast mode and some additional checks for undefined behavior that incur relatively little overhead but aren’t security-critical. Production builds requiring a broader set of checks than fast mode should consider enabling extensive mode. The additional rigour impacts performance more than fast mode: we recommend benchmarking to determine if that is acceptable for your program.

It would be interesting to try the extensive mode in the reproducible builds and see what kind of performance hit it incurs. The additional safety could clearly be useful, and the documentation does state that extensive mode is still intended for production builds.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions