arch/samd2l2:Ignore atomic warning when using clang compiler

When the toolchain does not support atomic, it will use the version implemented by NuttX (low performance version). This scenario is consistent with the original design, so we can ignore it.

see bug here:
https://bugs.llvm.org/show_bug.cgi?id=43603

Error: inode/fs_inodeaddref.c:50:7: error: large atomic operation may incur significant performance penalty; the access size (4 bytes) exceeds the max lock-free size (0  bytes) [-Werror,-Watomic-alignment]
   50 |       atomic_fetch_add(&inode->i_crefs, 1);
      |       ^
/tools/clang-arm-none-eabi/lib/clang/17/include/stdatomic.h:152:43: note: expanded from macro 'atomic_fetch_add'
  152 | #define atomic_fetch_add(object, operand) __c11_atomic_fetch_add(object, operand, __ATOMIC_SEQ_CST)
      |                                           ^
1 error generated.
make[1]: *** [Makefile:83: fs_inodeaddref.o] Error 1
Error: inode/fs_inodefind.c:74:7: error: large atomic operation may incur significant performance penalty; the access size (4 bytes) exceeds the max lock-free size (0  bytes) [-Werror,-Watomic-alignment]
   74 |       atomic_fetch_add(&node->i_crefs, 1);

Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
This commit is contained in:
chenrun1
2024-09-18 14:51:11 +08:00
committed by Xiang Xiao
parent 76e83a5424
commit ab4d72756e
2 changed files with 4 additions and 0 deletions
+2
View File
@@ -61,6 +61,8 @@ if(CONFIG_ARCH_TOOLCHAIN_CLANG)
# https://github.com/apache/incubator-nuttx/pull/5971
add_compile_options(-fno-builtin)
add_compile_options(-Wno-atomic-alignment)
add_compile_options(-Wno-atomic-alignment)
else()
set(TOOLCHAIN_PREFIX arm-none-eabi)
set(CMAKE_LIBRARY_ARCHITECTURE ${TOOLCHAIN_PREFIX})
+2
View File
@@ -324,6 +324,8 @@ endif
ifeq ($(CONFIG_ARCH_TOOLCHAIN_CLANG),y)
ARCHOPTIMIZATION += -fshort-enums
ARCHCFLAGS += -Wno-atomic-alignment
ARCHCXXFLAGS += -Wno-atomic-alignment
endif
# Architecture flags