Zephyr Toolchain Working Group Meeting – 05 March 2020


Rasmussen, Torsten
 

Hi All,

 

 

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

Also I think we should consider the short / long term goals of this WG and who has the skills / capacity to do what.

 

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

Agenda

  • Action items from last meeting:
    • Wayne: PR22668: Continue work, and use as base for better toolchain abstraction: Status ?
    • Thomas: IAR: Get basic hello world compiling, (linking with GCC) : Status ?
    • Everyone: Give feedback on PR#22688, and issue: #5517: Status ?
  • Toolchain WG Goals

Also some feedback has been given by Marc since last meeting:

  • More reliable than code reviews, I found that gcc/clang -std=cXX -pedantic seem to work great for standard compliance. In our internal project I configured an extra build configuration with -pedantic on the side, we use it like "checkpatch" and others.

Note: Should be coupled with only checking new / modified files in a PR.

 

 

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

  • Status update from Wayne regarding PR#22668
    • Status and work done / challenges / improvements are well described in the PR https://github.com/zephyrproject-rtos/zephyr/pull/22668
    • Main points are
      • Improve documentation in Zephyr on how to pass first compiler check in CMake
      • What compile optimization are mandatory and which are optional
      • Why are certain gcc extensions used

Would be nice to know the reason / get explanation

    • Linker:
      • Linker primitives not supported in MWDT

 

  • Status update from Thomas regarding IAR: Nothing new. regarding PR#22668

 

General discussion regarding toolchain support

  • CI support for commercial / other toolchains
    • For Metaware, CI would need the toolchain install and thus Zephyr community needs a license
      • A practice must be established with regards to commercial toolchain licenses which also satisfies vendor requirements
    • It will not be practical to run CI with all commercial toolchains supported.
    • Vendor of toolchain must be responsible for testing samples with the toolchain
    • Dedicate CI to run PR touching toolchain / manually run
    • Zephyr community should create a dedicated toolchain test that can verify basic toolchain functionality is working
    • Toolchain oriented test cases
  • IAR open to contribute static analysis tools, C-STAT to Zephyr
    • This is part of IAR compiler when having correct license

 

  • Linker Meta-language / templating
    • Find inspiration in how mbed / TF-M / cmsis does linking template.
    • TF-M has support for: IAR, clang, gcc (Requires vendor specific templates)
    • Mbed has support for three compiler: IAR, Arm compiler 6 (LLVM), gcc
    • Work must be expected in Zephyr regarding special gnu linker flags, as example: --whole-archive
    • Offset calculation may be confusing to some compilers, see action point.
    • The way gperf is used inZephyr linking stages is very hard to do in other linkers.

 

  • Short term goals:
    • Dedicated toolchain test cases, 
      • DTS
      • Kconfig
      • Linker
    • Label PR for automatic execution of CI Toolchain test cases
  • Long term goal
    • Meta language for Zephyr linking or templating system

 

Actions

  • Clean-up offset.h to make it easier to support more compilers
  • Exploration work on CI Toolchian test cases: Wayne
  • Everyone: Give feedback on PR#22688, and issue: #5517: Status ?

 

Best regards

 

Torsten Tejlmand Rasmussen