Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Check for Clang and GCC Support When Defining NO_STACK_COOKIE (#640)
## Description Older versions of Clang and GCC don't support the no_stack_protector attribute. To determine if the attribute is supported for the active Clang toolchain, the __has_attribute() language extension can be used. To determine support for GCC, the major version can be checked. According to the docs, the earliest version which supported the attribute was v11: https://gcc.gnu.org/onlinedocs/gcc-11.4.0/gcc/Common-Function-Attributes.html - [x] Impacts functionality? - **Functionality** - Does the change ultimately impact how firmware functions? - Examples: Add a new library, publish a new PPI, update an algorithm, ... - [x] Impacts security? - **Security** - Does the change have a direct security impact on an application, flow, or firmware? - Examples: Crypto algorithm change, buffer overflow fix, parameter validation improvement, ... - [ ] Breaking change? - **Breaking change** - Will anyone consuming this change experience a break in build or boot behavior? - Examples: Add a new library class, move a module to a different repo, call a function in a new library class in a pre-existing module, ... - [ ] Includes tests? - **Tests** - Does the change include any explicit test code? - Examples: Unit tests, integration tests, robot tests, ... - [ ] Includes documentation? - **Documentation** - Does the change contain explicit documentation additions outside direct code modifications (and comments)? - Examples: Update readme file, add feature readme file, link to documentation on an a separate Web page, ... ## How This Was Tested Tested via using the Clang and GCC toolchains, and building GCC Q35 + SBSA ## Integration Instructions N/A
- Loading branch information