--- file_not_specified_in_diff +++ file_not_specified_in_diff @@ -, +, @@ --- gcc-4.0.2/gcc/config/arm/elf.h +++ gcc-4.0.2/gcc/config/arm/elf.h @@ -45,8 +45,9 @@ #endif #ifndef SUBTARGET_ASM_FLOAT_SPEC -#define SUBTARGET_ASM_FLOAT_SPEC "\ -%{mapcs-float:-mfloat}" +#define SUBTARGET_ASM_FLOAT_SPEC "%{mapcs-float:-mfloat} \ + %{mhard-float:-mfpu=fpa} \ + %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}" #endif #ifndef ASM_SPEC @@ -58,8 +59,6 @@ %{mapcs-*:-mapcs-%*} \ %(subtarget_asm_float_spec) \ %{mthumb-interwork:-mthumb-interwork} \ -%{msoft-float:-mfloat-abi=soft} %{mhard-float:-mfloat-abi=hard} \ -%{mfloat-abi=*} %{mfpu=*} \ %(subtarget_extra_asm_spec)" #endif --- gcc-4.0.2/gcc/config/arm/linux-elf.h +++ gcc-4.0.2/gcc/config/arm/linux-elf.h @@ -28,7 +28,7 @@ #define TARGET_VERSION fputs (" (ARM GNU/Linux with ELF)", stderr); #undef TARGET_DEFAULT_FLOAT_ABI -#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD +#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT /* TARGET_BIG_ENDIAN_DEFAULT is set in config.gcc for big endian configurations. */ @@ -44,6 +44,10 @@ #undef TARGET_DEFAULT #define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT) +#undef SUBTARGET_EXTRA_ASM_SPEC +#define SUBTARGET_EXTRA_ASM_SPEC "%{mhard-float:-mfpu=fpa} \ + %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}" + #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6 @@ -51,7 +55,7 @@ #undef MULTILIB_DEFAULTS #define MULTILIB_DEFAULTS \ - { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" } + { "marm", TARGET_ENDIAN_OPTION, "msoft-float", "mno-thumb-interwork" } /* Now we define the strings used to build the spec file. */ #undef LIB_SPEC @@ -60,7 +64,7 @@ %{shared:-lc} \ %{!shared:%{profile:-lc_p}%{!profile:-lc}}" -#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" +#define LIBGCC_SPEC "-lgcc" #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" --- gcc-4.0.2/gcc/config/arm/t-linux +++ gcc-4.0.2/gcc/config/arm/t-linux @@ -3,8 +3,10 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC LIB1ASMSRC = arm/lib1funcs.asm -LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \ - _arm_addsubdf3 _arm_addsubsf3 +LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \ + _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ + _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ + _fixsfsi _fixunssfsi _floatdidf _floatdisf # MULTILIB_OPTIONS = mhard-float/msoft-float # MULTILIB_DIRNAMES = hard-float soft-float