Forums: Forum d’aide (Thread #512)

カーネルのコンパイル (2002-05-23 15:08 by hirotada #769)

はじめまして。レベルの低い質問で恐縮なのですが、カーネルのコンパイルで困っています。
arch/h8300/kernel/ksyms.c の struct symbol_table arch_symbol_table を定義しているところで initialization of zero-length array before end of structure のエラーが出てしまいコンパイル出来ずにいます。同じような経験をした、あるいは解決方を御存知の方はいらっしゃらないでしょうか。
binutils 2.11.2 + gcc 3.0.4でWindows2000+CygwinとDebian Linuxのどちらでやってもこうなってしまいます。

Répondre à 769×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: カーネルのコンパイル (2002-05-31 00:19 by ochiai #855)

gcc-3.0だからではないでしょうか。
私はgcc-2.95.3でソースから全部コンパイルしましたがうまく構築できまたよ。
パッチもgcc-2.95.x用だったと思います。
Répondre à #769

Répondre à 855×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: カーネルのコンパイル (2002-06-03 22:20 by ysato #874)

eCosの更新が終わったので、こっちに復帰します。
亀な発言ですね。ごめんなさい。

問題の部分は、このパッチで解決出来ると思います。
環境がないので、未テストです。

--- arch/h8300/kernel/ksyms.c.old Mon Apr 29 20:19:40 2002
+++ arch/h8300/kernel/ksyms.c Mon Jun 3 21:45:24 2002
@@ -17,7 +17,7 @@

extern void dump_thread(struct pt_regs *, struct user *);
extern int dump_fpu(elf_fpregset_t *);
-
+#if 0
static struct symbol_table arch_symbol_table = {
#include <linux/symtab_begin.h>
/* platform dependent support */
@@ -45,10 +45,10 @@

#include <linux/symtab_end.h>
};
-
+#endif
void arch_syms_export(void)
{
- register_symtab(&arch_symbol_table);
+ /* register_symtab(&arch_symbol_table); */

/*our_syms_export()*/
}

ただ、linux 2.0.xのカーネルが、GCC 3.0.4で問題なくコンパイル出来る保証
がないので、他のところで引っかかる可能性は十分にあります。

以下、余談
2.95.3でも新しすぎなんですが、今のところ問題が起きていないので、気にしな
いで使ってます。
時期的には、2.7.2.3辺りがちょうどいいんですが、クロスコンパイラとしての
安定性が(?)だったので、その時の最新だった2.95.3を使ってます。
(あれ、3.0出てたっけ?)

そういえば、モジュールは使えないので、このテーブルは意味がないのか。
組み込まれないようにするか。

Répondre à #769

Répondre à 874×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: カーネルのコンパイル (2002-06-05 19:12 by hirotada #877)

言い出しっぺのレスポンスが悪くて大変申し訳ありません。
gcc-2.95.3にしたら(この部分は)通るようになりました。ユーザランドの構築方法のドキュメントでgcc-3.0.4を使っていたのでカーネルも3.0.4でいけるのかと勘違いしていました。確かにLinux2.0.xのカーネル自体3.0.4でコンパイルできるかどうかはかなり怪しそうですね。
せっかくパッチを作っていただいたので後で試してみます。ありがとうございました。
Répondre à #769

Répondre à 877×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion