[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:37091] sparc64でカーネルコンパイルエラー
村上です。
SUN Netra t1 に、woodyをインストールしました。
とりあえずインストールはできたのですが、RAID構成にするためにカー
ネルをコンパイルしようとしたのですが、コンパイル途中でエラーになり
ます。
コンパイルしようとしたカーネルは、kernel-source-2.4.20 です。
————————————————————————————
:
sparc64-linux-gcc -D__KERNEL__ -I/usr/src/kernel-source-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare -Wa,--undeclared-regs?? -nostdinc -iwithprefix include -DKBUILD_BASENAME=sparc64_ksyms? -DEXPORT_SYMTAB -c sparc64_ksyms.c
sparc64_ksyms.c:63: conflicting types for `kernel_thread'
/usr/src/kernel-source-2.4.20/include/linux/sched.h:809: previous declaration of `kernel_thread'
make[2]: *** [sparc64_ksyms.o] Error 1
make[2]: Leaving directory `/usr/src/kernel-source-2.4.20/arch/sparc64/kernel'
make[1]: *** [_dir_arch/sparc64/kernel] Error 2
make[1]: Leaving directory `/usr/src/kernel-source-2.4.20'
make: *** [stamp-build] Error 2
$
————————————————————————————
エラーの出ている「sparc64_ksyms.c」を見てみると、
extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
と「pid_t」で指定されているにもかかわらず、
/usr/src/kernel-source-2.4.20/include/linux/sched.h で、
extern long kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
と「long」で設定されているためと思われます。
ちなみに、sparc32用の「sparc_ksyms.c」を見てみると、「extern
pid_t kernel_thread〜」は定義されていなかったので、sparc64_ksyms.c
のほうも該当個所をコメントして再コンパイルしたところ、エラー無く終
了することができました。
ただ、本当にこの部分をコメントにしてしまってよかったのかどうかの
判断が付きません。
それに、kernel-source-2.4.18をみてみても同じようになっているため、
この部分がバグでずっと残って入るとも思えないのですが、どのように対
処するのが一番正しいのでしょうか?
-------------
村上 亨(ムラカミ トオル)