Skip to content

Checklist: Transition to C17 as the minimum required C standard version #97061

@carlescufi

Description

@carlescufi

Summary

This task tracks the transition from C99 to C17 as the minimum required C standard version in order to compile Zephyr applications. This started originally as an RFC in #30105.

The TSC discussed this on the 30th of April 2025, the minutes can be found here.
An email was then sent out to the devel mailing list.

Checklist

Toolchains

The following toolchains have been checked to verify if they provide complete or near-complete C17 support:

  • ✅ GCC (See C language)
  • ✅ Clang/LLVM (See C Support in Clang)
  • ✅ IAR (See this comment)
  • ✅ Arm Toolchain for Embedded (based on Clang/LLVM, see releases)
  • ✅ Synopsys Metaware (MWDT, based on Clang/LLVM)
  • ❌ Cadence 2017 (based on GCC 4.4.x)
  • ✅ Cadence 2022 (based on Clang/LLVM 10.x)

C standard libraries

  • ✅ Minimal libc (compiles, but doesn't offer the features)
  • ✅ Picolibc (confirmed by maintainer @keith-packard)
  • newlib ?

Pull Request

The PR that transitions to C17 by default is #97076

Metadata

Metadata

Type

Projects

Status

4.4

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions