1
# DP: Set MULTILIB_DEFAULTS for ARM multilib builds
3
Index: b/src/gcc/config.gcc
4
===================================================================
5
--- a/src/gcc/config.gcc
6
+++ b/src/gcc/config.gcc
7
@@ -3249,10 +3249,18 @@
12
- | soft | hard | softfp)
17
+ tm_defines="${tm_defines} TARGET_CONFIGURED_FLOAT_ABI=0"
20
+ tm_defines="${tm_defines} TARGET_CONFIGURED_FLOAT_ABI=1"
23
+ tm_defines="${tm_defines} TARGET_CONFIGURED_FLOAT_ABI=2"
26
echo "Unknown floating point type used in --with-float=$with_float" 1>&2
32
+ if test "$with_mode" = thumb; then
33
+ tm_defines="${tm_defines} TARGET_CONFIGURED_THUMB_MODE=1"
37
echo "Unknown mode used in --with-mode=$with_mode"
38
Index: b/src/gcc/config/arm/linux-eabi.h
39
===================================================================
40
--- a/src/gcc/config/arm/linux-eabi.h
41
+++ b/src/gcc/config/arm/linux-eabi.h
43
target hardware. If you override this to use the hard-float ABI then
44
change the setting of GLIBC_DYNAMIC_LINKER_DEFAULT as well. */
45
#undef TARGET_DEFAULT_FLOAT_ABI
46
+#ifdef TARGET_CONFIGURED_FLOAT_ABI
47
+#if TARGET_CONFIGURED_FLOAT_ABI == 2
48
+#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
49
+#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=hard"
50
+#elif TARGET_CONFIGURED_FLOAT_ABI == 1
51
+#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFTFP
52
+#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=softfp"
54
+#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
55
+#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=soft"
58
#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
59
+#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=soft"
62
/* We default to the "aapcs-linux" ABI so that enums are int-sized by
65
%{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
66
%{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
68
+/* Set the multilib defaults according the configuration, needed to
69
+ let gcc -print-multi-dir do the right thing. */
71
+#if TARGET_BIG_ENDIAN_DEFAULT
72
+#define MULTILIB_DEFAULT_ENDIAN "mbig-endian"
74
+#define MULTILIB_DEFAULT_ENDIAN "mlittle-endian"
77
+#ifndef TARGET_CONFIGURED_THUMB_MODE
78
+#define MULTILIB_DEFAULT_MODE "marm"
79
+#elif TARGET_CONFIGURED_THUMB_MODE == 1
80
+#define MULTILIB_DEFAULT_MODE "mthumb"
82
+#define MULTILIB_DEFAULT_MODE "marm"
85
+#undef MULTILIB_DEFAULTS
86
+#define MULTILIB_DEFAULTS \
87
+ { MULTILIB_DEFAULT_MODE, MULTILIB_DEFAULT_ENDIAN, \
88
+ MULTILIB_DEFAULT_FLOAT_ABI, "mno-thumb-interwork" }
90
/* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
91
use the GNU/Linux version, not the generic BPABI version. */