patches/gcc/4.2.3/300-fortran-signed-TImode.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Jul 28 21:59:40 2008 +0000 (2008-07-28)
changeset 748 61cd4eb6034d
parent 677 3505660ff419
permissions -rw-r--r--
New patches to make glibc 2.6 and 2.6.1 build for Alpha.
Forwarded by Ioannis E. VENETIS.

/trunk/patches/glibc/2.6.1/200-alpha-ptr_mangle.patch | 103 103 0 0 ++++++++
/trunk/patches/glibc/2.6.1/190-alpha-atfcts.patch | 11 11 0 0 +
/trunk/patches/glibc/2.6.1/180-gcc-4.3-sysinclude-path.patch | 50 50 0 0 ++++
/trunk/patches/glibc/2.6.1/210-lll_lock_t.patch | 237 237 0 0 ++++++++++++++++++
/trunk/patches/glibc/2.6/200-alpha-ptr_mangle.patch | 103 103 0 0 ++++++++
/trunk/patches/glibc/2.6/190-alpha-atfcts.patch | 11 11 0 0 +
/trunk/patches/glibc/2.6/180-gcc-4.3-sysinclude-path.patch | 50 50 0 0 ++++
/trunk/patches/glibc/2.6/210-lll_lock_t.patch | 237 237 0 0 ++++++++++++++++++
/trunk/patches/glibc/ports-2.6.1/120-lll_lock_t.patch | 156 156 0 0 ++++++++++++
9 files changed, 958 insertions(+)
     1 Fix building gfortran for ARM.
     2 http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01010.html
     3 ----
     4 
     5 The patch below fixes a crash building libgfortran on arm-linux-gnueabi.
     6 
     7 This target doesn't really have a 128-bit integer type, however it does use 
     8 TImode to represent the return value of certain special ABI defined library 
     9 functions. This results in type_for_size(TImode) being called.
    10 
    11 Because TImode deosn't correspond to any gfortran integer kind 
    12 gfc_type_for_size returns NULL and we segfault shortly after.
    13 
    14 The patch below fixes this by making gfc_type_for_size handle TImode in the 
    15 same way as the C frontend.
    16 
    17 Tested on x86_64-linux and arm-linux-gnueabi.
    18 Applied to trunk.
    19 
    20 Paul
    21 
    22 2007-05-15  Paul Brook  <paul@codesourcery.com>
    23 
    24     gcc/fortran/
    25     * trans-types.c (gfc_type_for_size): Handle signed TImode.
    26 
    27 diff -durN gcc-4.2.3.old/gcc/fortran/trans-types.c gcc-4.2.3/gcc/fortran/trans-types.c
    28 --- gcc-4.2.3.old/gcc/fortran/trans-types.c	2007-08-31 10:27:50.000000000 +0200
    29 +++ gcc-4.2.3/gcc/fortran/trans-types.c	2008-07-17 09:54:20.000000000 +0200
    30 @@ -1799,6 +1799,13 @@
    31  	  if (type && bits == TYPE_PRECISION (type))
    32  	    return type;
    33  	}
    34 +
    35 +	/* Handle TImode as a special case because it is used by some backends
    36 +	   (eg. ARM) even though it is not available for normal use.  */
    37 +#if HOST_BITS_PER_WIDE_INT >= 64
    38 +	if (bits == TYPE_PRECISION (intTI_type_node))
    39 +	  return intTI_type_node;
    40 +#endif
    41      }
    42    else
    43      {