Zephyr Toolchain Working Group Meeting – 05 March 2020
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
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