]> granicus.if.org Git - esp-idf/commit
spi_master: compile as C11 due to use of stdatomic.h
authorIvan Grokhotkov <ivan@espressif.com>
Fri, 8 Mar 2019 06:57:00 +0000 (14:57 +0800)
committerIvan Grokhotkov <ivan@espressif.com>
Wed, 10 Apr 2019 05:48:57 +0000 (13:48 +0800)
commit7027d2dfe8b071821e0dbf1e277cfa10b383f82b
treea23bb841adecd19fcd6436b1c4253de2b622b560
parentc064e008424d6f87cc78ca93ed572d4b2ba346d9
spi_master: compile as C11 due to use of stdatomic.h

stdatomic.h is available both in newlib and GCC include directories.
Normally (if you invoke the compiler without any flags) GCC include
directories are first on the list, so GCC’s stdatomic.h is used. In
IDF, we used to pass newlib include path as an extra include
directory, so newlib’s stdint.h got included instead.

Newlib 2.2.0 stdatomic implementation is compatible with -std=gnu99
but incompatible with -std=gnu11. And GCC doesn’t support atomic_load
with -std=gnu99 (it’s a C11 feature). So when we used atomic_load
with -std=gnu99, it worked due to newlib’s header.

Since we are no longer going to be including newlib headers into IDF,
GCC stdatomic will be used instead. Hence, add -std=gnu11 for source
files which use atomic features.
components/driver/CMakeLists.txt
components/driver/component.mk