[Armadillo:03421] Re: Armadillo-500 カーネルをeabiでコンパイルする方法について

橋本 佳己 email@hidden
2008年 9月 24日 (水) 11:18:23 JST


To:竹之下様

SFTの橋本です。
いつもお世話になっております。

回答、ありがとうございました。
教えて頂いた内容で確認したところ
「user/openssh」のエラーは無くなりましたが、
「user/pcmciautils」同じようなエラが発生しましたので
下記の様に対応致しましたが
問題ないでしょうか?

【修正前makefileの内容】
build:
	make -C $(SRC_DIR) all \
		OPTIMIZATION="$(CFLAGS) $(EXTRA_CFLAGS)" \
		LDFLAGS="$(LDFLAGS) $(EXTRA_LDFLAGS)" \
		CC=$(CC) LD=$(CC) STRIP=$(STRIP)
	mkdir -p $(INSTALL_DIR)
	make -C $(SRC_DIR) DESTDIR=$(UDEV_DIR)/$(INSTALL_DIR) install

【修正後makefileの内容】
build:
	make -C $(SRC_DIR) all \
		OPTIMIZATION="$(CFLAGS) $(EXTRA_CFLAGS)" \
		LDFLAGS="$(LDFLAGS) $(EXTRA_LDFLAGS)" \
		CC="$(CC)" LD="$(CC)" STRIP=$(STRIP)
	mkdir -p $(INSTALL_DIR)
	make -C $(SRC_DIR) DESTDIR=$(UDEV_DIR)/$(INSTALL_DIR) install

以上、宜しくお願いいたします。


> -----Original Message-----
> From: email@hidden 
> [mailto:email@hidden] On Behalf 
> Of Takenoshita Koyo
> Sent: Tuesday, September 23, 2008 6:03 PM
> To: email@hidden
> Subject: [Armadillo:03416] Re:Armadillo-500 カーネルをeabiでコンパイルする方法について
> 
> 竹之下です。
> 
> まずは、どんなエラーが出ているのか調べてみました。
> 
> > 【make menuconfig設定内容】
> > KernelFeatures--->
> >  [*] Use the ARM EABI to compile the kernel  [*] Allow old ABI 
> > binaries to run with this kernel(EXPERIMENTAL)
> > 
> > 【config.archの修正内容】
> >  過去のメーリングリストに、下記の対応が必要とありましたので
> >   ・atmark-dist/config.arch
> >    先頭に
> >    CPUCFLAGS := -mabi=aapcs-linux
> >    という行を追加。
> >  を追加しました。
> をおこなったあと、
> $ cd atmark-dist
> $ make user/openssh_only 2>&1 | tee make.log [*1]
> 
> make.logを見てみると、一番始めで下記のようなエラーになっています。
> gccのための「-mabi=aapcs-linux」オプションが、makeに渡ってしまっているよ
> うです。
> 
> [ ! -d "user/openssh" ] || make ARCH=arm 
> CROSS_COMPILE=arm-linux- -C user/openssh
> make[1]: ディレクトリ `/home/takenoshita/atmark-dist/user/openssh' に入
> ります
> make -C openssh-4.3p2 LD=arm-linux-gcc -mabi=aapcs-linux
> make: オプションが違います -- a
> make: オプションが違います -- =
> make: オプションが違います -- a
> make: オプションが違います -- a
> make: オプションが違います -- c
> 
> 
> 一応、対策として
> user/openssh/Makefileで下記のように$(CC)を""で囲んであげたところ、
> コンパイルは通りました。
> 
> diff --git a/user/openssh/Makefile b/user/openssh/Makefile 
> index 2c7b852..c6753f7 100644
> --- a/user/openssh/Makefile
> +++ b/user/openssh/Makefile
> @@ -27,7 +27,7 @@ $(SRC_DIR)/Makefile:
>                      $(CONF_OPT) $(CONF_OPT_MISC));\
> 
>  build: $(SRC_DIR)/Makefile
> -       make -C $(SRC_DIR) LD=$(CC)
> +       make -C $(SRC_DIR) LD="$(CC)"
> 
>  romfs: build
>         [ "$(CONFIG_USER_OPENSSH_SSHD)" != "y" ] || \
> 
> 
> ところで、メールタイトルは「カーネル」となっていますが、
> エラーが出ているのはユーザランドの方ですね。
> 
> また、以前のメールで古賀さんが指摘されているように、
> ツールチェーンもEABIのものを使う必要があるのでは無いかと思います。
> http://lists.atmark-techno.com/pipermail/armadillo/2008-Januar
> y/002640.html
> 
> [*1] make ***_onlyで、対象のディレクトリだけmakeすることができます。
>      他には、make linuxでカーネルだけmakeとか。
> 
> 2008-09-22 (月) の 21:41 +0900 に 橋本 佳己 さんは書きました:
> > SFTの橋本です。
> > 
> > [make menuconfig]でEABIを有効にして
> > makeを実行したところ下記のようなエラーが発生しました。
> > 対処方法がわかりませんので、何方かご教示願います。
> > 
> > 【make menuconfig設定内容】
> > KernelFeatures--->
> >  [*] Use the ARM EABI to compile the kernel  [*] Allow old ABI 
> > binaries to run with this kernel(EXPERIMENTAL)
> > 
> > 【config.archの修正内容】
> >  過去のメーリングリストに、下記の対応が必要とありましたので
> >   ・atmark-dist/config.arch
> >    先頭に
> >    CPUCFLAGS := -mabi=aapcs-linux
> >    という行を追加。
> >  を追加しました。
> > 
> > 【エラー内容】
> > # 変数セットのハッシュテーブルの状態:
> > # Load=897/1024=88%, Rehash=0, Collisions=1242/907=137%
> > 
> > # Pattern-specific Variable Values
> > 
> > # パターン指定変数の値なし.
> > 
> > # ディレクトリ
> > 
> > 
> > # 0 個のファイル, 0 個の適用不能ファイル名 (0 個のディレクトリ内).
> > 
> > # 暗黙ルール
> > 
> > # 暗黙ルールなし.
> > 
> > # ファイル
> > 
> > # ファイルハッシュテーブルの状態:
> > # Load=0/1024=0%, Rehash=0, Collisions=0/0=0% # VPATH 探索パス
> > 
> > # `vpath' 探索パスはありません
> > 
> > # 一般の (`VPATH' 変数) 探索パスなし.
> > 
> > # # of strings in strcache: 0
> > # # of strcache buffers: 0
> > # strcache size: total = 0 / max = 0 / min = 4096 / avg = 0 
> # strcache 
> > free: total = 0 / max = 0 / min = 4096 / avg = 0
> > 
> > # Make データベース終了 Mon Sep 22 21:23:52 2008
> > 
> > make[2]: *** [build] エラー 2
> > make[2]: ディレクトリ 
> > 
> `/home/atmark/Desktop/source/dist/atmark-dist-20080617/user/openssh' 
> > から出ます
> > make[1]: *** [all] エラー 2
> > make[1]: ディレクトリ 
> > `/home/atmark/Desktop/source/dist/atmark-dist-20080617/user' から出ます
> > make: *** [subdirs] エラー 1
> > 
> > 以上、よろしくお願い致します。
> > 
> > 
> > _______________________________________________
> > armadillo mailing list
> > email@hidden
> > http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> --
> Takenoshita Koyo
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 





armadillo メーリングリストの案内