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] |
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] |