私は、同じセクションにいくつかのコードと関連するデータを載せたい、Linuxカーネルモジュールを作成しています。私は特定のセクション名を指定して関数を宣言していない場合はLinuxカーネルモジュールの同じセクションにコードとデータを書き込む
error: foo causes a section type conflict
:私は次のように、属性タグでデータや関数を宣言:私はこれを行うとき
void * foo __attribute__ ((section ("SEC_A"))) = NULL;
void bar(void) __attribute__ ((section("SEC_A")));
しかし、gccがで文句を言います、gccはそれで問題ありません。しかし、私は関数と変数の両方が同じセクション内にあることを望みます。
gccでこれを行う方法はありますか?私のgccのバージョンは、GCCのマニュアルからgcc (Ubuntu 4.3.2-1ubuntu12) 4.3.2
ありがとうございます!そうです、私はマニュアルでそれを見ました。私はモジュール全体を別々のセクションに入れたいだけでなく、いくつかの関数とグローバル変数を入れたいと思っています。これはいくつかの実験的な作業のためのものであり、我々はその下にあるページテーブルに対して何かをしているので、このレイアウトが必要です。 – samgrover
セクション属性は、Linux(2.6、x86)で確実に利用できます。 –