This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GCC 4.2.0 boostrap problems on FreeBSD/ia64


Hi,

for quite some time we were unable to bootstrap GCC 4.2.x version on
FreeBSD/ia64 with default -O2 optimization flags. The binaries compiler
generates are failing with SIGILL, gengtype tool being the first
victim. GCC 4.1 does not suffer from this issue and this is currently
blocking FreeBSD's switch to GCC 4.2 compiler.

 Unfortunately, I cannot read ia64 assembly and thus I have no
idea how to diagnose the problem properly. Could someone with ia64
know-how help me with this? The info I gathered so far is below, but I
am perfectly willing to do whatever necessary to get you any more
information if any is missing.

I made assembly files generated by GCC 4.1 and GCC 4.2 available as

http://people.freebsd.org/~kan/gengtype-gcc41.s
and
http://people.freebsd.org/~kan/gengtype-gcc42.s
respectively.

Here is the backtrace of gengtype getting SIGILL:
 
% gdb build/gengtype 
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 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 "ia64-marcel-freebsd"...
Breakpoint 1 at 0x200000000001a910:
file .././..//gcc-4.2.0-20070501/gcc/errors.c, line 133. Breakpoint 2
at 0x200000000001a820: file .././..//gcc-4.2.0-20070501/gcc/errors.c,
line 97. Function "exit" not defined. Function "abort" not defined.
(gdb) run
Starting
program: /q/scratch/kan/obj2/q/scratch/kan/gcc42/work/build/gcc/build/gengtype
During symbol reading, unsupported tag: 'DW_TAG_const_type'. During
symbol reading, unsupported tag: 'DW_TAG_const_type'. During symbol
reading, unsupported tag: 'DW_TAG_const_type'.

Program received signal SIGILL, Illegal instruction.
adjust_field_type (t=0x200000000003c000, opt=0x0)
    at .././..//gcc-4.2.0-20070501/gcc/gengtype.c:742
742       const int pointer_p = t->kind == TYPE_POINTER;
(gdb) bt
#0  adjust_field_type (t=0x200000000003c000, opt=0x0)
    at .././..//gcc-4.2.0-20070501/gcc/gengtype.c:742
#1  0x2000000000018bb0 in yyparse () at gengtype-yacc.y:199
#2  0x20000000000102c0 in parse_file (
    fname=0x200000000001e9c0
".././..//gcc-4.2.0-20070501/gcc/function.h") at gengtype-lex.l:608
#3  0x200000000000d050 in main (argc=23, argv=0x17)
    at .././..//gcc-4.2.0-20070501/gcc/gengtype.c:3070
(gdb) x/i $ip
0x200000000000a5a0 <adjust_field_type+64>: [MMI] st8 [r16]=r17

The instruction below appears to be the problematic one, but I cannot
tell why:

[MMI]  st8 [r16]=r17

-- 
Alexander Kabaev

Attachment: signature.asc
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]