Skip to content

Proprietary toolchain support sustainability #63738

@fabiobaltieri

Description

@fabiobaltieri

Introduction

Problem description

Hi, I recently bumped into few compiler quirks:

  • the first priority check implementation broke ARCMWDT due to differences in section naming
  • the second implementation broke ARMClang due to missing symbols
  • the troubleshooting of the second implementation was slowed down because ARMClang support was already broken
  • a recent build time optimization added a warning in clang builds for pretty much anything but native_posix that turned out to be an llvm bug
  • we are now blocking a Kconfig option removal for unclear compiler limitations (may not be the case, but it adds to the point)

None of the above were detectable in CI. On paper the project supports a handful of different compilers, but in practice the only ones tested in CI are

Any breakage that does not hit any of these is going to go undetected and has to get caught manually by a reviewer or post-submit, potentially post-release, so it's regression and potential backport.

More importantly, many of those toolchains are proprietary, most developer have no access to them, so one has to rely on someone else to test their code, but at the same time there's not toolchain maintainers or a known list of point of contacts for validating changes against a specific toolchain.

Proposed change

  • Supported proprietary toolchains should have an area in the MAINTAINER file listing users who can test potentially breaking changes. Ideally there should be a way for Zephyr contributors to access proprietary toolchains for troubleshooting, or the support team should provide help in running the changes on the toolchain and providing build artifacts, or contributing fixes and workarounds directly.
  • Supported open source toolchains should have some level of testing in CI (Clang/LLVM beyond native_posix is what I'm thinking)

Metadata

Metadata

Labels

RFCRequest For Comments: want input from the communityarea: ToolchainsToolchains

Type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions