-
Notifications
You must be signed in to change notification settings - Fork 171
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
libmetal/atomic: enable 64-bit atomic by toolchain builtin flags #301
base: main
Are you sure you want to change the base?
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 <[email protected]>
@arnopo Thanks for review, I have resent the pull request, please review again. |
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 [email protected]