diff --git a/configure/os/CONFIG.Common.linux-arm b/configure/os/CONFIG.Common.linux-arm
index 15dad9e9e86071e499b1965e2a0471340148ab49..7ccb1bbad01ca3d6897f01499521c2b6d6b27654 100644
--- a/configure/os/CONFIG.Common.linux-arm
+++ b/configure/os/CONFIG.Common.linux-arm
@@ -17,7 +17,7 @@ ifeq ($(BUILD_CLASS),CROSS)
 
     # prefix of compiler tools
     CMPLR_SUFFIX =
-    CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET))
+    CMPLR_PREFIX = $(GNU_TARGET)-
 
     # Provide a link-time path for shared libraries
     SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath-link,%)
diff --git a/configure/os/CONFIG.linux-arm.Common b/configure/os/CONFIG.linux-arm.Common
new file mode 100644
index 0000000000000000000000000000000000000000..788f594d73806eba1124b7061a750c6a34604c12
--- /dev/null
+++ b/configure/os/CONFIG.linux-arm.Common
@@ -0,0 +1,10 @@
+# CONFIG.linux-arm.Common
+#
+# $Revision-Id$
+#
+# Definitions for linux-arm host builds
+# Sites may override these definitions in CONFIG_SITE.linux-arm.Common
+#-------------------------------------------------------
+
+#Include definitions common to unix hosts
+include $(CONFIG)/os/CONFIG.UnixCommon.Common
diff --git a/configure/os/CONFIG.linux-arm.linux-arm b/configure/os/CONFIG.linux-arm.linux-arm
new file mode 100644
index 0000000000000000000000000000000000000000..e52660f144d819638a47ed524c3def8205064d59
--- /dev/null
+++ b/configure/os/CONFIG.linux-arm.linux-arm
@@ -0,0 +1,10 @@
+# CONFIG.linux-arm.linux-arm
+#
+# $Revision-Id$
+#
+# Definitions for native linux-arm builds
+# Sites may override these definitions in CONFIG_SITE.linux-arm.linux-arm
+#-------------------------------------------------------
+
+# Include common gnu compiler definitions
+include $(CONFIG)/CONFIG.gnuCommon
diff --git a/configure/os/CONFIG_SITE.linux-arm.linux-arm b/configure/os/CONFIG_SITE.linux-arm.linux-arm
new file mode 100644
index 0000000000000000000000000000000000000000..a8cc0ff9f0c4eb91671b45936e09505e177a8f7e
--- /dev/null
+++ b/configure/os/CONFIG_SITE.linux-arm.linux-arm
@@ -0,0 +1,7 @@
+#  CONFIG_SITE.linux-arm.linux-arm
+#
+# $Revision-Id$
+#
+# Site specific definitions for native linux-arm builds
+#-------------------------------------------------------
+
diff --git a/configure/os/CONFIG_SITE.linux-x86.linux-arm b/configure/os/CONFIG_SITE.linux-x86.linux-arm
index 726d38578ac680bb847c7664002eba0515963a7f..f27a6a0cd03d1434cabee439b7e7d9c2846f623d 100644
--- a/configure/os/CONFIG_SITE.linux-x86.linux-arm
+++ b/configure/os/CONFIG_SITE.linux-x86.linux-arm
@@ -5,8 +5,10 @@
 # Site specific definitions for linux-x86 host - linux-arm target builds
 #-------------------------------------------------------
 
-# Diamond:
+# Tools install path
 #GNU_DIR = /home/targetOS/linux-arm/host/x86-linux/gcc_3.3.3
 
-# anj@aps:
-#GNU_DIR = /local/anj/cross-arm/gcc-3.4.5-glibc-2.3.6/arm-linux
+GNU_DIR = /net/phoebus/vw/zynq-2011.09
+
+# GNU crosscompiler target name
+GNU_TARGET = arm-xilinx-linux-gnueabi
diff --git a/src/tools/mkmf.pl b/src/tools/mkmf.pl
old mode 100755
new mode 100644
diff --git a/startup/EpicsHostArch b/startup/EpicsHostArch
index 6b102b9b913cdaff16f3bd1a7dd08e9c027306ca..8861ac56c9a5e1e3849f50f8fc785160c4e7a559 100755
--- a/startup/EpicsHostArch
+++ b/startup/EpicsHostArch
@@ -24,21 +24,24 @@ case $sysname in
     Linux )
         os=linux
         cpu=`uname -m`
-        case $cpu in i386 | i486 | i586 | i686 )
-            cpu=x86
-            ;;
+        case $cpu in
+            i386 | i486 | i586 | i686 )
+                cpu=x86 ;;
+            x86_64 )
+                ;; # $cpu is correct
+            armv6l | armv7l )
+                cpu=arm ;;
         esac
-        if [ ${cpu} = "x86_64" ]; then
-            cpu=x86_64
-        fi
         echo ${os}-${cpu}${suffix}
         ;;
     Darwin )
         os=darwin
         cpu=`uname -m`
         case $cpu in
-            "Power Macintosh") cpu=ppc ;;
-            i386 | x86_64 ) cpu=x86 ;;
+            "Power Macintosh")
+                cpu=ppc ;;
+            i386 | x86_64 )
+                cpu=x86 ;;
         esac
         echo ${os}-${cpu}${suffix}
         ;;
diff --git a/startup/EpicsHostArch.pl b/startup/EpicsHostArch.pl
index 7fb5747c8b54091d9826cbc3452e6c54cc4ad9fd..1c4a96dcb76311197c58fd727548b340ad84cd5b 100755
--- a/startup/EpicsHostArch.pl
+++ b/startup/EpicsHostArch.pl
@@ -24,10 +24,11 @@ print "$EpicsHostArch$suffix";
 
 sub GetEpicsHostArch { # no args
     $arch=$Config{'archname'};
-    if ($arch =~ /sun4-solaris/)       { return "solaris-sparc";
+    if ($arch =~ /sun4-solaris/)        { return "solaris-sparc";
     } elsif ($arch =~ m/i86pc-solaris/) { return "solaris-x86";
-    } elsif ($arch =~ m/i[3-6]86-linux/)    { return "linux-x86";
-    } elsif ($arch =~ m/x86_64-linux/)    { return "linux-x86_64";
+    } elsif ($arch =~ m/i[3-6]86-linux/){ return "linux-x86";
+    } elsif ($arch =~ m/x86_64-linux/)  { return "linux-x86_64";
+    } elsif ($arch =~ m/arm-linux/)     { return "linux-arm";
     } elsif ($arch =~ m/MSWin32-x86/)   { return "win32-x86";
     } elsif ($arch =~ m/cygwin/)        { return "cygwin-x86";
     } elsif ($arch =~ m/darwin/)        {