summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Sommer <summerspam@web.de>2015-08-01 05:43:12 -0500
committerJoel Sherrill <joel.sherrill@oarcorp.com>2015-08-01 10:20:18 -0700
commit1cf91e0b0a6e93a5344a9b4fc6c09f44ff95d1e2 (patch)
tree8fc850f452bcfe4703752553bae330b4e30aeae0
parentampolish3: Use env to find perl more reliably (diff)
downloadrtems-1cf91e0b0a6e93a5344a9b4fc6c09f44ff95d1e2.tar.bz2
Add __synch_synchronize function for arm
Fixes link failure when linking Ada programs on the raspberry pi
-rw-r--r--cpukit/score/cpu/arm/Makefile.am1
-rw-r--r--cpukit/score/cpu/arm/armv4-sync-synchronize.c9
2 files changed, 10 insertions, 0 deletions
diff --git a/cpukit/score/cpu/arm/Makefile.am b/cpukit/score/cpu/arm/Makefile.am
index c051a4894f..4b242f0fa4 100644
--- a/cpukit/score/cpu/arm/Makefile.am
+++ b/cpukit/score/cpu/arm/Makefile.am
@@ -27,6 +27,7 @@ libscorecpu_a_SOURCES += arm_exc_handler_high.c
libscorecpu_a_SOURCES += arm-exception-frame-print.c
libscorecpu_a_SOURCES += arm-exception-default.c
libscorecpu_a_SOURCES += armv4-exception-default.S
+libscorecpu_a_SOURCES += armv4-sync-synchronize.c
libscorecpu_a_SOURCES += armv7-thread-idle.c
libscorecpu_a_SOURCES += armv7m-context-initialize.c
libscorecpu_a_SOURCES += armv7m-context-restore.c
diff --git a/cpukit/score/cpu/arm/armv4-sync-synchronize.c b/cpukit/score/cpu/arm/armv4-sync-synchronize.c
new file mode 100644
index 0000000000..6fcac05684
--- /dev/null
+++ b/cpukit/score/cpu/arm/armv4-sync-synchronize.c
@@ -0,0 +1,9 @@
+void
+__sync_synchronize (void)
+{
+#ifdef ARM_MULTILIB_HAS_BARRIER_INSTRUCTIONS
+ asm volatile("dmb" : : : "memory");
+#else
+ asm volatile("" : : : "memory");
+#endif
+} \ No newline at end of file