コンパイル(6)



しばらくして

UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
arch/arm/mach-feroceon/built-in.o: In function `BuffaloGpio_EthLedOff':
proc.c:(.text.BuffaloGpio_EthLedOff+0x10): undefined reference to `buffalo_link_led_off'
arch/arm/mach-feroceon/built-in.o: In function `BuffaloGpio_AllLedOff':
proc.c:(.text.BuffaloGpio_AllLedOff+0xbc): undefined reference to `buffalo_link_led_off'
arch/arm/mach-feroceon/built-in.o: In function `BuffaloGpio_EthLedOn':
proc.c:(.text.BuffaloGpio_EthLedOn+0x10): undefined reference to `buffalo_link_led_on'
arch/arm/mach-feroceon/built-in.o: In function `BuffaloGpio_AllLedOn':
proc.c:(.text.BuffaloGpio_AllLedOn+0x80): undefined reference to `buffalo_link_led_on'
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

include/buffalo/BuffaloGpio.cを見て

BuffaloGpio_AllLedOn(void)
BuffaloGpio_AllLedOff(void)
BuffaloGpio_EthLedOn(void)
BuffaloGpio_EthLedOff(void)

include/buffalo/BuffaloGpio.hを見ると

void BuffaloGpio_EthLedOff(void);
void BuffaloGpio_EthLedOn(void);
void BuffaloGpio_PowerLedDisable(void);
void BuffaloGpio_PowerLedBlinkDisable(void);
void BuffaloGpio_PowerLedEnable(void);

の記述がない
プロトタイプ宣言忘れ

void BuffaloGpio_AllLedOn(void);
void BuffaloGpio_AllLedOff(void);
void BuffaloGpio_EthLedOn(void);
void BuffaloGpio_EthLedOff(void);

defineも足りない。関数名で補完してみるが、引数がわからない。
機能的に必要かは不明だが、コンパイルを通すためにとりあえず入れておく。

#define buffalo_link_led_on(a) BuffaloGpio_LedEnable(BIT_LED_FUNC)
#define buffalo_link_led_off(a) BuffaloGpio_LedDisable(BIT_LED_FUNC)

リトライするが

arch/arm/mach-feroceon/built-in.o: In function `BuffaloGpio_AllLedOn':
proc.c:(.text.BuffaloGpio_AllLedOn+0x5c): undefined reference to `BuffaloGpio_PowerLedEnable'
arch/arm/mach-feroceon/built-in.o: In function `BuffaloGpio_AllLedOff':
proc.c:(.text.BuffaloGpio_AllLedOff+0x84): undefined reference to `BuffaloGpio_PowerLedDisable'
proc.c:(.text.BuffaloGpio_AllLedOff+0x88): undefined reference to `BuffaloGpio_PowerLedBlinkDisable'

すぐにエラーがでる。
BuffaloGpio_PowerLedEnable
BuffaloGpio_PowerLedDisable
BuffaloGpio_PowerLedBlinkDisable

も追加する。結局全部で以下を追加することになった。

// add 2011-06-15
void BuffaloGpio_AllLedOn(void);
void BuffaloGpio_AllLedOff(void);
void BuffaloGpio_EthLedOn(void);
void BuffaloGpio_EthLedOff(void);

void BuffaloGpio_PowerLedDisable(void);
void BuffaloGpio_PowerLedBlinkDisable(void);
void BuffaloGpio_PowerLedEnable(void);
void buffalo_link_led_on(int);
void buffalo_link_led_off(int);

#define buffalo_link_led_on(a) BuffaloGpio_EthLedOn()
#define buffalo_link_led_off(a) BuffaloGpio_EthLedOff()
#define BuffaloGpio_PowerLedEnable() BuffaloGpio_LedEnable(BIT_LED_ALARM)
#define BuffaloGpio_PowerLedDisable() BuffaloGpio_LedDisable(BIT_LED_ALARM)
#define BuffaloGpio_PowerLedBlinkDisable() BuffaloGpio_LedBlinkDisable(BIT_LED_ALARM)
// add end

コンパイル再開。
問題なく通ったようだ。