[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
internal error in 3.3.3 building arm cross-compiler
From: |
Dave Denholm |
Subject: |
internal error in 3.3.3 building arm cross-compiler |
Date: |
Wed, 10 Mar 2004 22:16:57 +0000 |
User-agent: |
Gnus/5.1002 (Gnus v5.10.2) Emacs/21.2 (usg-unix-v) |
I was trying to install gcc 3.3.3 as a crosscompiler on solaris/x86 compiling
for arm-elf using "newlib"
I got an internal error when compiling some (thumb ?) code.
Since it's running the locally-built compiler, I assume it's trying to
compile some library code ?
The cross-compiler itself would be have been built using a native
(solaris/x86) gcc 2.95.2
eclipse:~/tmp$ gcc -dumpmachine
i386-pc-solaris2.8
eclipse:~/tmp$ gcc --version
2.95.2
dp-bit.c: In function `__pack_d':
dp-bit.c:411: error: insn does not satisfy its constraints:
(insn:HI 333 331 561 df99fec8 (set (reg:HI 3 r3 [109])
(mem:HI (label_ref 584) [0 S2 A16])) 183 {*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.
I hope there's enough information in the following to figure out the
problem (or recognise this as a duplicate report)
dd
--
Dave Denholm <address@hidden> http://www.esmertec.com
eclipse:~/tmp/gcc/bld-333$ gmake
gmake[1]: Entering directory `/home/eclipse/ddenholm/tmp/gcc/bld-333/libiberty'
gmake[2]: Entering directory
`/home/eclipse/ddenholm/tmp/gcc/bld-333/libiberty/testsuite'
gmake[2]: Nothing to be done for `all'.
gmake[2]: Leaving directory
`/home/eclipse/ddenholm/tmp/gcc/bld-333/libiberty/testsuite'
gmake[1]: Leaving directory `/home/eclipse/ddenholm/tmp/gcc/bld-333/libiberty'
gmake[1]: Entering directory `/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc'
(cd intl && gmake all)
gmake[2]: Entering directory `/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/intl'
gmake[2]: Nothing to be done for `all'.
gmake[2]: Leaving directory `/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/intl'
gmake GCC_FOR_TARGET="/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/xgcc
-B/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/ -B/usr/local/arm-devsim-elf/bin/
-B/usr/local/arm-devsim-elf/lib/ -isystem /usr/local/arm-devsim-elf/include" \
BUILD_PREFIX="" BUILD_PREFIX_1="loser-" \
AR_FOR_TARGET="arm-devsim-elf-ar" \
AR_CREATE_FOR_TARGET="arm-devsim-elf-ar rc" \
AR_FLAGS_FOR_TARGET="" \
CFLAGS="-g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long " \
RANLIB_FOR_TARGET="arm-devsim-elf-ranlib" \
RANLIB_TEST_FOR_TARGET="[ -f arm-devsim-elf-ranlib ] || ( [
"i386-pc-solaris2.8" = "arm-devsim-elf" ] && [ -f /usr/bin/ranlib -o -f
/bin/ranlib ] )" \
NM_FOR_TARGET="/usr/local/arm-devsim-elf/bin/nm" AWK="nawk" \
LIBGCC2_CFLAGS="-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" \
INCLUDES="-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" \
CONFIG_H="config.h auto-host.h ../../gcc-3.3.3/gcc/../include/ansidecl.h
../../gcc-3.3.3/gcc/config/dbxelf.h ../../gcc-3.3.3/gcc/config/elfos.h
../../gcc-3.3.3/gcc/config/arm/unknown-elf.h
../../gcc-3.3.3/gcc/config/arm/elf.h ../../gcc-3.3.3/gcc/config/arm/aout.h
../../gcc-3.3.3/gcc/config/arm/arm.h ../../gcc-3.3.3/gcc/defaults.h
../../gcc-3.3.3/gcc/defaults.h insn-constants.h insn-flags.h"
MACHMODE_H="machmode.h machmode.def
../../gcc-3.3.3/gcc/config/arm/arm-modes.def" \
LIB1ASMSRC='arm/lib1funcs.asm' \
MAKEOVERRIDES= \
-f libgcc.mk all
gmake[2]: Entering directory `/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc'
for d in libgcc thumb libgcc/thumb; do \
if [ -d $d ]; then true; else /bin/sh ../../gcc-3.3.3/gcc/mkinstalldirs $d;
fi; \
done
if [ -f stmp-dirs ]; then true; else touch stmp-dirs; fi
/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/xgcc
-B/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/ -B/usr/local/arm-devsim-elf/bin/
-B/usr/local/arm-devsim-elf/lib/ -isystem /usr/local/arm-devsim-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 df99fec8 (set (reg:HI 3 r3 [109])
(mem:HI (label_ref 584) [0 S2 A16])) 183 {*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.
gmake[2]: *** [libgcc/thumb/_pack_df.o] Error 1
gmake[2]: Leaving directory `/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc'
gmake[1]: *** [stmp-multilib] Error 2
gmake[1]: Leaving directory `/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc'
gmake: *** [all-gcc] Error 2
eclipse:~/tmp/gcc/bld-333$ cd gcc
eclipse:~/tmp/gcc/bld-333/gcc$
eclipse:~/tmp/gcc/bld-333/gcc$ /home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/xgcc
--verbose -save-temps -B/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/
-B/usr/local/arm-devsim-elf/bin/ -B/usr/local/arm-devsim-elf/lib/ -isystem
/usr/local/arm-devsim-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
Reading specs from /home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/specs
Configured with: ../gcc-3.3.3/configure --target=arm-devsim-elf
--enable-languages=c --with-newlib
Thread model: single
gcc version 3.3.3
/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/cc1 -E -quiet -v -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 -iprefix
/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/../lib/gcc-lib/arm-devsim-elf/3.3.3/
-isystem /home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/include -isystem
/usr/local/arm-devsim-elf/bin/include -isystem
/usr/local/arm-devsim-elf/lib/include -D__GNUC__=3 -D__GNUC_MINOR__=3
-D__GNUC_PATCHLEVEL__=3 -D__ARM_ARCH_4T__ -D__ELF__ -D__USES_INITFINI__
-DIN_GCC -DCROSS_COMPILE -Dinhibit_libc -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
-Dinhibit_libc -DFINE_GRAINED_LIBRARIES -DL_pack_df -isystem
/usr/local/arm-devsim-elf/include -isystem ./include dp-bit.c -mthumb -W -Wall
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -fno-inline -O2
dp-bit.i
ignoring nonexistent directory "/usr/local/arm-devsim-elf/bin/include"
ignoring nonexistent directory "/usr/local/arm-devsim-elf/lib/include"
ignoring nonexistent directory
"/home/eclipse/ddenholm/tmp/gcc/bld-333/lib/gcc-lib/arm-devsim-elf/3.3.3/include"
ignoring nonexistent directory
"/home/eclipse/ddenholm/tmp/gcc/bld-333/lib/gcc-lib/arm-devsim-elf/3.3.3/../../../../arm-devsim-elf/sys-include"
ignoring nonexistent directory
"/home/eclipse/ddenholm/tmp/gcc/bld-333/lib/gcc-lib/arm-devsim-elf/3.3.3/../../../../arm-devsim-elf/include"
ignoring nonexistent directory
"/usr/local/lib/gcc-lib/arm-devsim-elf/3.3.3/include"
ignoring duplicate directory "."
ignoring duplicate directory "../../gcc-3.3.3/gcc"
ignoring duplicate directory "include"
ignoring duplicate directory "/usr/local/arm-devsim-elf/include"
#include "..." search starts here:
#include <...> search starts here:
.
../../gcc-3.3.3/gcc
../../gcc-3.3.3/gcc/config
../../gcc-3.3.3/include
/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/include
/usr/local/arm-devsim-elf/include
/usr/local/arm-devsim-elf/sys-include
End of search list.
/home/eclipse/ddenholm/tmp/gcc/bld-333/gcc/cc1 -fpreprocessed dp-bit.i -quiet
-dumpbase dp-bit.c -mthumb -auxbase-strip libgcc/thumb/_pack_df.o -g -O2 -W
-Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -version
-fno-inline -o dp-bit.s
GNU C version 3.3.3 (arm-devsim-elf)
compiled by GNU C version 2.95.2 19991024 (release).
GGC heuristics: --param ggc-min-expand=56 --param ggc-min-heapsize=49095
dp-bit.c: In function `__pack_d':
dp-bit.c:411: error: insn does not satisfy its constraints:
(insn:HI 333 331 561 df9fbec8 (set (reg:HI 3 r3 [109])
(mem:HI (label_ref 584) [0 S2 A16])) 183 {*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.
eclipse:~/tmp/gcc/bld-333/gcc$
eclipse:~/tmp/gcc/bld-333/gcc$ cat dp-bit.i
# 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);
- internal error in 3.3.3 building arm cross-compiler,
Dave Denholm <=