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: Nikolay Agishev <agishev@synopsys.com>
This commit is contained in:
parent
a28dba2503
commit
0dec4cf927
10 changed files with 40 additions and 8 deletions
|
@ -156,6 +156,13 @@ endif()
|
||||||
zephyr_compile_options($<$<COMPILE_LANGUAGE:C>:$<TARGET_PROPERTY:compiler,no_strict_aliasing>>)
|
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>>)
|
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
|
# @Intent: Set compiler flags to enable buffer overflow checks in libc functions
|
||||||
# @details:
|
# @details:
|
||||||
# Kconfig.zephyr "Detect buffer overflows in libc calls" is a kconfig choice,
|
# Kconfig.zephyr "Detect buffer overflows in libc calls" is a kconfig choice,
|
||||||
|
|
|
@ -360,9 +360,13 @@ config NO_OPTIMIZATIONS
|
||||||
help
|
help
|
||||||
Compiler optimizations will be set to -O0 independently of other
|
Compiler optimizations will be set to -O0 independently of other
|
||||||
options.
|
options.
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
config COMPILER_WARNINGS_AS_ERRORS
|
||||||
|
bool "Treat warnings as errors"
|
||||||
|
help
|
||||||
|
Turn on "warning as error" toolchain flags
|
||||||
|
|
||||||
config COMPILER_COLOR_DIAGNOSTICS
|
config COMPILER_COLOR_DIAGNOSTICS
|
||||||
bool "Colored diagnostics"
|
bool "Colored diagnostics"
|
||||||
default y
|
default y
|
||||||
|
|
|
@ -134,6 +134,10 @@ set_property(TARGET compiler-cpp PROPERTY dialect_cpp2b "")
|
||||||
# Flag for disabling strict aliasing rule in C and C++
|
# Flag for disabling strict aliasing rule in C and C++
|
||||||
set_compiler_property(PROPERTY no_strict_aliasing -fno-strict-aliasing)
|
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++
|
# Disable exceptions flag in C++
|
||||||
set_property(TARGET compiler-cpp PROPERTY no_exceptions "-fno-exceptions")
|
set_property(TARGET compiler-cpp PROPERTY no_exceptions "-fno-exceptions")
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,10 @@ set_property(TARGET compiler-cpp PROPERTY dialect_cpp2b)
|
||||||
# Flag for disabling strict aliasing rule in C and C++
|
# Flag for disabling strict aliasing rule in C and C++
|
||||||
set_compiler_property(PROPERTY no_strict_aliasing)
|
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++
|
# Flag for disabling exceptions in C++
|
||||||
set_property(TARGET compiler-cpp PROPERTY no_exceptions)
|
set_property(TARGET compiler-cpp PROPERTY no_exceptions)
|
||||||
|
|
||||||
|
|
|
@ -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++
|
# Flag for disabling strict aliasing rule in C and C++
|
||||||
set_compiler_property(PROPERTY no_strict_aliasing -fno-strict-aliasing)
|
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++
|
# Disable exceptions flag in C++
|
||||||
set_property(TARGET compiler-cpp PROPERTY no_exceptions "-fno-exceptions")
|
set_property(TARGET compiler-cpp PROPERTY no_exceptions "-fno-exceptions")
|
||||||
|
|
||||||
|
|
4
cmake/linker/arcmwdt/linker_flags.cmake
Normal file
4
cmake/linker/arcmwdt/linker_flags.cmake
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
# Extra warnings options for twister run
|
||||||
|
set_property(TARGET linker PROPERTY warnings_as_errors -Wl,--fatal-warnings)
|
|
@ -2,3 +2,6 @@
|
||||||
if (NOT CONFIG_COVERAGE_GCOV)
|
if (NOT CONFIG_COVERAGE_GCOV)
|
||||||
set_property(TARGET linker PROPERTY coverage --coverage)
|
set_property(TARGET linker PROPERTY coverage --coverage)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Extra warnings options for twister run
|
||||||
|
set_property(TARGET linker PROPERTY ld_extra_warning_options -Wl,--fatal-warnings)
|
||||||
|
|
|
@ -12,3 +12,6 @@ check_set_linker_property(TARGET linker APPEND PROPERTY gprof -pg)
|
||||||
# GCC 11 by default emits DWARF version 5 which cannot be parsed by
|
# GCC 11 by default emits DWARF version 5 which cannot be parsed by
|
||||||
# pyelftools. Can be removed once pyelftools supports v5.
|
# pyelftools. Can be removed once pyelftools supports v5.
|
||||||
add_link_options(-gdwarf-4)
|
add_link_options(-gdwarf-4)
|
||||||
|
|
||||||
|
# Extra warnings options for twister run
|
||||||
|
set_property(TARGET linker PROPERTY warnings_as_errors -Wl,--fatal-warnings)
|
||||||
|
|
|
@ -9,3 +9,6 @@ set_property(TARGET linker PROPERTY coverage)
|
||||||
# If memory reporting is a post build command, please use
|
# If memory reporting is a post build command, please use
|
||||||
# cmake/bintools/bintools.cmake instead.
|
# cmake/bintools/bintools.cmake instead.
|
||||||
check_set_linker_property(TARGET linker PROPERTY memusage)
|
check_set_linker_property(TARGET linker PROPERTY memusage)
|
||||||
|
|
||||||
|
# Extra warnings options for twister run
|
||||||
|
set_property(TARGET linker PROPERTY warnings_as_errors)
|
||||||
|
|
|
@ -289,21 +289,17 @@ class CMake:
|
||||||
def run_cmake(self, args=""):
|
def run_cmake(self, args=""):
|
||||||
|
|
||||||
if not self.options.disable_warnings_as_errors:
|
if not self.options.disable_warnings_as_errors:
|
||||||
ldflags = "-Wl,--fatal-warnings"
|
warnings_as_errors = 'y'
|
||||||
cflags = "-Werror"
|
|
||||||
aflags = "-Werror -Wa,--fatal-warnings"
|
|
||||||
gen_defines_args = "--edtlib-Werror"
|
gen_defines_args = "--edtlib-Werror"
|
||||||
else:
|
else:
|
||||||
ldflags = cflags = aflags = ""
|
warnings_as_errors = 'n'
|
||||||
gen_defines_args = ""
|
gen_defines_args = ""
|
||||||
|
|
||||||
logger.debug("Running cmake on %s for %s" % (self.source_dir, self.platform.name))
|
logger.debug("Running cmake on %s for %s" % (self.source_dir, self.platform.name))
|
||||||
cmake_args = [
|
cmake_args = [
|
||||||
f'-B{self.build_dir}',
|
f'-B{self.build_dir}',
|
||||||
f'-DTC_RUNID={self.instance.run_id}',
|
f'-DTC_RUNID={self.instance.run_id}',
|
||||||
f'-DEXTRA_CFLAGS={cflags}',
|
f'-DCONFIG_COMPILER_WARNINGS_AS_ERRORS={warnings_as_errors}',
|
||||||
f'-DEXTRA_AFLAGS={aflags}',
|
|
||||||
f'-DEXTRA_LDFLAGS={ldflags}',
|
|
||||||
f'-DEXTRA_GEN_DEFINES_ARGS={gen_defines_args}',
|
f'-DEXTRA_GEN_DEFINES_ARGS={gen_defines_args}',
|
||||||
f'-G{self.env.generator}'
|
f'-G{self.env.generator}'
|
||||||
]
|
]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue