Blob Blame History Raw
diff --git a/runtime/basis/Word/Word.c b/runtime/basis/Word/Word.c
index 39f6d05..651c426 100644
--- a/runtime/basis/Word/Word.c
+++ b/runtime/basis/Word/Word.c
@@ -24,7 +24,7 @@
  * implements / and %.
  */
 
-#if ! (defined (__amd64__) || defined (__hppa__) || defined (__i386__) || defined(__ia64__)|| defined (__ppc__) || defined (__powerpc__) || defined (__sparc__))
+#if ! (defined (__amd64__) || defined (__hppa__) || defined (__i386__) || defined(__ia64__)|| defined (__ppc__) || defined (__powerpc__) || defined (__sparc__) || defined (__arm__))
 #error check that C {/,%} correctly implement {quot,rem} from the basis library
 #endif
 
diff --git a/runtime/platform/linux.c b/runtime/platform/linux.c
index 3177ed1..fecf168 100644
--- a/runtime/platform/linux.c
+++ b/runtime/platform/linux.c
@@ -17,7 +17,6 @@
 
 /* potentially correct for other archs:
  *  alpha: ucp->m_context.sc_pc
- *  arm: ucp->m_context.ctx.arm_pc
  *  ia64: ucp->m_context.sc_ip & ~0x3UL
  *  mips: ucp->m_context.sc_pc
  *  s390: ucp->m_context.sregs->regs.psw.addr
@@ -48,6 +47,9 @@ static void catcher (__attribute__ ((unused)) int sig,
 #elif (defined (__i386__))
         ucontext_t* ucp = (ucontext_t*)mystery;
         GC_handleSigProf ((code_pointer) ucp->uc_mcontext.gregs[EIP]);
+#elif (defined (__arm__))
+        ucontext_t* ucp = (ucontext_t*)mystery;
+        GC_handleSigProf ((code_pointer) ucp->uc_mcontext.arm_pc);
 #else
 #error Profiling handler is missing for this architecture
 #endif