Hi guys,
About a month ago I opened a bug on Bugzilla:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43805
This relates to gcc crashing out with an Internal Compiler Error when
doing a build of Linux kernel 2.6.34-rc4. Basically, as soon as the
build hits fs/timerfd.c, an ICE is thrown:
fs/timerfd.c: In function ‘timerfd_poll’:
fs/timerfd.c:105:1: error: unrecognizable insn:
(insn 44 43 45 5 fs/timerfd.c:94 (set (reg:SI 68)
(subreg:SI (mem/s:DI (plus:SI (reg/v/f:SI 39 [ ctx ])
(const_int 64 [0x40])) [0 S8 A64]) 4)) -1 (nil))
fs/timerfd.c:105:1: internal compiler error: in extract_insn, at
recog.c:2103
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
Compiling without -O2 allows the build to get a little further, but it
falls over on mm/filemap.c:
mm/filemap.c: In function ‘do_generic_file_read’:
mm/filemap.c:1171:1: error: unrecognizable insn:
(insn 402 401 403 20 mm/filemap.c:1029 (set (reg:SI 389)
(subreg:SI (mem/c/i:DI (plus:SI (reg/f:SI 33 virtual-stack-vars)
(const_int -52 [0xffffffffffffffcc])) [0 isize+0 S8
A64])
4)) -1 (nil))
mm/filemap.c:1171:1: internal compiler error: in extract_insn, at
recog.c:2103
The full details are in the bug report, along with the compiler command
line, .i file and preprocessed source. Seeing as it's been over a month
and nothing seems to have happened with the bug, I'd like to have a go
at fixing it myself...
I have a couple of questions:
1) Who's the current maintainer for the lm32 port? Jon Beniston?
I can't see anything on the gcc website that says definitively "target X
is maintained by $PERSON", and I really don't want to step on his/her
toes and start a flame war, turf war or any other kind of war here...
2) What are these error messages telling me? Is there a "decoding ICE
Error Messages HOWTO" for aspiring GCC developers?
3) I've established that the bug has been present in the lm32 port since
it was merged into the mainline GCC source. What part of the gcc source
should I start digging into first?
I guess ultimately I'm just asking for a few starting points from the
gurus here... :)
Thanks,
Phil.