diff mbox

MIPS configuration patch

Message ID f367782f-b52c-4672-8982-dff313be028f@BAMAIL02.ba.imgtec.org
State New
Headers show

Commit Message

Steve Ellcey Oct. 23, 2014, 8:37 p.m. UTC
Here is another patch to reduce the differences between the 32 bit MIPS
and 64 bit MIPS configuration.  This patch combines the two case entries
in config.gcc into one entry so the header file list and other settings
don't have to be handled twice.

This patch should not change the build for any MIPS target except that,
before this patch, the gnu_ld and gas variables were explicitly set to yes
for MIPS64 targets but not for MIPS32 targets.  I don't know why this
difference exists but it shouldn't matter for builds that are on linux
because the variables were getting set to 'yes' anyway when using the GNU
linker and assembler.  I don't think anyone builds a linux target that does
not use these.  I chose to put the settings in (matching MIPS64) but I don't
think removing them would cause any problems if we want to do that.

Steve Ellcey
sellcey@imgtec.com



2014-10-23  Steve Ellcey  <sellcey@imgtec.com>

	* config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.

Comments

Moore, Catherine Oct. 30, 2014, 2:30 p.m. UTC | #1
> -----Original Message-----
> From: Steve Ellcey [mailto:sellcey@imgtec.com]
> Sent: Thursday, October 23, 2014 4:37 PM
> To: matthew.fortune@imgtec.com; Moore, Catherine; gcc-
> patches@gcc.gnu.org
> Subject: [Patch] MIPS configuration patch
> 
> Here is another patch to reduce the differences between the 32 bit MIPS and
> 64 bit MIPS configuration.  This patch combines the two case entries in
> config.gcc into one entry so the header file list and other settings don't have
> to be handled twice.
> 
> This patch should not change the build for any MIPS target except that,
> before this patch, the gnu_ld and gas variables were explicitly set to yes for
> MIPS64 targets but not for MIPS32 targets.  I don't know why this difference
> exists but it shouldn't matter for builds that are on linux because the
> variables were getting set to 'yes' anyway when using the GNU linker and
> assembler.  I don't think anyone builds a linux target that does not use these.
> I chose to put the settings in (matching MIPS64) but I don't think removing
> them would cause any problems if we want to do that.
> 

Hi Steve,
The gnu_ld and gas settings can be removed altogether.  They are set earlier for all linux-targets:

*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
  extra_options="$extra_options gnu-user.opt"
  gas=yes
  gnu_ld=yes
  case ${enable_threads} in
    "" | yes | posix) thread_file='posix' ;;
  Esac

This patch is OK, with that change.
Thanks,
Catherine


> 
> 
> 2014-10-23  Steve Ellcey  <sellcey@imgtec.com>
> 
> 	* config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
> 
> 
> diff --git a/gcc/config.gcc b/gcc/config.gcc index 6bbbb26..8bc59bf 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -1945,41 +1945,46 @@ mips*-mti-linux*)
>  	gnu_ld=yes
>  	gas=yes
>  	;;
> -mips64*-*-linux* | mipsisa64*-*-linux*)
> +mips*-*-linux*)				# Linux MIPS, either endian.
>  	tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-
> stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h"
>  	extra_options="${extra_options} linux-android.opt"
> -	tmake_file="${tmake_file} mips/t-linux64"
> -	tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
>  	case ${target} in
> +        	mipsisa32r2*)
> +			tm_defines="${tm_defines}
> MIPS_ISA_DEFAULT=33"
> +                	;;
> +        	mipsisa32*)
> +			tm_defines="${tm_defines}
> MIPS_ISA_DEFAULT=32"
> +			;;
>  		mips64el-st-linux-gnu)
> +			tm_defines="${tm_defines}
> MIPS_ABI_DEFAULT=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"
>  			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"
> +			enable_mips_multilibs="yes"
> +			;;
> +		mips64*-*-linux* | mipsisa64*-*-linux*)
> +			tm_defines="${tm_defines}
> MIPS_ABI_DEFAULT=ABI_N32"
> +			enable_mips_multilibs="yes"
>  			;;
>  	esac
> -	gnu_ld=yes
> -	gas=yes
> -	;;
> -mips*-*-linux*)				# Linux MIPS, either endian.
> -	tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-
> stdint.h ${tm_file} mips/gnu-user.h mips/linux.h"
> -	extra_options="${extra_options} linux-android.opt"
>  	if test x$enable_targets = xall; then
> +		enable_mips_multilibs="yes"
> +	fi
> +	if test x$enable_mips_multilibs = xyes; then
>  		tmake_file="${tmake_file} mips/t-linux64"
>  	fi
> -	tm_file="${tm_file} mips/linux-common.h"
> -	case ${target} in
> -        mipsisa32r2*)
> -		tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
> -                ;;
> -        mipsisa32*)
> -		tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
> -        esac
> +	gnu_ld=yes
> +	gas=yes
>  	;;
>  mips*-mti-elf*)
>  	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h
> mips/sde.h mips/mti-elf.h"
diff mbox

Patch

diff --git a/gcc/config.gcc b/gcc/config.gcc
index 6bbbb26..8bc59bf 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1945,41 +1945,46 @@  mips*-mti-linux*)
 	gnu_ld=yes
 	gas=yes
 	;;
-mips64*-*-linux* | mipsisa64*-*-linux*)
+mips*-*-linux*)				# Linux MIPS, either endian.
 	tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h"
 	extra_options="${extra_options} linux-android.opt"
-	tmake_file="${tmake_file} mips/t-linux64"
-	tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
 	case ${target} in
+        	mipsisa32r2*)
+			tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
+                	;;
+        	mipsisa32*)
+			tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
+			;;
 		mips64el-st-linux-gnu)
+			tm_defines="${tm_defines} MIPS_ABI_DEFAULT=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"
 			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"
+			enable_mips_multilibs="yes"
+			;;
+		mips64*-*-linux* | mipsisa64*-*-linux*)
+			tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
+			enable_mips_multilibs="yes"
 			;;
 	esac
-	gnu_ld=yes
-	gas=yes
-	;;
-mips*-*-linux*)				# Linux MIPS, either endian.
-	tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h"
-	extra_options="${extra_options} linux-android.opt"
 	if test x$enable_targets = xall; then
+		enable_mips_multilibs="yes"
+	fi
+	if test x$enable_mips_multilibs = xyes; then
 		tmake_file="${tmake_file} mips/t-linux64"
 	fi
-	tm_file="${tm_file} mips/linux-common.h"
-	case ${target} in
-        mipsisa32r2*)
-		tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
-                ;;
-        mipsisa32*)
-		tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
-        esac
+	gnu_ld=yes
+	gas=yes
 	;;
 mips*-mti-elf*)
 	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"