構築しようとしています。IBCS(ソースはこちら)Ubuntu 15.10(Linux 4.2.35)。
このモジュールはドキュメントに存在しなくなったオプションをCONFIG.i386
提供したので、明らかに非常に古いものですが、変更するとうまくいくようです。gcc
-m486
-march=native
ファイルには次の内容がemulate.c
含まれています。#includes
#include <linux/config.h>
#include <linux/module.h>
#include <linux/version.h>
#include <asm/uaccess.h>
私のシステムではlinux/version.h
。しかし、次はうまくいくようです。
#include "/usr/include/valgrind/config.h"
#include "/usr/include/sepol/module.h"
#include <linux/version.h>
#include </usr/src/linux-headers-4.2.0-35/include/linux/uaccess.h>
(もちろんYMMVがなければsepol
。)
これはうまくいきます。ただし/usr/src/linux-headers-4.2.0-35/include/linux/uaccess.h
、その上には次のものがあります。
#include <asm/uaccess.h>
見つかりませんでした。
orフォルダがないようですasm
。私も一つ持っているのにありません。/usr/include
/usr/include/linux
/usr/include/asm_generic
uaccess.h
私の質問は次のとおりです
最新のカーネルヘッダにファイル自体を提供するのではなく、(明らかに)存在しないファイルへの参照が含まれているのはなぜですか?
コンパイルに必要なバージョン
asm/uaccess.h
やその他のヘッダーはどこで入手できますか?
答え1
iBCSは廃止され、次の目的で使用されました。長い時間。 Linux内部にはあまりにも多くの変更があり、初期の4.xカーネルでもまだコンパイルされる可能性があります。今日は Linux Abiしかし、2013年からなくなりました。おそらく、今日のbinfmtモジュールの1つがこれを行うことができます。