summaryrefslogtreecommitdiffstats
path: root/sys/conf
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2013-06-13 18:46:49 +0000
committered <ed@FreeBSD.org>2013-06-13 18:46:49 +0000
commit0e12ba8af551d77509a50b911efedf59dc7cd0f3 (patch)
tree4954d3fa071da269d992063e9f1da5ec73a6c44b /sys/conf
parent31754f3c181fb90c30132ff0cc1df6e95a0be9d9 (diff)
downloadFreeBSD-src-0e12ba8af551d77509a50b911efedf59dc7cd0f3.zip
FreeBSD-src-0e12ba8af551d77509a50b911efedf59dc7cd0f3.tar.gz
Add C11 atomic fallbacks for ARM.
Basically the situation is as follows: - When using Clang + armv6, we should not need any intrinsics. It should support it, even though due to a target misconfiguration it does not. We should fix this in Clang. - When using Clang + noarmv6, provide __atomic_* functions that disable interrupts. - When using GCC + armv6, we can provide __sync_* intrinsics, similar to what we did for MIPS. As ARM and MIPS are quite similar, simply base this implementation on the one I did for MIPS. - When using GCC + noarmv6, disable the interrupts, like we do for Clang. This implementation still lacks functions for noarmv6 userspace. To be done.
Diffstat (limited to 'sys/conf')
-rw-r--r--sys/conf/files.arm2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/conf/files.arm b/sys/conf/files.arm
index ade34e6..938386d 100644
--- a/sys/conf/files.arm
+++ b/sys/conf/files.arm
@@ -40,6 +40,8 @@ arm/arm/sc_machdep.c optional sc
arm/arm/setcpsr.S standard
arm/arm/setstack.s standard
arm/arm/stack_machdep.c optional ddb | stack
+arm/arm/stdatomic.c standard \
+ compile-with "${NORMAL_C:N-Wmissing-prototypes}"
arm/arm/support.S standard
arm/arm/swtch.S standard
arm/arm/sys_machdep.c standard
OpenPOWER on IntegriCloud