public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug bootstrap/14968] New: bootstrapping a gcc cross compiler fails
@ 2004-04-15 16:07 riggle at comcast dot net
  2004-04-15 17:06 ` [Bug bootstrap/14968] " pinskia at gcc dot gnu dot org
  0 siblings, 1 reply; 2+ messages in thread
From: riggle at comcast dot net @ 2004-04-15 16:07 UTC (permalink / raw)
  To: gcc-bugs

Steps to reproduce:

fetch binutils-2.14 & gcc-3.3.3; make build folders

% cd build/binutils
% ../../binutils-2.14/configure --target=arm-elf
% sudo make all install
% cd ../gcc
% ../../gcc-3.3.3/configure --enable-languages=c,c++ --target=arm-elf
% sudo make all install

Here are the last few lines output from make:

/Users/dave/Programming/ARM/foo/gcc/gcc/xgcc -B/Users/dave/Programming/ARM/foo/gcc/gcc/ 
-B/usr/local/arm-elf/bin/ -B/usr/local/arm-elf/lib/ -isystem /usr/local/arm-elf/include -O2  
-DIN_GCC -DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes 
-isystem ./include  -Dinhibit_libc -fno-inline -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED 
-Dinhibit_libc -I. -I. -I../../../gcc-3.3.3/gcc -I../../../gcc-3.3.3/gcc/. -I../../../gcc-3.3.3/gcc/config 
-I../../../gcc-3.3.3/gcc/../include -DFINE_GRAINED_LIBRARIES -mthumb -DL_pack_df -c dp-bit.c -o 
libgcc/thumb/_pack_df.o
dp-bit.c: In function `__pack_d':
dp-bit.c:411: error: insn does not satisfy its constraints:
(insn:HI 333 331 561 0x8bcec8 (set (reg:HI 3 r3 [109])
        (mem:HI (label_ref 584) [0 S2 A16])) 169 {*thumb_movhi_insn} (insn_list:REG_DEP_ANTI 330 
(insn_list:REG_DEP_OUTPUT 329 (nil)))
    (expr_list:REG_EQUIV (const_int 2047 [0x7ff])
        (nil)))
dp-bit.c:411: internal compiler error: in extract_constrain_insn_cached, at recog.c:2090
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[2]: *** [libgcc/thumb/_pack_df.o] Error 1
make[1]: *** [stmp-multilib] Error 2
make: *** [all-gcc] Error 2

The following is the dp-bit.i intermediate file created by adding -save-temps to X_FLAGS in the 
Makefile.

-------------------

# 1 "dp-bit.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "dp-bit.c"
# 50 "dp-bit.c"
# 1 "tconfig.h" 1





struct rtx_def;
typedef struct rtx_def *rtx;
struct rtvec_def;
typedef struct rtvec_def *rtvec;
union tree_node;
typedef union tree_node *tree;



# 1 "../../../gcc-3.3.3/include/ansidecl.h" 1
# 16 "tconfig.h" 2
# 1 "../../../gcc-3.3.3/gcc/config/dbxelf.h" 1
# 17 "tconfig.h" 2
# 1 "../../../gcc-3.3.3/gcc/config/elfos.h" 1
# 18 "tconfig.h" 2
# 1 "../../../gcc-3.3.3/gcc/config/arm/unknown-elf.h" 1
# 19 "tconfig.h" 2
# 1 "../../../gcc-3.3.3/gcc/config/arm/elf.h" 1
# 20 "tconfig.h" 2
# 1 "../../../gcc-3.3.3/gcc/config/arm/aout.h" 1
# 21 "tconfig.h" 2
# 1 "../../../gcc-3.3.3/gcc/config/arm/arm.h" 1
# 102 "../../../gcc-3.3.3/gcc/config/arm/arm.h"
typedef enum arm_cond_code
{
  ARM_EQ = 0, ARM_NE, ARM_CS, ARM_CC, ARM_MI, ARM_PL, ARM_VS, ARM_VC,
  ARM_HI, ARM_LS, ARM_GE, ARM_LT, ARM_GT, ARM_LE, ARM_AL, ARM_NV
}
arm_cc;

extern arm_cc arm_current_cc;



extern int arm_target_label;
extern int arm_ccfsm_state;
extern rtx arm_target_insn;

extern int target_flags;

extern const char * target_fp_name;


extern rtx arm_compare_op0;
extern rtx arm_compare_op1;

extern rtx pool_vector_label;


extern int return_used_this_function;

extern rtx aof_pic_label;
# 504 "../../../gcc-3.3.3/gcc/config/arm/arm.h"
struct arm_cpu_select
{
  const char * string;
  const char * name;
  const struct processors * processors;
};




extern struct arm_cpu_select arm_select[];

