Linux debugging

Check our new training course

Linux debugging, tracing, profiling & perf. analysis

Check our new training course
with Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# Uniquely identify the toolchain wrt. it's capabilities.
# What we are looking for, is a signature definition that is defined
# like this:
#  * The MD5 sum of the compiler itself. A MD5 checksum is taken of the content
#    after symlinks are resolved. This ensure that if the content changes, then
#    the MD5 will also change (as example toolchain upgrade in same folder)
#  * The CMAKE_C_COMPILER itself. This may be a symlink, but it ensures that
#    multiple symlinks pointing to same executable will generate different
#    signatures, as example: clang, gcc, arm-zephyr-eabi-gcc, links pointing to
#    ccache will generate unique signatures
#  * CMAKE_C_COMPILER_ID is taking the CMake compiler id for extra signature.
#  * CMAKE_C_COMPILER_VERSION will ensure that even when using the previous
#    methods, where an upgraded compiler could have same signature due to ccache
#    usage and symbolic links, then the upgraded compiler will have new version
#    and thus generate a new signature.
#  Toolchains with the same signature will always support the same set of flags.

# Extend the CMAKE_C_COMPILER_MD5_SUM with the compiler signature.

# Custom targets for compiler and linker flags.

# Loading of templates are strictly not needed as they does not set any
# properties.
# They purely provides an overview as well as a starting point for supporting
# a new toolchain.

# Configure the toolchain flags based on what toolchain technology is used
# (gcc, host-gcc etc.)
include(${TOOLCHAIN_ROOT}/cmake/compiler/${COMPILER}/compiler_flags.cmake OPTIONAL)
include(${TOOLCHAIN_ROOT}/cmake/linker/${LINKER}/linker_flags.cmake OPTIONAL)