Skip to content

Commit

Permalink
rtos: branch compiler_attributes.h for XTOS and Zephyr
Browse files Browse the repository at this point in the history
Introduce a separate file for Zephyr compiler_attributes.h and
move all Zephyr-specific definitions to this file. This is
a prerequisite to build with CONFIG_SOF_ZEPHYR_STRICT_HEADERS=y.

Link: #9015
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
  • Loading branch information
kv2019i committed Sep 18, 2024
1 parent 48193f8 commit fa243e2
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 14 deletions.
18 changes: 4 additions & 14 deletions xtos/include/sof/compiler_attributes.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,8 @@
* Author: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
*/

#ifdef __ZEPHYR__

#include <zephyr/toolchain.h>

/* Get __sparse_cache and __sparse_force definitions if __CHECKER__ is defined */
#include <zephyr/debug/sparse.h>

#else
#ifndef __SOF_COMPILER_ATTRIBUTES_H__
#define __SOF_COMPILER_ATTRIBUTES_H__

#define __sparse_cache
#define __sparse_force
Expand All @@ -25,8 +19,6 @@
#define __unused __attribute__((unused))
#endif

#endif

#ifndef __aligned
#define __aligned(x) __attribute__((__aligned__(x)))
#endif
Expand All @@ -44,11 +36,9 @@
*/
#if ((defined(__GNUC__) && (__GNUC__ >= 7)) || \
(defined(__clang__) && (__clang_major__ >= 10))) && !defined(__CHECKER__)

#define COMPILER_FALLTHROUGH __attribute__((fallthrough))

#else

#define COMPILER_FALLTHROUGH /* fallthrough */

#endif

#endif /* __SOF_COMPILER_ATTRIBUTES_H__ */
36 changes: 36 additions & 0 deletions zephyr/include/sof/compiler_attributes.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/* SPDX-License-Identifier: BSD-3-Clause
*
* Copyright(c) 2024 Intel Corporation.
*/

#ifndef __SOF_COMPILER_ATTRIBUTES_H__
#define __SOF_COMPILER_ATTRIBUTES_H__

#include <zephyr/toolchain.h>

/* Get __sparse_cache and __sparse_force definitions if __CHECKER__ is defined */
#include <zephyr/debug/sparse.h>

#ifndef __aligned
#define __aligned(x) __attribute__((__aligned__(x)))
#endif

#ifndef __section
#define __section(x) __attribute__((section(x)))
#endif

/* The fallthrough attribute is supported since GCC 7.0
* and Clang 10.0.0.
*
* Note that Clang sets __GNUC__ == 4 so the GCC version
* test will not be true here, and must go through
* the Clang version test.
*/
#if ((defined(__GNUC__) && (__GNUC__ >= 7)) || \
(defined(__clang__) && (__clang_major__ >= 10))) && !defined(__CHECKER__)
#define COMPILER_FALLTHROUGH __attribute__((fallthrough))
#else
#define COMPILER_FALLTHROUGH /* fallthrough */
#endif

#endif /* __SOF_COMPILER_ATTRIBUTES_H__ */

0 comments on commit fa243e2

Please sign in to comment.