From ce8f8c9f1720582847a41a1c222c04c79925cd67 Mon Sep 17 00:00:00 2001 From: Torsten Rasmussen Date: Tue, 20 Apr 2021 13:55:43 +0200 Subject: [PATCH] armclang: adding toolchain/armclang.h header The armclang.h includes the toolchain/llvm.h header. Also it redifines the __GENERIC_SECTION and Z_GENERIC_SECTION so that they includes the `used` attribute which is needed by armlink. Signed-off-by: Torsten Rasmussen --- include/toolchain.h | 2 ++ include/toolchain/armclang.h | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 include/toolchain/armclang.h diff --git a/include/toolchain.h b/include/toolchain.h index efdb28ee7c5..f5f907a75f8 100644 --- a/include/toolchain.h +++ b/include/toolchain.h @@ -42,6 +42,8 @@ #include #elif defined(__CCAC__) #include +#elif defined(__ARMCOMPILER_VERSION) +#include #elif defined(__llvm__) #include #elif defined(__GNUC__) || (defined(_LINKER) && defined(__GCC_LINKER_CMD__)) diff --git a/include/toolchain/armclang.h b/include/toolchain/armclang.h new file mode 100644 index 00000000000..92e7a8de746 --- /dev/null +++ b/include/toolchain/armclang.h @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2021 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef ZEPHYR_INCLUDE_TOOLCHAIN_ARMCLANG_H_ +#define ZEPHYR_INCLUDE_TOOLCHAIN_ARMCLANG_H_ + + +#include + +/* + * To reuse as much as possible from the llvm.h header we only redefine the + * __GENERIC_SECTION and Z_GENERIC_SECTION macros here to include the `used` keyword. + */ +#undef __GENERIC_SECTION +#undef Z_GENERIC_SECTION + +#define __GENERIC_SECTION(segment) __attribute__((section(STRINGIFY(segment)), used)) +#define Z_GENERIC_SECTION(segment) __GENERIC_SECTION(segment) + +#endif /* ZEPHYR_INCLUDE_TOOLCHAIN_ARMCLANG_H_ */