テスト用のカーネルスケジューラのコンパイルに問題があります。
コンパイルエラー
linux-2.6.32-rc3/include/linux/compiler-gcc.h:86:30: fatal error: linux/compiler-gcc5.h: No such file or directory
カーネルが古すぎるため、このエラーが発生しますか?
コア
uname -r
4.1.0-3-generic
湾岸協力協議会
gcc --version
gcc-5.real (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010
もしそうなら、これがコンパイルエラーの原因であれば、どのような回避策を使用できますか?たとえば、カーネルを更新する必要がありますか?どうすればいいですか?それとも古いバージョンのgccに戻りますか?他の提案?
答え1
3.18より前のカーネルはgcc 5にコンパイルできません。古いコンパイラを使用してください。
答え2
3.xxカーネルをコンパイルするためにgcc-4.9をインストールすることができます。
しかし、次の質問は「カーネルコンパイルのためにgcc-4.9に切り替えるには?」
代わりに、より簡単な答えはここにあります- 失われたファイルをinclude/linux
フォルダにダウンロードするだけです。
残念ながら、gcc5は「好きではない外部インラインgrep -sRl "extern inline" .|xargs sed -i -e "s/extern inline/inline/g"
完全なビルドなので、コンパイルを進める前にすべてのカーネルソースを進める必要があります。
答え3
カーネルのソースコードはありません。コンパイラはこのヘッダファイルを探しています。
このリンクは、あなたが探しているものとほぼ同じカーネルソースツリーバージョンを提供します。
https://cdn.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/linux-2.6.32.71.tar.xz
答え4
簡単に言えば、以前のバージョンのGCCを入手し、make CC=gcc-4.9
カーネルディレクトリのgccバージョンに4.9
コンパイルします。