diff options
Diffstat (limited to 'toolchain/gcc/3.4.1/arm-softfloat.patch.conditional')
| -rw-r--r-- | toolchain/gcc/3.4.1/arm-softfloat.patch.conditional | 270 | 
1 files changed, 0 insertions, 270 deletions
| diff --git a/toolchain/gcc/3.4.1/arm-softfloat.patch.conditional b/toolchain/gcc/3.4.1/arm-softfloat.patch.conditional deleted file mode 100644 index 19d1b90da..000000000 --- a/toolchain/gcc/3.4.1/arm-softfloat.patch.conditional +++ /dev/null @@ -1,270 +0,0 @@ -Note... modified my mjn3 to not conflict with the big endian arm patch. -Warning!!!  Only the linux target is aware of TARGET_ENDIAN_DEFAULT. -Also changed -  #define SUBTARGET_EXTRA_ASM_SPEC "\ -  %{!mcpu=*:-mcpu=xscale} \ -  %{mhard-float:-mfpu=fpa} \ -  %{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}" -to -  #define SUBTARGET_EXTRA_ASM_SPEC "\ -  %{mhard-float:-mfpu=fpa} \ -  %{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}" -in gcc/config/arm/linux-elf.h. -# -# Submitted: -# -# Dimitry Andric <dimitry@andric.com>, 2004-05-01 -# -# Description: -# -# Nicholas Pitre released this patch for gcc soft-float support here:  -# http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-October/006436.html -# -# This version has been adapted to work with gcc 3.4.0. -# -# The original patch doesn't distinguish between softfpa and softvfp modes -# in the way Nicholas Pitre probably meant.  His description is: -# -# "Default is to use APCS-32 mode with soft-vfp.  The old Linux default for -# floats can be achieved with -mhard-float or with the configure -# --with-float=hard option.  If -msoft-float or --with-float=soft is used then -# software float support will be used just like the default but with the legacy -# big endian word ordering for double float representation instead." -# -# Which means the following: -# -# * If you compile without -mhard-float or -msoft-float, you should get -#   software floating point, using the VFP format.  The produced object file -#   should have these flags in its header: -# -#     private flags = 600: [APCS-32] [VFP float format] [software FP] -# -# * If you compile with -mhard-float, you should get hardware floating point, -#   which always uses the FPA format.  Object file header flags should be: -# -#     private flags = 0: [APCS-32] [FPA float format] -# -# * If you compile with -msoft-float, you should get software floating point, -#   using the FPA format.  This is done for compatibility reasons with many -#   existing distributions.  Object file header flags should be: -# -#     private flags = 200: [APCS-32] [FPA float format] [software FP] -# -# The original patch from Nicholas Pitre contained the following constructs: -# -#   #define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \ -#     %{mhard-float:-mfpu=fpa} \ -#     %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}" -# -# However, gcc doesn't accept this ";:" notation, used in the 3rd line.  This -# is probably the reason Robert Schwebel modified it to: -# -#   #define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \ -#     %{mhard-float:-mfpu=fpa} \ -#     %{!mhard-float: %{msoft-float:-mfpu=softfpa -mfpu=softvfp}}" -# -# But this causes the following behaviour: -# -# * If you compile without -mhard-float or -msoft-float, the compiler generates -#   software floating point instructions, but *nothing* is passed to the -#   assembler, which results in an object file which has flags: -# -#     private flags = 0: [APCS-32] [FPA float format] -# -#   This is not correct! -# -# * If you compile with -mhard-float, the compiler generates hardware floating -#   point instructions, and passes "-mfpu=fpa" to the assembler, which results -#   in an object file which has the same flags as in the previous item, but now -#   those *are* correct. -#     -# * If you compile with -msoft-float, the compiler generates software floating -#   point instructions, and passes "-mfpu=softfpa -mfpu=softvfp" (in that -#   order) to the assembler, which results in an object file with flags: -# -#   private flags = 600: [APCS-32] [VFP float format] [software FP] -# -#   This is not correct, because the last "-mfpu=" option on the assembler -#   command line determines the actual FPU convention used (which should be FPA -#   in this case). -# -# Therefore, I modified this patch to get the desired behaviour.  Every -# instance of the notation: -# -#   %{msoft-float:-mfpu=softfpa -mfpu=softvfp} -# -# was changed to: -# -#   %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp} -# -# I also did the following: -#  -# * Modified all TARGET_DEFAULT macros I could find to include ARM_FLAG_VFP, to -#   be consistent with Nicholas' original patch. -# * Removed any "msoft-float" or "mhard-float" from all MULTILIB_DEFAULTS -#   macros I could find.  I think that if you compile without any options, you -#   would like to get the defaults. :) -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed -#   anymore.  (The required functions are now in libgcc.) - -diff -urN gcc-3.4.1-old/gcc/config/arm/coff.h gcc-3.4.1/gcc/config/arm/coff.h ---- gcc-3.4.1-old/gcc/config/arm/coff.h	2004-02-24 08:25:22.000000000 -0600 -+++ gcc-3.4.1/gcc/config/arm/coff.h	2004-09-02 21:51:15.000000000 -0500 -@@ -31,11 +31,16 @@ - #define TARGET_VERSION fputs (" (ARM/coff)", stderr) -  - #undef  TARGET_DEFAULT --#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS) -+#define TARGET_DEFAULT		\ -+	( ARM_FLAG_SOFT_FLOAT	\ -+	| ARM_FLAG_VFP		\ -+	| ARM_FLAG_APCS_32	\ -+	| ARM_FLAG_APCS_FRAME	\ -+	| ARM_FLAG_MMU_TRAPS ) -  - #ifndef MULTILIB_DEFAULTS - #define MULTILIB_DEFAULTS \ --  { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork" } -+  { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork" } - #endif -  - /* This is COFF, but prefer stabs.  */ -diff -urN gcc-3.4.1-old/gcc/config/arm/elf.h gcc-3.4.1/gcc/config/arm/elf.h ---- gcc-3.4.1-old/gcc/config/arm/elf.h	2004-02-24 08:25:22.000000000 -0600 -+++ gcc-3.4.1/gcc/config/arm/elf.h	2004-09-02 21:51:15.000000000 -0500 -@@ -46,7 +46,9 @@ -  - #ifndef SUBTARGET_ASM_FLOAT_SPEC - #define SUBTARGET_ASM_FLOAT_SPEC "\ --%{mapcs-float:-mfloat} %{msoft-float:-mfpu=softfpa}" -+%{mapcs-float:-mfloat} \ -+%{mhard-float:-mfpu=fpa} \ -+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}" - #endif -  - #ifndef ASM_SPEC -@@ -106,12 +108,17 @@ - #endif -  - #ifndef TARGET_DEFAULT --#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS) -+#define TARGET_DEFAULT		\ -+	( ARM_FLAG_SOFT_FLOAT	\ -+	| ARM_FLAG_VFP		\ -+	| ARM_FLAG_APCS_32	\ -+	| ARM_FLAG_APCS_FRAME	\ -+	| ARM_FLAG_MMU_TRAPS ) - #endif -  - #ifndef MULTILIB_DEFAULTS - #define MULTILIB_DEFAULTS \ --  { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" } -+  { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" } - #endif -  - #define TARGET_ASM_FILE_START_APP_OFF true -diff -urN gcc-3.4.1-old/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h ---- gcc-3.4.1-old/gcc/config/arm/linux-elf.h	2004-09-02 21:50:52.000000000 -0500 -+++ gcc-3.4.1/gcc/config/arm/linux-elf.h	2004-09-02 22:00:49.000000000 -0500 -@@ -44,12 +44,26 @@ - #define TARGET_LINKER_EMULATION "armelf_linux" - #endif -  --/* Default is to use APCS-32 mode.  */ -+/* -+ * Default is to use APCS-32 mode with soft-vfp. -+ * The old Linux default for floats can be achieved with -mhard-float -+ * or with the configure --with-float=hard option. -+ * If -msoft-float or --with-float=soft is used then software float  -+ * support will be used just like the default but with the legacy -+ * big endian word ordering for double float representation instead. -+ */ - #undef  TARGET_DEFAULT --#define TARGET_DEFAULT \ --		( ARM_FLAG_APCS_32 | \ --		  ARM_FLAG_MMU_TRAPS | \ --		  TARGET_ENDIAN_DEFAULT ) -+#define TARGET_DEFAULT		\ -+	( ARM_FLAG_APCS_32	\ -+	| ARM_FLAG_SOFT_FLOAT	\ -+	| TARGET_ENDIAN_DEFAULT	\ -+	| ARM_FLAG_VFP		\ -+	| ARM_FLAG_MMU_TRAPS ) -+ -+#undef  SUBTARGET_EXTRA_ASM_SPEC -+#define SUBTARGET_EXTRA_ASM_SPEC "\ -+%{mhard-float:-mfpu=fpa} \ -+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}" -  - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6 -  -@@ -57,7 +71,7 @@ -  - #undef  MULTILIB_DEFAULTS - #define MULTILIB_DEFAULTS \ --	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" } -+	{ "marm", TARGET_ENDIAN_OPTION, "mapcs-32", "mno-thumb-interwork" } -  - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__" -  -@@ -72,7 +86,7 @@ -    %{shared:-lc} \ -    %{!shared:%{profile:-lc_p}%{!profile:-lc}}" -  --#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc" -+#define LIBGCC_SPEC "-lgcc" -  - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux.  Here we add -    the GNU/Linux magical crtbegin.o file (see crtstuff.c) which -diff -urN gcc-3.4.1-old/gcc/config/arm/t-linux gcc-3.4.1/gcc/config/arm/t-linux ---- gcc-3.4.1-old/gcc/config/arm/t-linux	2003-09-20 16:09:07.000000000 -0500 -+++ gcc-3.4.1/gcc/config/arm/t-linux	2004-09-02 21:51:15.000000000 -0500 -@@ -4,7 +4,10 @@ - LIBGCC2_DEBUG_CFLAGS = -g0 -  - LIB1ASMSRC = arm/lib1funcs.asm --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \ -+	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ -+	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ -+	_fixsfsi _fixunssfsi -  - # MULTILIB_OPTIONS = mhard-float/msoft-float - # MULTILIB_DIRNAMES = hard-float soft-float -diff -urN gcc-3.4.1-old/gcc/config/arm/unknown-elf.h gcc-3.4.1/gcc/config/arm/unknown-elf.h ---- gcc-3.4.1-old/gcc/config/arm/unknown-elf.h	2004-02-24 08:25:22.000000000 -0600 -+++ gcc-3.4.1/gcc/config/arm/unknown-elf.h	2004-09-02 21:51:15.000000000 -0500 -@@ -30,7 +30,12 @@ -  - /* Default to using APCS-32 and software floating point.  */ - #ifndef TARGET_DEFAULT --#define TARGET_DEFAULT	(ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS) -+#define TARGET_DEFAULT		\ -+	( ARM_FLAG_SOFT_FLOAT	\ -+	| ARM_FLAG_VFP		\ -+	| ARM_FLAG_APCS_32	\ -+	| ARM_FLAG_APCS_FRAME	\ -+	| ARM_FLAG_MMU_TRAPS ) - #endif -  - /* Now we define the strings used to build the spec file.  */ -diff -urN gcc-3.4.1-old/gcc/config/arm/xscale-elf.h gcc-3.4.1/gcc/config/arm/xscale-elf.h ---- gcc-3.4.1-old/gcc/config/arm/xscale-elf.h	2003-07-01 18:26:43.000000000 -0500 -+++ gcc-3.4.1/gcc/config/arm/xscale-elf.h	2004-09-02 21:51:15.000000000 -0500 -@@ -49,11 +49,12 @@ - 		     endian, regardless of the endian-ness of the memory - 		     system.  */ - 		      --#define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \ --  %{mhard-float:-mfpu=fpa} \ --  %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}" -+#define SUBTARGET_EXTRA_ASM_SPEC "\ -+%{!mcpu=*:-mcpu=xscale} \ -+%{mhard-float:-mfpu=fpa} \ -+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}" -  - #ifndef MULTILIB_DEFAULTS - #define MULTILIB_DEFAULTS \ --  { "mlittle-endian", "mno-thumb-interwork", "marm", "msoft-float" } -+  { "mlittle-endian", "mno-thumb-interwork", "marm" } - #endif | 
