The attached patch adds the appropriate configure/os files to support the
ARM EABI architecture. The new target is called linux-arm_gnueabi (sorry
about the clunky name).
The ARM EABI is a newer ABI (Application Binary Interfac), I think the E
stands for Embedded. The principal advantage of the ARM EABI is that it
supports soft floating point: for an embedded system this can make a huge
difference (unless you've already taken a lot of care to avoid using
floating point in the first case -- a little tricky in the case of
EPICS...)
This architecture is nearly identical to the original linux-arm (old ABI)
architecture, with the following differences:
- different name (of course)
- different compiler. Here I've named the compiler
arm-xscale-linux-gnueabi
but any arm-*-linux-gnueabi prefix should serve.
- different floating point format: another advantage of EABI is that
(emulated) floating point numbers are in proper IEEE-754 format.
To build an ARM EABI toolchain I recommend crosstool-ng, which can be
downloaded from
http://ymorin.is-a-geek.org/dokuwiki/projects/crosstool
If you select the arm-unknown-linux-gnueabi sample, you'll get an NPTL
compatible C library as well, which on an ARM v5 (eg, XScale) I strongly
recommend. diff -urN base-3.14.9-original/configure/os/CONFIG.Common.linux-arm_gnueabi base-3.14.9/configure/os/CONFIG.Common.linux-arm_gnueabi
--- base-3.14.9-original/configure/os/CONFIG.Common.linux-arm_gnueabi 1970-01-01 01:00:00.000000000 +0100
+++ base-3.14.9/configure/os/CONFIG.Common.linux-arm_gnueabi 2009-02-13 09:29:38.000000000 +0000
@@ -0,0 +1,26 @@
+# CONFIG.Common.linux-arm_gnueabi
+#
+# This file is maintained by the build community.
+#
+# Definitions for linux-arm_gnueabi target builds
+# Sites may override these definitions in CONFIG_SITE.Common.linux-arm_gnueabi
+#-------------------------------------------------------
+
+# Include definitions common to all Linux targets
+include $(CONFIG)/os/CONFIG.Common.linuxCommon
+
+ARCH_CLASS = arm
+
+ifeq ($(BUILD_CLASS),CROSS)
+ GNU_TARGET = arm-xscale-linux-gnueabi
+
+ # prefix of compiler tools
+ CMPLR_SUFFIX =
+ CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET))
+
+ # Provide a link-time path for shared libraries
+ SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath-link,%)
+
+ # Provide a link-time path for products
+ PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath-link,%)
+endif
diff -urN base-3.14.9-original/configure/os/CONFIG.linux-x86.linux-arm_gnueabi base-3.14.9/configure/os/CONFIG.linux-x86.linux-arm_gnueabi
--- base-3.14.9-original/configure/os/CONFIG.linux-x86.linux-arm_gnueabi 1970-01-01 01:00:00.000000000 +0100
+++ base-3.14.9/configure/os/CONFIG.linux-x86.linux-arm_gnueabi 2009-02-13 09:29:38.000000000 +0000
@@ -0,0 +1,24 @@
+# CONFIG.linux-x86.linux-arm_gnueabi
+#
+# Definitions for linux-x86 host - linux-arm_gnueabi target builds
+# Sites may override these definitions in CONFIG_SITE.linux-x86.linux-arm_gnueabi
+#-------------------------------------------------------
+
+# Include common gnu compiler definitions
+include $(CONFIG)/CONFIG.gnuCommon
+
+GNU_DIR = /usr
+
+# CROSS_CPPFLAGS=
+# STATIC_BUILD=YES
+# SHARED_LIBRARIES=NO
+
+# Copied from x86.x86
+STATIC_LDFLAGS_YES= -Wl,-Bstatic
+STATIC_LDFLAGS_NO=
+STATIC_LDLIBS_YES= -Wl,-Bdynamic
+STATIC_LDLIBS_NO=
+
+SHRLIB_LDFLAGS += -shared -fPIC
+LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC
+
diff -urN base-3.14.9-original/configure/os/CONFIG_SITE.linux-x86.linux-arm_gnueabi base-3.14.9/configure/os/CONFIG_SITE.linux-x86.linux-arm_gnueabi
--- base-3.14.9-original/configure/os/CONFIG_SITE.linux-x86.linux-arm_gnueabi 1970-01-01 01:00:00.000000000 +0100
+++ base-3.14.9/configure/os/CONFIG_SITE.linux-x86.linux-arm_gnueabi 2009-02-13 09:32:16.000000000 +0000
@@ -0,0 +1,10 @@
+# CONFIG_SITE.linux-x86.linux-arm_gnueabi
+#
+# Site specific definitions for linux-x86 host - linux-arm target builds
+#-------------------------------------------------------
+
+# Diamond:
+GNU_DIR = /dls_sw/targetOS/x-tools/gcc-4.3.2-glibc-2.7/arm-xscale-linux-gnueabi
+
+# anj@aps:
+#GNU_DIR = /local/anj/cross-arm/gcc-3.4.5-glibc-2.3.6/arm-linux
- Navigate by Date:
- Prev:
First turn Orbit find using DBPM or other measurement technique Kiman Ha
- Next:
cap5 Perl library GOURNAY Jean-Francois
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
<2009>
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
First turn Orbit find using DBPM or other measurement technique Kiman Ha
- Next:
cap5 Perl library GOURNAY Jean-Francois
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
<2009>
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|