enum prog_mode_type
{
  prog_mode26,
  prog_mode32
};




extern enum prog_mode_type arm_prgmode;



enum floating_point_type
{
  FP_HARD,
  FP_SOFT2,
  FP_SOFT3
};





extern enum floating_point_type arm_fpu;


extern enum floating_point_type arm_fpu_arch;
# 553 "../../../gcc-3.3.3/gcc/config/arm/arm.h"
extern int arm_fast_multiply;


extern int arm_arch4;


extern int arm_arch5;


extern int arm_arch5e;


extern int arm_ld_sched;


extern int thumb_code;


extern int arm_is_strong;


extern int arm_is_xscale;


extern int arm_is_6_or_7;
# 720 "../../../gcc-3.3.3/gcc/config/arm/arm.h"
extern int arm_structure_size_boundary;
# 731 "../../../gcc-3.3.3/gcc/config/arm/arm.h"
extern const char * structure_size_string;
# 1021 "../../../gcc-3.3.3/gcc/config/arm/arm.h"
enum reg_class
{
  NO_REGS,
  FPU_REGS,
  LO_REGS,
  STACK_REG,
  BASE_REGS,
  HI_REGS,
  CC_REG,
  GENERAL_REGS,
  ALL_REGS,
  LIM_REG_CLASSES
};
# 1431 "../../../gcc-3.3.3/gcc/config/arm/arm.h"
typedef struct machine_function
{

  rtx eh_epilogue_sp_ofs;

  int far_jump_used;

  int arg_pointer_live;

  int lr_save_eliminated;

  int frame_size;

  unsigned long func_type;

  int uses_anonymous_args;
}
machine_function;




typedef struct
{

  int nregs;

  int call_cookie;
} CUMULATIVE_ARGS;
# 2420 "../../../gcc-3.3.3/gcc/config/arm/arm.h"
extern int arm_pic_register;


extern const char * arm_pic_register_string;
# 2444 "../../../gcc-3.3.3/gcc/config/arm/arm.h"
extern int making_const_table;
# 2786 "../../../gcc-3.3.3/gcc/config/arm/arm.h"
enum arm_builtins
{
  ARM_BUILTIN_CLZ,
  ARM_BUILTIN_MAX
};
# 22 "tconfig.h" 2
# 1 "../../../gcc-3.3.3/gcc/defaults.h" 1
# 23 "tconfig.h" 2
# 51 "dp-bit.c" 2
# 1 "../../../gcc-3.3.3/gcc/config/fp-bit.h" 1
# 94 "../../../gcc-3.3.3/gcc/config/fp-bit.h"
typedef float SFtype __attribute__ ((mode (SF)));
typedef float DFtype __attribute__ ((mode (DF)));




typedef int HItype __attribute__ ((mode (HI)));
typedef int SItype __attribute__ ((mode (SI)));
typedef int DItype __attribute__ ((mode (DI)));
# 112 "../../../gcc-3.3.3/gcc/config/fp-bit.h"
typedef unsigned int UHItype __attribute__ ((mode (HI)));
typedef unsigned int USItype __attribute__ ((mode (SI)));
typedef unsigned int UDItype __attribute__ ((mode (DI)));
# 215 "../../../gcc-3.3.3/gcc/config/fp-bit.h"
        typedef UDItype fractype;
        typedef USItype halffractype;
        typedef DFtype FLO_type;
        typedef DItype intfrac;
# 343 "../../../gcc-3.3.3/gcc/config/fp-bit.h"
typedef enum
{
  CLASS_SNAN,
  CLASS_QNAN,
  CLASS_ZERO,
  CLASS_NUMBER,
  CLASS_INFINITY
} fp_class_type;

typedef struct
{





  fp_class_type class;
  unsigned int sign;
  int normal_exp;


  union
    {
      fractype ll;
      halffractype l[2];
    } fraction;
} fp_number_type;

typedef union
{
  FLO_type value;
  fractype value_raw;





  halffractype words[2];




  struct
    {
      fractype fraction:52 __attribute__ ((packed));
      unsigned int exp:11 __attribute__ ((packed));
      unsigned int sign:1 __attribute__ ((packed));
    }
  bits;
# 411 "../../../gcc-3.3.3/gcc/config/fp-bit.h"
}
FLO_union_type;




extern FLO_type __pack_d (fp_number_type *);


extern void __unpack_d (FLO_union_type *, fp_number_type *);
# 435 "../../../gcc-3.3.3/gcc/config/fp-bit.h"
extern int __fpcmp_parts_d (fp_number_type *, fp_number_type *);
# 511 "../../../gcc-3.3.3/gcc/config/fp-bit.h"
extern SFtype __make_fp (fp_class_type, unsigned int, int, USItype);
# 52 "dp-bit.c" 2
# 144 "dp-bit.c"
extern const fp_number_type __thenan_df;


