[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:29586] Re: #include<linux/sched.h> のエラー



小川といいます。

Masatoshi Iwasaki <pisogoo@xxxxxxxxx> writes:

> 現在カーネルモジュールを作っているのですが、
> その際Debianに固有の問題なのではと思われるエラー
> に遭遇しました。
> 
> 問題を一言でいうと、#include<linux/sched.h>
> の一行を入れると、sched.hもしくはsched.hの
> インクルードするファイルから大量のエラーが出て
> コンパイルが出来ないという現象です。
> ところが、全く同じコードを使ってRedHatLinux6.2J
> 上でコンパイルした場合、全くエラーがでない
> のです。

[...]

> ---------------------Makefile----------------------------
> 
> CC=gcc
> MODCFLAGS := -Wall -DMODULE -D__KERNEL__ 
> 
> hello.o:	hello.c /usr/include/linux/version.h
> 					$(CC) $(MODCFLAGS) -c hello.c
> 
> clean:
> 	rm -rf *.o
> --------------------------------------------------------

[...]

> 
> RHLで通るので、可能性としては双方のGCCなど関連するソフトの
> バージョン違いかとにらんでいるのですが、以前Debianではkernel
> もオリジナルのkernelに手を加えているという話を聞き、ならば
> kernel周辺にも独自の変更が加えられている可能性もあるな、と
> も考えています。私が何か非常に単純な見落としをしてる可能性も
> あるかもしれませんが。。

うちの potato で試してみました。
下記の変更で、コンパイル出来るようになるみたいです。

MODCFLAGS := -Wall -DMODULE -D__KERNEL__ -I/usr/include
                                         ^^^^^^^^^^^^^^
(おそらく、-O も付けないと別な所で、インライン展開ができずにエラーにな
りそうな気がしますが...)

RedHat を使ったことがないのですが、たぶん gcc のディレクトリを見る順番
が違うように思えます。 (specs に違いがあるのかな?)
-- 
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>