mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-24 18:23:26 -03:00
Merge bitcoin/bitcoin#30824: cmake: decouple FORTIFY_SOURCE
check from Debug
build type
Some checks are pending
Some checks are pending
30803a35d5
cmake: decouple FORTIFY_SOURCE check from Debug build type (fanquake) Pull request description: `FORTIFY_SOURCE` should be used if `ENABLE_HARDENING=ON` and optimisations are being used. This should not be coupled to any particular build type, because even if the build type is `Debug`, optimisations might still be in use. Fixes: #30800. Also somewhat of a followup to https://github.com/bitcoin/bitcoin/pull/30778#discussion_r1742257436. ACKs for top commit: ryanofsky: Code review ACK30803a35d5
TheCharlatan: ACK30803a35d5
Tree-SHA512: 298f8805a5bb2f1ff54e51ea31324d712c2070cc3eba26561c31001ace4bfa37ae6d18531cbd45e2faf610a0a1b83b420fcde6e329e17f02b021d26563583913
This commit is contained in:
commit
94bc3c4cc0
1 changed files with 10 additions and 7 deletions
|
@ -480,18 +480,21 @@ if(ENABLE_HARDENING)
|
|||
try_append_linker_flag("/HIGHENTROPYVA" TARGET hardening_interface)
|
||||
try_append_linker_flag("/NXCOMPAT" TARGET hardening_interface)
|
||||
else()
|
||||
|
||||
# _FORTIFY_SOURCE requires that there is some level of optimization,
|
||||
# otherwise it does nothing and just creates a compiler warning.
|
||||
try_append_cxx_flags("-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3"
|
||||
RESULT_VAR cxx_supports_fortify_source
|
||||
SOURCE "int main() {
|
||||
# if !defined __OPTIMIZE__ || __OPTIMIZE__ <= 0
|
||||
#error
|
||||
#endif
|
||||
}"
|
||||
)
|
||||
if(cxx_supports_fortify_source)
|
||||
# When the build configuration is Debug, all optimizations are disabled.
|
||||
# However, _FORTIFY_SOURCE requires that there is some level of optimization,
|
||||
# otherwise it does nothing and just creates a compiler warning.
|
||||
# Since _FORTIFY_SOURCE is a no-op without optimizations, do not enable it
|
||||
# when the build configuration is Debug.
|
||||
target_compile_options(hardening_interface INTERFACE
|
||||
$<$<NOT:$<CONFIG:Debug>>:-U_FORTIFY_SOURCE>
|
||||
$<$<NOT:$<CONFIG:Debug>>:-D_FORTIFY_SOURCE=3>
|
||||
-U_FORTIFY_SOURCE
|
||||
-D_FORTIFY_SOURCE=3
|
||||
)
|
||||
endif()
|
||||
unset(cxx_supports_fortify_source)
|
||||
|
|
Loading…
Add table
Reference in a new issue