Kan-Ru Chen's Weblog

gcc-4.3 & linux kernel

答案就是:gcc-4.3 還不能拿來 compile kernel.. 因為會用到沒有定義的 libgcc function.

錯誤如下:

    CC      arch/i386/lib/msr-on-cpu.o
    LD      arch/i386/lib/built-in.o
    CC      arch/i386/lib/bitops.o
    AS      arch/i386/lib/checksum.o
    CC      arch/i386/lib/delay.o
    AS      arch/i386/lib/getuser.o
    CC      arch/i386/lib/memcpy.o
    CC      arch/i386/lib/mmx.o
    AS      arch/i386/lib/putuser.o
    AS      arch/i386/lib/semaphore.o
    CC      arch/i386/lib/string.o
    CC      arch/i386/lib/strstr.o
    CC      arch/i386/lib/usercopy.o
    AR      arch/i386/lib/lib.a
    GEN     .version
    CHK     include/linux/compile.h
    UPD     include/linux/compile.h
    CC      init/version.o
    LD      init/built-in.o
    LD      .tmp_vmlinux1
  kernel/built-in.o: In function `getnstimeofday':
  (.text+0x1d927): undefined reference to `__umoddi3'
  kernel/built-in.o: In function `do_gettimeofday':
  (.text+0x1d9e9): undefined reference to `__udivdi3'
  kernel/built-in.o: In function `do_gettimeofday':
  (.text+0x1da0c): undefined reference to `__umoddi3'
  kernel/built-in.o: In function `timekeeping_resume':
  timekeeping.c:(.text+0x1db18): undefined reference to `__udivdi3'
  timekeeping.c:(.text+0x1db3b): undefined reference to `__umoddi3'
  kernel/built-in.o: In function `update_wall_time':
  (.text+0x1e214): undefined reference to `__udivdi3'
  kernel/built-in.o: In function `update_wall_time':
  (.text+0x1e237): undefined reference to `__umoddi3'
  kernel/built-in.o: In function `update_wall_time':
  (.text+0x1e2d3): undefined reference to `__udivdi3'
  kernel/built-in.o: In function `update_wall_time':
  (.text+0x1e2fd): undefined reference to `__umoddi3'
  make[1]: *** [.tmp_vmlinux1] Error 1
  make[1]: Leaving directory `/usr/src/linux-source-2.6.23'
  make: *** [debian/stamp-build-kernel] Error 2

參考: