Commit 0dec4cf9 authored by Nikolay Agishev's avatar Nikolay Agishev Committed by Anas Nashif
Browse files

toolchain: Move extra warning options to toolchain abstraction

Move extra warning option from generic twister script into
compiler-dependent config files.
ARCMWDT compiler doesn't support extra warning options ex.
"-Wl,--fatal-warnings". To avoid build fails flag
"disable_warnings_as_errors" should be passed to twister.
This allows all warning messages and make atomatic test useles.

Signed-off-by: default avatarNikolay Agishev <agishev@synopsys.com>
parent a28dba25
Loading
Loading
Loading
Loading
+7 −0
Changes for CMakeLists.txt: 7 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -156,6 +156,13 @@ endif()
zephyr_compile_options($<$<COMPILE_LANGUAGE:C>:$<TARGET_PROPERTY:compiler,no_strict_aliasing>>)
zephyr_compile_options($<$<COMPILE_LANGUAGE:CXX>:$<TARGET_PROPERTY:compiler-cpp,no_strict_aliasing>>)

# Extra warnings options for twister run
if (CONFIG_COMPILER_WARNINGS_AS_ERRORS)
  zephyr_compile_options($<$<COMPILE_LANGUAGE:C>:$<TARGET_PROPERTY:compiler,warnings_as_errors>>)
  zephyr_compile_options($<$<COMPILE_LANGUAGE:ASM>:$<TARGET_PROPERTY:asm,warnings_as_errors>>)
  zephyr_link_libraries($<TARGET_PROPERTY:linker,warnings_as_errors>)
endif()

# @Intent: Set compiler flags to enable buffer overflow checks in libc functions
# @details:
#  Kconfig.zephyr "Detect buffer overflows in libc calls" is a kconfig choice,
+5 −1
Changes for Kconfig.zephyr: 5 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -360,9 +360,13 @@ config NO_OPTIMIZATIONS
	help
	  Compiler optimizations will be set to -O0 independently of other
	  options.

endchoice

config COMPILER_WARNINGS_AS_ERRORS
	bool "Treat warnings as errors"
	help
	  Turn on "warning as error" toolchain flags

config COMPILER_COLOR_DIAGNOSTICS
	bool "Colored diagnostics"
	default y
+4 −0
Changes for cmake/compiler/arcmwdt/compiler_flags.cmake: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -134,6 +134,10 @@ set_property(TARGET compiler-cpp PROPERTY dialect_cpp2b "")
# Flag for disabling strict aliasing rule in C and C++
set_compiler_property(PROPERTY no_strict_aliasing -fno-strict-aliasing)

# Flags for set extra warnigs (ARCMWDT asm can't recognize --fatal-warnings. Skip it)
set_property(TARGET compiler PROPERTY warnings_as_errors -Werror)
set_property(TARGET asm PROPERTY warnings_as_errors -Werror)

# Disable exceptions flag in C++
set_property(TARGET compiler-cpp PROPERTY no_exceptions "-fno-exceptions")

+4 −0
Changes for cmake/compiler/compiler_flags_template.cmake: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -68,6 +68,10 @@ set_property(TARGET compiler-cpp PROPERTY dialect_cpp2b)
# Flag for disabling strict aliasing rule in C and C++
set_compiler_property(PROPERTY no_strict_aliasing)

# Extra warnings options for twister run
set_property(TARGET compiler PROPERTY warnings_as_errors)
set_property(TARGET asm PROPERTY warnings_as_errors)

# Flag for disabling exceptions in C++
set_property(TARGET compiler-cpp PROPERTY no_exceptions)

+4 −0
Changes for cmake/compiler/gcc/compiler_flags.cmake: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -134,6 +134,10 @@ set_property(TARGET compiler-cpp PROPERTY dialect_cpp2b "-std=c++2b"
# Flag for disabling strict aliasing rule in C and C++
set_compiler_property(PROPERTY no_strict_aliasing -fno-strict-aliasing)

# Extra warning options
set_property(TARGET compiler PROPERTY warnings_as_errors -Werror)
set_property(TARGET asm PROPERTY warnings_as_errors -Werror -Wa,--fatal-warnings)

# Disable exceptions flag in C++
set_property(TARGET compiler-cpp PROPERTY no_exceptions "-fno-exceptions")

Loading