Zephyr Toolchain Working Group Meeting – 2 April 2020

Rasmussen, Torsten



Today’s meeting minutes:




Status updates

  • Wayne: PR22668:
    • Metaware linker doesn’t have some primitives which are supported in gnu linker, ld.
    • Metaware doesn’t have same binutils, but GNU binutils can be used in this case
    • Compiling / linking / testing
      • Kernel space tests not big problem
      • Sections related operations not working, for example user space
      • Compiler supports most assembly primitives also used in GNU toolchain
    • Biggest challenges in linker
    • Some arcs (for example ARM) requires placement on word sized addresses
      This poses challenges on Metaware Linker
      (The Metaware compiler is llvm based, but the linker is not)
    • Work is still ongoing in relation to debug information / elf file.
    • Will re-base into latest Zephyr
  • Thomas: IAR: Get basic hello world compiling
    • Progressing, but slower than expected.
    • Able to compile
    • Issue discovered:
      • IAR only accepts a single pre-include, but CMake generates at least two in Zephyr.
        Looking into a workaround on this.
  • Torsten: Toolchain abstraction: Issue:#16031, Status
    • Have been building up detailed knowledge of current design.
      Have gotten knowledge from Sebastian Bøe. Have some ideas regarding improved design, which will also impact PR22668:
    • Has CMake Toolchain support in mind, for any change being made, to prepare for toolchain file support.
      • Note: Toolchain file support will require some consideration regarding flags controlled using Kconfig, but which users may define in toolchains file, examples: Optimization level, debug flags.
    • Feedback:
      • Reduced number of files that must be updated when adding additional toolchain.
      • If possible, provide some kind of template to make it easier to get started
  • LLVM: Draft PR Created by Kumar: https://github.com/zephyrproject-rtos/zephyr/pull/22981
    Zephyr CI has been updated to LLVM 10, but has not been tried
    LLVM can compile hellow_world, but could not run on some platforms (qemu).
    Believed to be caused by inline assembly.
    General suggestion to pull out common assembly related changes from toolchain PRs (#22668, #22981, others ?) into a common PR for assembly changes that benefit multiple toolchains.
  • Existing action points, not covered above:
    • Clean-up offset.h to make it easier to support more compilers: Nothing new
    • Exploration work on CI Toolchain test cases: Nothing new.
    • Everyone is still urged to give feedback on PR#22668 in areas that they know about.


Short term goals:

  • Toolchain test cases
    • Test cases should not be ordinary Zephyr tests

Could be completely different test system with focus on:

      • Optimization
      • Linker
      • archive
    • Should test features that is known to be used inside Zephyr
      • Determine what is most important to test / ensure support for.
    • Needs to work with any toolchain, also out-of-tree toolchains.




Best regards


Torsten T. Rasmussen



Join devel@lists.zephyrproject.org to automatically receive all group messages.