Your flow.c change on 4/8
Franz Sirl
Franz.Sirl-kernel@lauterbach.com
Wed Apr 12 15:56:00 GMT 2000
Am Thu, 13 Apr 2000 schrieb Richard Henderson:
>On Wed, Apr 12, 2000 at 06:24:58PM -0400, Rod Stewart wrote:
>> stage1/xgcc -Bstage1/ -B/usr/armv4l-unknown-linux-gnu/bin/ -c -DIN_GCC
>
>Are there code gen defaults that are different between
>"armv4l-unknown-linux-gnu" and "arm-unknown-elf"? The
>later is what I saw in the original bug report.
Richard,
unfortunately I have to tell you that your patches also cause a bootstrap fail
on powerpc-linux-gnu. I waded back and forth thru the tree and tracked down
your patch as the reason. As usual I configured with
--enable-checking=tree,gc,misc
The bootstrap stops here:
stage1/xgcc -Bstage1/ -B/home/fsirl/gnubin/ppc-redhat-linux/bin/ -c -DIN_GCC -W -Wall -Wtraditional -g -O2 -D__NO_STRING_INLINES -DHAVE_CONFIG_H
-I. -I../../../cvsx/gccm/gcc -I../../../cvsx/gccm/gcc/config -I../../../cvsx/gccm/gcc/../include ../../../cvsx/gccm/gcc/builtins.c
stage1/xgcc -Bstage1/ -B/home/fsirl/gnubin/ppc-redhat-linux/bin/ -c -DIN_GCC -W -Wall -Wtraditional -g -O2 -D__NO_STRING_INLINES -DHAVE_CONFIG_H
-I. -I../../../cvsx/gccm/gcc -I../../../cvsx/gccm/gcc/config -I../../../cvsx/gccm/gcc/../include ../../../cvsx/gccm/gcc/varasm.c
../../../cvsx/gccm/gcc/varasm.c: In function `assemble_start_function':
../../../cvsx/gccm/gcc/varasm.c:1092: warning: unused variable `buf_ptr'
xgcc: Internal compiler error: program cc1 got fatal signal 11
make[2]: *** [varasm.o] Error 1
make[2]: Leaving directory `/home/fsirl/obj/gccm/gcc'
make[1]: *** [bootstrap-lean] Error 2
make[1]: Leaving directory `/home/fsirl/obj/gccm/gcc'
make: *** [bootstrap-lean] Error 2
Wed Apr 12 15:34:14 MST 2000
0m0.000s 0m0.020s
11m50.310s 0m56.980s
gdb shows:
[fsirl@entropy:~/obj/gccm/gcc]$ gdb stage1/cc1
GNU gdb 20000204
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "ppc-redhat-linux"...
Breakpoint 1 at 0x10433b04
Breakpoint 2 at 0x101221a0: file ../../../cvsx/gccm/gcc/rtl.c, line 1261.
Breakpoint 3 at 0x10433a4c
(gdb) r varasm.i -quiet -dumpbase varasm.c -g -O2 -W -Wall -Wtraditional -version -o varasm.s
Starting program: /home/fsirl/obj/gccm/gcc/stage1/cc1 varasm.i -quiet -dumpbase varasm.c -g -O2 -W -Wall -Wtraditional -version -o varasm.s
Breakpoint 1 at 0xff14860: file exit.c, line 40.
Breakpoint 3 at 0xff13348: file ../sysdeps/generic/abort.c, line 55.
GNU C version 2.96 20000412 (experimental) (ppc-redhat-linux) compiled by GNU C version 2.95.3 19991030 (prerelease/franzo).
../../../cvsx/gccm/gcc/varasm.c: In function `assemble_start_function':
../../../cvsx/gccm/gcc/varasm.c:1092: warning: unused variable `buf_ptr'
Program received signal SIGSEGV, Segmentation fault.
0x1014179c in dbxout_parms (parms=0x300df500) at ../../../cvsx/gccm/gcc/dbxout.c:2484
2484 = INTVAL (XEXP (XEXP (DECL_RTL (parms), 0), 1));
(gdb) l
2479 = INTVAL (XEXP (XEXP (XEXP (DECL_RTL (parms), 0), 0), 1));
2480 current_sym_value = 0;
2481 }
2482 else
2483 current_sym_value
2484 = INTVAL (XEXP (XEXP (DECL_RTL (parms), 0), 1));
2485
2486 current_sym_addr = 0;
2487
2488 /* Make a big endian correction if the mode of the type of the
(gdb) p *parms
$1 = {common = {chain = 0x300df580, type = 0x3001bc80, code = PARM_DECL, side_effects_flag = 0, constant_flag = 0, permanent_flag = 0,
addressable_flag = 1, volatile_flag = 0, readonly_flag = 0, unsigned_flag = 0, asm_written_flag = 0, used_flag = 1, nothrow_flag = 0,
static_flag = 0, public_flag = 0, private_flag = 0, protected_flag = 0, lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0,
lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0}, int_cst = {common = "0\rõ\2000\001ü\200\"\020\200", rtl = 0x304bba40, int_cst_low = 2154,
int_cst_high = 8913}, real_cst = {common = "0\rõ\2000\001ü\200\"\020\200", rtl = 0x304bba40, real_cst = 4.5707789381428037e-311}, string = {
common = "0\rõ\2000\001ü\200\"\020\200", rtl = 0x304bba40, length = 2154, pointer = 0x22d1 <Address 0x22d1 out of bounds>}, complex = {
common = "0\rõ\2000\001ü\200\"\020\200", rtl = 0x304bba40, real = 0x86a, imag = 0x22d1}, identifier = {common = "0\rõ\2000\001ü\200\"\020\200",
length = 810269248, pointer = 0x86a <Address 0x86a out of bounds>}, decl = {common = "0\rõ\2000\001ü\200\"\020\200",
filename = 0x304bba40 "../../../cvsx/gccm/gcc/varasm.c", linenum = 2154, uid = 8913, size = 0x30019d00, mode = DFmode, external_flag = 0,
nonlocal_flag = 0, regdecl_flag = 0, inline_flag = 0, bit_field_flag = 0, virtual_flag = 0, ignored_flag = 0, abstract_flag = 0,
in_system_header_flag = 0, common_flag = 1, defer_output = 0, transparent_union = 0, static_ctor_flag = 0, static_dtor_flag = 0,
artificial_flag = 0, weak_flag = 1, non_addr_const_p = 0, no_instrument_function_entry_exit = 0, no_check_memory_usage = 0, comdat_flag = 0,
malloc_flag = 0, no_limit_stack = 0, built_in_class = NOT_BUILT_IN, lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0,
lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, lang_flag_7 = 0, u1 = {i = 16384, f = 16384, a = {align = 64, off_align = 0}},
size_unit = 0x30019d20, name = 0x3021bf40, context = 0x30228c00, arguments = 0x0, result = 0x3001bc80, initial = 0x3001bc80,
abstract_origin = 0x0, assembler_name = 0x3021bf40, section_name = 0x0, machine_attributes = 0x0, rtl = 0x30552a00, live_range_rtl = 0x0, u2 = {
f = 0x30552880, r = 0x30552880, t = 0x30552880, i = 810887296}, vindex = 0x0, pointer_alias_set = -1, lang_specific = 0x0}, type = {
common = "0\rõ\2000\001ü\200\"\020\200", values = 0x304bba40, size = 0x86a, size_unit = 0x22d1, attributes = 0x30019d00, uid = 251674880,
precision = 0 '\000', mode = VOIDmode, string_flag = 0, no_force_blk_flag = 0, needs_constructing_flag = 0, transparent_union_flag = 0,
packed_flag = 0, restrict_flag = 0, lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 0,
lang_flag_6 = 0, align = 16384, pointer_to = 0x30019d20, reference_to = 0x3021bf40, symtab = {address = 807570432,
pointer = 0x30228c00 "0\"\212"}, name = 0x0, minval = 0x3001bc80, maxval = 0x3001bc80, next_variant = 0x0, main_variant = 0x3021bf40,
binfo = 0x0, noncopied_parts = 0x0, context = 0x30552a00, obstack = 0x0, alias_set = 810887296, lang_specific = 0x0}, list = {
common = "0\rõ\2000\001ü\200\"\020\200", purpose = 0x304bba40, value = 0x86a}, vec = {common = "0\rõ\2000\001ü\200\"\020\200",
length = 810269248, a = {0x86a}}, exp = {common = "0\rõ\2000\001ü\200\"\020\200", complexity = 810269248, operands = {0x86a}}, block = {
common = "0\rõ\2000\001ü\200\"\020\200", handler_block_flag = 0, abstract_flag = 0, block_num = 810269248, vars = 0x86a, subblocks = 0x22d1,
supercontext = 0x30019d00, abstract_origin = 0xf004100}}
(gdb) p debug_tree(parms)
<parm_decl 0x300df500 d
type <real_type 0x3001bc80 double DF
size <integer_cst 0x30019d00 constant 64>
unit size <integer_cst 0x30019d20 constant 8>
align 64 symtab 13 alias set 50 precision 64
pointer_to_this <pointer_type 0x300cc180>>
addressable used common DF file ../../../cvsx/gccm/gcc/varasm.c line 2154 size <integer_cst 0x30019d00 64> unit size <integer_cst 0x30019d20 8>
align 64 context <function_decl 0x30228c00 immed_real_const_1> result <real_type 0x3001bc80 double> initial <real_type 0x3001bc80 double>
(mem/f:DF (pre_inc:SI (reg:SI 4 r4)) 50)
incoming-rtl (reg:DF 33 f1) chain <parm_decl 0x300df580 mode>>
$2 = void
(gdb) p debug_rtx(parms->decl.rtl)
(mem/f:DF (pre_inc:SI (reg:SI 4 r4)) 50)
$3 = void
(gdb) p *parms->decl.rtl
$4 = {code = MEM, mode = DFmode, jump = 0, call = 0, unchanging = 0, volatil = 0, in_struct = 0, used = 0, integrated = 0, frame_related = 1, fld = {{
rtwint = 809902528, rtint = 809902528, rtuint = 809902528, rtstr = 0x304621c0 "", rtx = 0x304621c0, rtvec = 0x304621c0, rttype = 809902528,
rt_addr_diff_vec_flags = {min_align = 48, base_after_vec = 0, min_after_vec = 1, max_after_vec = 0, min_after_base = 0, max_after_base = 0,
offset_unsigned = 1, 2, scale = 33}, rt_cselib = 0x304621c0, rtbit = 0x304621c0, rttree = 0x304621c0, bb = 0x304621c0}}}
(gdb) p *parms->decl.rtl->fld[0].rtx
$5 = {code = PRE_INC, mode = SImode, jump = 0, call = 0, unchanging = 0, volatil = 0, in_struct = 0, used = 0, integrated = 0, frame_related = 0,
fld = {{rtwint = 810887728, rtint = 810887728, rtuint = 810887728, rtstr = 0x30552a30 "", rtx = 0x30552a30, rtvec = 0x30552a30, rttype = 810887728,
rt_addr_diff_vec_flags = {min_align = 48, base_after_vec = 0, min_after_vec = 1, max_after_vec = 0, min_after_base = 1, max_after_base = 0,
offset_unsigned = 1, 1, scale = 42}, rt_cselib = 0x30552a30, rtbit = 0x30552a30, rttree = 0x30552a30, bb = 0x30552a30}}}
(gdb) p debug_rtx(parms->decl.rtl->fld[0].rtx)
(pre_inc:SI (reg:SI 4 r4))
$6 = void
(gdb) p *parms->decl.rtl->fld[0].rtx->fld[1].rtx
Cannot access memory at address 0x2c0600
(gdb) p parms->decl.rtl->fld[0].rtx->fld[1].rtx
$7 = (struct rtx_def *) 0x2c0600
Since it happens in stage2, this kind of failure would point to a
initialization/corruption problem? If I can do anything to help you to track
down this further, please tell me.
Franz.
More information about the Gcc-patches
mailing list