libmetal/atomic: enable 64-bit atomic by toolchain builtin flags#301
libmetal/atomic: enable 64-bit atomic by toolchain builtin flags#301anchao wants to merge 1 commit intoOpenAMP:mainfrom
Conversation
|
This pull request has been marked as a stale pull request because it has been open (more than) 45 days with no activity. |
|
@ancho please tell us more about your compiler RTOS platform etc. We don't see this issue on other gcc based 32 bit platforms |
@wmamills @arnopo @xiaoxiang781216 ARM32 arch list: atomic 64 test code: Try all architectures: From the test results, you can see that only the variant containing the built-in macro |
|
Missing some information, here is my GCC compiler version: |
Fix compile error: arm-none-eabi-ld: (remoteproc_virtio.o): in function `metal_io_read': metal/io.h:252: undefined reference to `__atomic_load_8' arm-none-eabi-ld: (remoteproc_virtio.o): in function `metal_io_write': metal/io.h:290: undefined reference to `__atomic_store_8' Not all 32-bit architectures support 64bit atomic, gcc/clang toolchains have built-in properties to indicate whether support atomic64: | $ arm-none-eabi-gcc -march=armv7e-m -dM -E - < /dev/null | grep SYNC | #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 | #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 | #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 Signed-off-by: chao an <anchao@lixiang.com>
@arnopo Thanks for review, I have resent the pull request, please review again. |
|
This pull request has been marked as a stale pull request because it has been open (more than) 45 days with no activity. |
libmetal/atomic: enable 64-bit atomic by toolchain builtin flags
Fix compile error:
Not all 32-bit architectures support 64bit atomic, gcc/clang
toolchains have built-in properties to indicate whether support atomic64:
Signed-off-by: chao an anchao@lixiang.com