The problem occurs with both 3.4.5 and 3.4.6. I haven't tested newer compilers, but 3.3.6 works. Problem can be avoided by reducing -O2 to -O1.
$ m68k-linux-gcc -O2 ice.c -c -o /dev/null fs/ocfs2/dlm/dlmlock.c: In function `dlmlock': fs/ocfs2/dlm/dlmlock.c:698: error: unrecognizable insn: (insn 5403 1876 1883 93 fs/ocfs2/cluster/tcp.h:77 (set (reg:DI 1008) (plus:DI (reg:DI 424 [ dlm_next_cookie ]) (const_int 1 [0x1]))) -1 (nil) (expr_list:REG_DEAD (reg:DI 424 [ dlm_next_cookie ]) (nil))) fs/ocfs2/dlm/dlmlock.c:698: internal compiler error: in extract_insn, at recog.c:2083 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. $ m68k-linux-gcc ice.c -c -o /dev/null $ m68k-linux-gcc -v Reading specs from /opt/btc-0.10/gcc-3.4.6-binutils-2.17.50.0.2-glibc-2.3.6/lib/gcc/m68k-linux/3.4.6/specs Configured with: ../gcc-3.4.6/configure --prefix=/opt/btc-0.10/gcc-3.4.6-binutils-2.17.50.0.2-glibc-2.3.6 --target=m68k-linux --with-sysroot=/opt/btc-0.10/gcc-3.4.6-binutils-2.17.50.0.2-glibc-2.3.6/m68k-linux/sysroot --enable-altivec --enable-threads=posix --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long Thread model: posix gcc version 3.4.6 -- Summary: ICE while building Linux kernel Product: gcc Version: 3.4.6 Status: UNCONFIRMED Severity: major Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ft01 at webmastery dot com dot au GCC build triplet: powerpc-apple-darwin8.6.0 GCC host triplet: powerpc-apple-darwin8.6.0 GCC target triplet: m68k-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27815