mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 03:05:11 -07:00
build: probe the compiler to see if we need to turn down _FORTIFY_SOURCE
Some builds don't use Release (such as Gentoo, though it can be told to). So let's go a bit further and probe the compiler to see if we need to turn down the _FORTIFY_SOURCE level.
This commit is contained in:
parent
68fcd8b696
commit
7b6f705e5f
@ -73,8 +73,19 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wconversion")
|
|||||||
# gcc 4.0 and better turn on _FORTIFY_SOURCE=2 automatically. This currently
|
# gcc 4.0 and better turn on _FORTIFY_SOURCE=2 automatically. This currently
|
||||||
# does not work with Neovim due to some uses of dynamically-sized structures.
|
# does not work with Neovim due to some uses of dynamically-sized structures.
|
||||||
# See https://github.com/neovim/neovim/issues/223 for details.
|
# See https://github.com/neovim/neovim/issues/223 for details.
|
||||||
if(CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS "4"
|
include(CheckCSourceCompiles)
|
||||||
AND CMAKE_BUILD_TYPE MATCHES "^Rel")
|
check_c_source_compiles("
|
||||||
|
#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 1
|
||||||
|
#error \"_FORTIFY_SOURCE > 1\"
|
||||||
|
#endif
|
||||||
|
int
|
||||||
|
main(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
" _FORTIFY_SOURCE_ACCEPTABLE)
|
||||||
|
|
||||||
|
if(NOT _FORTIFY_SOURCE_ACCEPTABLE)
|
||||||
# -U in add_definitions doesn't end up in the correct spot, so we add it to
|
# -U in add_definitions doesn't end up in the correct spot, so we add it to
|
||||||
# the flags variable instead.
|
# the flags variable instead.
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1")
|
||||||
|
Loading…
Reference in New Issue
Block a user