aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1997-01-16 10:39:45 -0800
committerJim Wilson <wilson@gcc.gnu.org>1997-01-16 10:39:45 -0800
commit34bcd7fdece2a572271203af455fc387e5fdac1c (patch)
treea3a38ae5544f9f6ccaa35cf8396c07866e24cd75 /gcc
parent9e5e9ebad5f4ee8daae8f9098f09c31f0f5c1cd5 (diff)
downloadgcc-34bcd7fdece2a572271203af455fc387e5fdac1c.zip
gcc-34bcd7fdece2a572271203af455fc387e5fdac1c.tar.gz
gcc-34bcd7fdece2a572271203af455fc387e5fdac1c.tar.bz2
(LINKER_ENDIAN_SPEC): Define.
(LINK_SPEC): Add linker_endian_spec. (EXTRA_SPECS): Add linker_endian_spec. From-SVN: r13498
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/mips/mips.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index b29bd5c..7505a75 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -452,6 +452,19 @@ extern void text_section ();
#endif
#endif
+/* We must pass -EL to the linker by default for little endian embedded
+ targets using linker scripts with a OUTPUT_FORMAT line. Otherwise, the
+ linker will default to using big-endian output files. The OUTPUT_FORMAT
+ line must be in the linker script, otherwise -EB/-EL will not work. */
+
+#ifndef LINKER_ENDIAN_SPEC
+#if TARGET_ENDIAN_DEFAULT == 0
+#define LINKER_ENDIAN_SPEC "%{!EB:%{!meb:-EL}}"
+#else
+#define LINKER_ENDIAN_SPEC ""
+#endif
+#endif
+
/* This macro is similar to `TARGET_SWITCHES' but defines names of
command options that have values. Its definition is an
initializer with a subgrouping for each command option.
@@ -740,7 +753,8 @@ while (0)
#ifndef LINK_SPEC
#define LINK_SPEC "\
%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} %{mips4} \
-%{bestGnum} %{shared} %{non_shared}"
+%{bestGnum} %{shared} %{non_shared} \
+%(linker_endian_spec)"
#endif /* LINK_SPEC defined */
/* Specs for the compiler proper */
@@ -823,6 +837,7 @@ while (0)
{ "subtarget_asm_optimizing_spec", SUBTARGET_ASM_OPTIMIZING_SPEC }, \
{ "subtarget_asm_debugging_spec", SUBTARGET_ASM_DEBUGGING_SPEC }, \
{ "subtarget_asm_spec", SUBTARGET_ASM_SPEC }, \
+ { "linker_endian_spec", LINKER_ENDIAN_SPEC }, \
SUBTARGET_EXTRA_SPECS
#ifndef SUBTARGET_EXTRA_SPECS