Reorg front of Compiler Options Hardening Guide for clarity #821
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reorganize the front part of the
"Compiler Options Hardening Guide for C and C++"
for clarity.
There is a recent and very interesting post
"Mitigating a rsync Vulnerability: A Lesson in Compiler Hardening" by Mark Esler on March 19, 2025 at
https://www.chainguard.dev/unchained/mitigating-a-rsync-vulnerability-a-lesson-in-compiler-hardening
However, that post says "Chainguard implements most recommendations, and takes them a step further by also opting into..." and then adds options that our guidance specifically recommends. E.g., it adds
-fPIE
and-PIC
,-fsf-protection=full
, and so on.This shows that even smart people who read the guidance think that only the list at the top is relevant, and don't even look at the table below it.
Let's put the table immediately after it, with bolded text to clarify what's meant. In addition, let's add
-Werror
to the table; the text below clarifies things, but if it's not even in the table, readers are likely to miss it.