__inline__
static fp_number_type *
nan (void)
{






  return (fp_number_type *) (& __thenan_df);

}

__inline__
static int
isnan ( fp_number_type * x)
{
  return x->class == CLASS_SNAN || x->class == CLASS_QNAN;
}

__inline__
static int
isinf ( fp_number_type * x)
{
  return x->class == CLASS_INFINITY;
}



__inline__
static int
iszero ( fp_number_type * x)
{
  return x->class == CLASS_ZERO;
}

__inline__
static void
flip_sign ( fp_number_type * x)
{
  x->sign = !x->sign;
}

extern FLO_type __pack_d ( fp_number_type * );


FLO_type
__pack_d ( fp_number_type * src)
{
  FLO_union_type dst;
  fractype fraction = src->fraction.ll;
  int sign = src->sign;
  int exp = 0;

  if (0 && (isnan (src) || isinf (src)))
    {



      exp = (0x7ff);
      fraction = ((fractype) 1 << 52) - 1;
    }
  else if (isnan (src))
    {
      exp = (0x7ff);
      if (src->class == CLASS_QNAN || 1)
        {
          fraction |= 0x8000000000000LL;
        }
    }
  else if (isinf (src))
    {
      exp = (0x7ff);
      fraction = 0;
    }
  else if (iszero (src))
    {
      exp = 0;
      fraction = 0;
    }
  else if (fraction == 0)
    {
      exp = 0;
    }
  else
    {
      if (src->normal_exp < (-(1023)+1))
        {
# 247 "dp-bit.c"
          int shift = (-(1023)+1) - src->normal_exp;

          exp = 0;

          if (shift > 64 - 8L)
            {

              fraction = 0;
            }
          else
            {
              int lowbit = (fraction & (((fractype)1 << shift) - 1)) ? 1 : 0;
              fraction = (fraction >> shift) | lowbit;
            }
          if ((fraction & 0xff) == 0x80)
            {
              if ((fraction & (1 << 8L)))
                fraction += 0x7f + 1;
            }
          else
            {

              fraction += 0x7f;
            }


          if (fraction >= ((fractype)1<<(52 +8L)))
            {
              exp += 1;
            }
          fraction >>= 8L;

        }
      else if (!0
               && src->normal_exp > 1023)
        {
          exp = (0x7ff);
          fraction = 0;
        }
      else
        {
          exp = src->normal_exp + 1023;
          if (!0)
            {



              if ((fraction & 0xff) == 0x80)
                {
                  if (fraction & (1 << 8L))
                    fraction += 0x7f + 1;
                }
              else
                {

                  fraction += 0x7f;
                }
              if (fraction >= ((fractype)1<<(52 +1+8L)))
                {
                  fraction >>= 1;
                  exp += 1;
                }
            }
          fraction >>= 8L;

          if (0 && exp > (0x7ff))
            {

              exp = (0x7ff);
              fraction = ((fractype) 1 << 52) - 1;
            }
        }
    }





  dst.bits.fraction = fraction;
  dst.bits.exp = exp;
  dst.bits.sign = sign;
# 402 "dp-bit.c"
  {
    halffractype tmp = dst.words[0];
    dst.words[0] = dst.words[1];
    dst.words[1] = tmp;
  }



  return dst.value;
}
# 1501 "dp-bit.c"
extern SFtype __make_fp (fp_class_type, unsigned int, int, USItype);

-- 
           Summary: bootstrapping a gcc cross compiler fails
           Product: gcc
           Version: 3.3.3
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: bootstrap
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: riggle at comcast dot net
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: powerpc-apple-darwin7.3.0
  GCC host triplet: powerpc-apple-darwin7.3.0
GCC target triplet: arm-unknown-elf


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14968


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Bug bootstrap/14968] bootstrapping a gcc cross compiler fails
  2004-04-15 16:07 [Bug bootstrap/14968] New: bootstrapping a gcc cross compiler fails riggle at comcast dot net
@ 2004-04-15 17:06 ` pinskia at gcc dot gnu dot org
  0 siblings, 0 replies; 2+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-04-15 17:06 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-04-15 16:07 -------
This is a dup of bug 14166 which is fixed for 3.3.4.

*** This bug has been marked as a duplicate of 14166 ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |DUPLICATE
   Target Milestone|---                         |3.3.4


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14968


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-04-15 16:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-04-15 16:07 [Bug bootstrap/14968] New: bootstrapping a gcc cross compiler fails riggle at comcast dot net
2004-04-15 17:06 ` [Bug bootstrap/14968] " pinskia at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).