summaryrefslogtreecommitdiff
path: root/patches/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'patches/gcc')
-rw-r--r--patches/gcc/4.2.4/241-arm-bigendian2.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/patches/gcc/4.2.4/241-arm-bigendian2.patch b/patches/gcc/4.2.4/241-arm-bigendian2.patch
new file mode 100644
index 0000000..9b9c131
--- /dev/null
+++ b/patches/gcc/4.2.4/241-arm-bigendian2.patch
@@ -0,0 +1,33 @@
+Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org> wrote:
+
+I tried to use crosstool-ng to generate a toolchain for Linux on big
+endian arm with recent versions of gcc, glibc, etc... but had a few
+problems.
+
+It appears that the gcc patch (for gcc 4.2.x)
+for big-endian arm (240-arm-bigendian.patch) lacks the change attached
+to this mail as 240-arm-bigendian2.patch.
+
+--- gcc-4.2.4/gcc/config/arm/bpabi.h~ 2007-09-01 17:28:30.000000000 +0200
++++ gcc-4.2.4/gcc/config/arm/bpabi.h 2009-01-05 19:19:10.000000000 +0100
+@@ -32,9 +32,19 @@
+ #undef FPUTYPE_DEFAULT
+ #define FPUTYPE_DEFAULT FPUTYPE_VFP
+
++/*
++ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
++ * (big endian) configurations.
++ */
++#if TARGET_BIG_ENDIAN_DEFAULT
++#define TARGET_ENDIAN_DEFAULT MASK_BIG_END
++#else
++#define TARGET_ENDIAN_DEFAULT 0
++#endif
++
+ /* EABI targets should enable interworking by default. */
+ #undef TARGET_DEFAULT
+-#define TARGET_DEFAULT MASK_INTERWORK
++#define TARGET_DEFAULT (MASK_INTERWORK | TARGET_ENDIAN_DEFAULT)
+
+ /* The ARM BPABI functions return a boolean; they use no special
+ calling convention. */