patches/gcc/4.2.4/240-arm-bigendian.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Tue Jul 31 22:27:29 2012 +0200 (2012-07-31)
changeset 3018 7776e8369284
parent 687 b2b6b1d46aa1
permissions -rw-r--r--
complibs/cloog: create missing m4 dir

Because we now patch configure.in and configure, the Makefile quicks
in a re-build rule as the source files are now more recent than the
bundled generated files, and that fails because the m4 directory
is missing, although on some systems where aclocal is not installed,
the re-build rule does nothing (except a warning).

Always create tht directory.

Reported-by: Per Arnold Blaasmo <per-arnold.blaasmo@atmel.com>
[Also thanks to Thomas De Schampheleire <patrickdepinguin@gmail.com>
for some digging works on this issue]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
yann@687
     1
diff -durN gcc-4.2.1.orig/gcc/config/arm/linux-elf.h gcc-4.2.1/gcc/config/arm/linux-elf.h
yann@687
     2
--- gcc-4.2.1.orig/gcc/config/arm/linux-elf.h	2006-02-17 00:29:10.000000000 +0100
yann@687
     3
+++ gcc-4.2.1/gcc/config/arm/linux-elf.h	2007-08-03 20:36:43.000000000 +0200
yann@687
     4
@@ -28,19 +28,33 @@
yann@687
     5
 #undef  TARGET_VERSION
yann@687
     6
 #define TARGET_VERSION  fputs (" (ARM GNU/Linux with ELF)", stderr);
yann@687
     7
 
yann@687
     8
+/*
yann@687
     9
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
yann@687
    10
+ * (big endian) configurations.
yann@687
    11
+ */
yann@687
    12
+#if TARGET_BIG_ENDIAN_DEFAULT
yann@687
    13
+#define TARGET_ENDIAN_DEFAULT MASK_BIG_END
yann@687
    14
+#define TARGET_ENDIAN_OPTION "mbig-endian"
yann@687
    15
+#define TARGET_LINKER_EMULATION "armelfb_linux"
yann@687
    16
+#else
yann@687
    17
+#define TARGET_ENDIAN_DEFAULT 0
yann@687
    18
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
yann@687
    19
+#define TARGET_LINKER_EMULATION "armelf_linux"
yann@687
    20
+#endif
yann@687
    21
+
yann@687
    22
 #undef  TARGET_DEFAULT_FLOAT_ABI
yann@687
    23
 #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
yann@687
    24
 
yann@687
    25
 #undef  TARGET_DEFAULT
yann@687
    26
-#define TARGET_DEFAULT (0)
yann@687
    27
+#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT)
yann@687
    28
 
yann@687
    29
 #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
yann@687
    30
 
yann@687
    31
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
yann@687
    32
+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
yann@687
    33
 
yann@687
    34
 #undef  MULTILIB_DEFAULTS
yann@687
    35
 #define MULTILIB_DEFAULTS \
yann@687
    36
-	{ "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
yann@687
    37
+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" }
yann@687
    38
 
yann@687
    39
 /* Now we define the strings used to build the spec file.  */
yann@687
    40
 #undef  LIB_SPEC
yann@687
    41
@@ -61,7 +75,7 @@
yann@687
    42
    %{rdynamic:-export-dynamic} \
yann@687
    43
    %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "} \
yann@687
    44
    -X \
yann@687
    45
-   %{mbig-endian:-EB}" \
yann@687
    46
+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
yann@687
    47
    SUBTARGET_EXTRA_LINK_SPEC
yann@687
    48
 
yann@687
    49
 #undef  LINK_SPEC
yann@687
    50
diff -durN gcc-4.2.1.orig/gcc/config.gcc gcc-4.2.1/gcc/config.gcc
yann@687
    51
--- gcc-4.2.1.orig/gcc/config.gcc	2007-08-03 20:29:52.000000000 +0200
yann@687
    52
+++ gcc-4.2.1/gcc/config.gcc	2007-08-03 20:36:43.000000000 +0200
yann@687
    53
@@ -705,6 +705,11 @@
yann@687
    54
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
yann@687
    55
 	tmake_file="${tmake_file} t-linux arm/t-arm"
yann@687
    56
 	case ${target} in
yann@687
    57
+	arm*b-*)
yann@687
    58
+		tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
yann@687
    59
+		;;
yann@687
    60
+	esac
yann@687
    61
+	case ${target} in
yann@687
    62
 	arm*-*-linux-*eabi)
yann@687
    63
 	    tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
yann@687
    64
 	    tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"