On Fri, 2014-10-31 at 15:12 -0700, Matthew Fortune wrote:
I'm not keen on adding support for --with-endian to mips. I believe that
various build systems have become quite dependent on 'mips' meaning big
endian and 'mipsel' being little endian. I'd prefer to remove that part
unless you (or anyone else) can identify a reason why we should support
it.
OK, I will remove the --with-endian part of the patch, that will also
take care of the issues Joseph had with the patch.
This is OK if --with-endian support is removed, otherwise if you see a
need for it then I'd like to see what Catherine thinks.
Thanks,
Matthew
Here is the patch with the endian support removed, I will go ahead and
check it in.
2014-11-06 Steve Ellcey sell...@imgtec.com
* config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
Set default_mips_arch and default_mips_abi instead of tm_defines.
(mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
of tm_defines.
(mips*-*-*): Check with_arch and with_abi. Set tm_defines.
* config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
based on MIPS_ABI_DEFAULT.
(STANDARD_STARTFILE_PREFIX_2): Ditto.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 10b0a6e..f1bfb65 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1952,30 +1952,30 @@ mips*-*-linux*) # Linux MIPS,
either endian.
extra_options=${extra_options} linux-android.opt
case ${target} in
mipsisa32r2*)
- tm_defines=${tm_defines} MIPS_ISA_DEFAULT=33
+ default_mips_arch=mips32r2
;;
mipsisa32*)
- tm_defines=${tm_defines} MIPS_ISA_DEFAULT=32
+ default_mips_arch=mips32
;;
mips64el-st-linux-gnu)
- tm_defines=${tm_defines} MIPS_ABI_DEFAULT=ABI_N32
+ default_mips_abi=n32
tm_file=${tm_file} mips/st.h
tmake_file=${tmake_file} mips/t-st
enable_mips_multilibs=yes
;;
mips64octeon*-*-linux*)
- tm_defines=${tm_defines} MIPS_ABI_DEFAULT=ABI_N32
+ default_mips_abi=n32
tm_defines=${tm_defines}
MIPS_CPU_STRING_DEFAULT=\\\octeon\\\
target_cpu_default=MASK_SOFT_FLOAT_ABI
enable_mips_multilibs=yes
;;
mipsisa64r2*-*-linux*)
- tm_defines=${tm_defines} MIPS_ABI_DEFAULT=ABI_N32
- tm_defines=${tm_defines} MIPS_ISA_DEFAULT=65
+ default_mips_abi=n32
+ default_mips_arch=mips64r2
enable_mips_multilibs=yes
;;
mips64*-*-linux* | mipsisa64*-*-linux*)
- tm_defines=${tm_defines} MIPS_ABI_DEFAULT=ABI_N32
+ default_mips_abi=n32
enable_mips_multilibs=yes
;;
esac
@@ -4120,6 +4120,29 @@ case ${target} in
tm_defines=TARGET_ENDIAN_DEFAULT=0 $tm_defines
;;
esac
+ if test x$with_arch != x; then
+ default_mips_arch=$with_arch
+ fi
+ if test x$with_abi != x; then
+ default_mips_abi=$with_abi
+ fi
+ case ${default_mips_arch} in
+ mips1)tm_defines=$tm_defines MIPS_ISA_DEFAULT=1 ;;
+ mips2)tm_defines=$tm_defines MIPS_ISA_DEFAULT=2 ;;
+ mips3)tm_defines=$tm_defines MIPS_ISA_DEFAULT=3 ;;
+ mips4)tm_defines=$tm_defines MIPS_ISA_DEFAULT=4 ;;
+ mips32) tm_defines=$tm_defines MIPS_ISA_DEFAULT=32 ;;
+ mips32r2) tm_defines=$tm_defines MIPS_ISA_DEFAULT=33 ;;
+ mips64) tm_defines=$tm_defines MIPS_ISA_DEFAULT=64 ;;
+ mips64r2) tm_defines=$tm_defines MIPS_ISA_DEFAULT=65 ;;
+ esac
+ case ${default_mips_abi} in
+ 32) tm_defines=$tm_defines MIPS_ABI_DEFAULT=ABI_32 ;;
+ o64) tm_defines=$tm_defines MIPS_ABI_DEFAULT=ABI_O64 ;;
+ n32) tm_defines=$tm_defines MIPS_ABI_DEFAULT=ABI_N32 ;;
+ 64) tm_defines=$tm_defines MIPS_ABI_DEFAULT=ABI_64 ;;
+ eabi) tm_defines=$tm_defines MIPS_ABI_DEFAULT=ABI_EABI ;;
+ esac
tmake_file=mips/t-mips $tmake_file
;;
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index c7b998b..3b8469f 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -3009,3