Topics

Zephyr Toolchain Working Group Meeting – 2 April 2020


Rasmussen, Torsten
 

Hi,

 

For today’s meeting let’s follow up on last meeting action items and get a status update.

 

Where:
https://zoom.us/j/967549258

 

 

 

Agenda

  • Updates:
    • Wayne: PR22668: Anything new ?
    • Thomas: IAR: Get basic hello world compiling, (linking with GCC) : Status ?
    • Torsten: Toolchain abstraction: Issue:#16031, Status

 

  • AP: Last meeting:
    • Clean-up offset.h to make it easier to support more compilers
    • Exploration work on CI Toolchain test cases: Wayne
    • Everyone: Give feedback on PR#22688, and issue: #5517: Status ?
    • Toolchain abstraction: Issue:#16031, look at current work, and explore possibilities of improvements: Torsten.

 

  • Short term goals, way forward
    • Dedicated toolchain test cases.
      •  
    • Label PR for automatic execution of CI Toolchain test cases

 

          

 

Feel free to send a mail, if you would like additional topics to be discussed.

 

Best regards

 

Torsten T. Rasmussen           

 

Live meeting minutes: https://docs.google.com/document/d/1IQKBK-GcJNZG0O9QArqYfvb6Huk5xHscN-XIGEZr-z8/edit#heading=h.x36xe8bnwr9r

 

           

 

 


Rasmussen, Torsten
 

Hi,

 

Today’s meeting minutes:

https://docs.google.com/document/d/1IQKBK-GcJNZG0O9QArqYfvb6Huk5xHscN-XIGEZr-z8/

 

Notes/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