patches/gcc/4.4.4/390-arm-softfloat-libgcc.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 17 22:46:47 2011 +0200 (2011-07-17)
changeset 2892 aa934ec4b4ee
permissions -rw-r--r--
cc/gcc: add the backend/frontend infra for final gcc

Currently, we issue the bare-metal compiler from the pass_1 & pass_2
core compilers, because the final gcc breaks while doing so.

This implies we have to build some libces during the start_files step,
instead of the standard libc step. This is the case for newlib.

By adding a backend/frontend infra to the final gcc, we can abstract
what backend to call: the standard backend for non-bare-metal gcc,
and the core backend for bare-metal.

This patch is just an no-op, it just adds the final backend and
frontend without changing the way bare-metal is built, to come in a
subsequent patch.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 [PATCH] add the correct symbols to libgcc for uclibc arm softfloat
     2 
     3 Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
     4 ---
     5  gcc/config/arm/linux-elf.h |    2 +-
     6  gcc/config/arm/t-linux     |    6 +++++-
     7  2 files changed, 6 insertions(+), 2 deletions(-)
     8 
     9 Index: gcc-4.4.0/gcc/config/arm/t-linux
    10 ===================================================================
    11 --- gcc-4.4.0.orig/gcc/config/arm/t-linux
    12 +++ gcc-4.4.0/gcc/config/arm/t-linux
    13 @@ -4,7 +4,11 @@
    14  
    15  LIB1ASMSRC = arm/lib1funcs.asm
    16  LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
    17 -	_arm_addsubdf3 _arm_addsubsf3
    18 +	_arm_addsubdf3 _arm_addsubsf3 \
    19 +	_arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
    20 +	_arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
    21 +	_arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
    22 +	_arm_fixsfsi _arm_fixunssfsi
    23  
    24  # MULTILIB_OPTIONS = mhard-float/msoft-float
    25  # MULTILIB_DIRNAMES = hard-float soft-float
    26 Index: gcc-4.4.0/gcc/config/arm/linux-elf.h
    27 ===================================================================
    28 --- gcc-4.4.0.orig/gcc/config/arm/linux-elf.h
    29 +++ gcc-4.4.0/gcc/config/arm/linux-elf.h
    30 @@ -60,7 +60,7 @@
    31     %{shared:-lc} \
    32     %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
    33  
    34 -#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
    35 +#define LIBGCC_SPEC "-lgcc"
    36  
    37  #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
    38