コンパイル(7)



しばらくして

LD init/built-in.o
LD .tmp_vmlinux1
kernel/built-in.o: In function `getnstimeofday':
utsname_sysctl.c:(.text.getnstimeofday+0xe8): undefined reference to `__aeabi_uldivmod'
kernel/built-in.o: In function `do_gettimeofday':
utsname_sysctl.c:(.text.do_gettimeofday+0xa8): undefined reference to `__aeabi_uldivmod'
utsname_sysctl.c:(.text.do_gettimeofday+0xc4): undefined reference to `__aeabi_uldivmod'
kernel/built-in.o: In function `update_wall_time':
utsname_sysctl.c:(.text.update_wall_time+0x63c): undefined reference to `__aeabi_uldivmod'
utsname_sysctl.c:(.text.update_wall_time+0x65c): undefined reference to `__aeabi_uldivmod'
make: *** [.tmp_vmlinux1] Error 1
-bash-3.2#

また落ちた。
ソースを調べる。

-bash-3.2# grep getnstimeofday ./*/* ./block/blktrace.c: getnstimeofday(&now); Binary file ./kernel/built-in.o matches ./kernel/hrtimer.c: getnstimeofday(&now); ./kernel/hrtimer.c: getnstimeofday(ts); ./kernel/hrtimer.c: getnstimeofday(&xts); Binary file ./kernel/hrtimer.o matches Binary file ./kernel/posix-timers.o matches ./kernel/time.c: * Added getnstimeofday to allow the posix timer functions to return ./kernel/time.c:void getnstimeofday (struct timespec *tv) ./kernel/time.c:EXPORT_SYMBOL_GPL(getnstimeofday); ./kernel/time.c:void getnstimeofday(struct timespec *tv) ./kernel/time.c:EXPORT_SYMBOL_GPL(getnstimeofday); ./kernel/timer.c: getnstimeofday(&tp); Binary file ./kernel/timer.o matches

わからない・・・

このへんはkernelの共通部分なのでググれば情報があるかもしれない。 解決法を探す。
結果、クロスコンパイルでやると起こるらしいとの情報。
では実機でやるしかないのか
しかもGCCバージョン4.2でないとうまくいかないとのこと。
うちでmv88f5182の環境でコンパイル一式そろっているのはlennyを入れたLS-GLのみ
バージョンを調べると

lenny1:# gcc --version
gcc (GCC) 4.3.2 20081105 (Red Hat 4.3.2-7)
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

これもなんとかするしかないのか