[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をみてみても同じようになっているため、
    この部分がバグでずっと残って入るとも思えないのですが、どのように対
    処するのが一番正しいのでしょうか?

 -------------
 村上 亨(ムラカミ トオル)