(toppers-users 3554) Re: TOPPERS/JSP jsp-1.4.4_full.zip cq_frk版素直に動作せず

koizumi yoshiyuki koizumiyoshiyuki @ gmail.com
2011年 10月 9日 (日) 12:13:39 JST


 こいさんです

makeがアボートする件進展がありました。
又、前回のメールでgenoffsetの入れ替え情報は誤りです。関係有りませんでした。誤った情報を流し申し訳ありませんでした。


 CodeSourceryのGCCを使ってcq_frk_nxp_armがCygwinでmakeが出来ない件は原因は3つあります。

1 パス名が”c:”になってしまう
ASPのmakedepにはこの処理が含まれていました。

2 パス名、ファイル名にブランがある場合
Makefile.dependファイルのブランクパス名も以前に問題になっていたようです。ブランクが2つ以上ある時の処理がもれていると、以前のメーリングリストにありました。こちらも、ASPのmakedepでは修正されています。

3 1を修正後makeがアボートする
こちらは以前小生が質問した、ASPのカーネルライブラリをWindowsで作成できない件と同一だと思います。(Cygwinのmakeの依存関係の記述に制限があるよです)ASPでは回避されていますが、JSPには盛り込まれていないようです。
JSPではASPとは異なり、常にライブラリを作成するので、ASPのmakedepを使うならmaikeファイルのライブラリソースの依存関係作成時に”ーS”を追加する必要があります。

修正部Makefileの抜粋
---
$(KERNEL_LCSRCS:.c=.d): %.d: %.c
 $(PERL) $(SRCDIR)/utils/makedep -C $(CC) -S -T "$($*)" \
  -O "$(foreach sym,$($*),-D__$(sym:.o=)) \
  $(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
---

上記の検証は、ASP版のmakedepを使いました。しかし、ASP版のmakedepをJSPで使って、他の問題を起こさないか小生には判断できません。コメント等を見るとオプションなどに違いがあります。単純に入れ替えると別な問題が出そうな気がしています。
 いずれの問題も以前話題に挙がったようなので、全部入りの新規リリースには盛り込んで欲しい気がしますね。

上記の処理を行なっても、Buildのchkでが通らない問題が残っています。
perlがらみの問題はミラバケッソ本(正しくはアルパカ本)を読みながら調査しました。こちらの問題はC言語だと思うので、何とかなると思っています。
----
../cfg/chk -m jsp.syms,jsp.srec \
                        -obj -cs jsp.chk -cpu armv4 -system cq_frk_nxp_arm
Program failed in its process by following reason.
  Internal error: Unknown symbol (Probably, Symbol table was stripped)
make: *** [jsp.exe] Error 1
----
 GCC3では動作しています。CodeSourceryのGCCの場合に発生。ABIとEABIの差なのでしょうか。chkが何をどのようにチェックしているのから調査ですね。
何かヒントがあれば情報をお願いします。

以上
2011年10月5日22:07 koizumi yoshiyuki <koizumiyoshiyuki @ gmail.com>:

>   こいさんです
>
> CodeSourceryでも動作しました。
> CygwinでコンパイラはCodeSourceryを使ってcq_frk_nxp_arm(LPC2388)のBuildと実行が出来ました。
> 注意点は以下の通り
>
> 1 config\armv4\Makefile.configのTARGETをarm-elfからarm-none-eabiに修正
>  2 CodeSourceryのインストールのパスにブランクを使用しない
> (標準のインストール先はブランが入っています)
>
> 3 utilsのスクリプトgenoffsetとmakedepをASP版に入れ替える
>
> 4 chip_config.cの割り込みベクタコピーを必ず実行するように修正
> (条件を削除する)
>
>> config\armv4\cq_frk_nxp_arm\Makefile.configのCOPTS、LDFLAGSの-mcpuをarm9tdmiからarm7tdmiに修正
>  (修正しなくても動作するが、気持ちの問題?)
>
>> ツールのインストールパスにブランクが有ってもASPは動作しているので、なんらかな回避策があると思うが断念。ブランが有るとmakeがabortします。
>
> 以上
> 2011年10月2日9:03 koizumi yoshiyuki <koizumiyoshiyuki @ gmail.com>:
>
>> こいさんです。
>>
>> TOPPERS/JSPのcq_frk_nxp_arm(LPC2388)をCygwinでBuildがうまく行きました。
>> コンパイラをCodeSourceryではなくgnuarmのgcc-3.4.3で試したところOKです。(尚、gcc-4.0.2ではCygwinとのバージョンがらみらしいエラーが発生しました)
>>
>> 色々なコメントをいただき、有難うございました。
>>
>> 以上
>>
>> 2011年9月28日22:57 koizumi yoshiyuki <koizumiyoshiyuki @ gmail.com>:
>>
>>>  有難うございます。
>>>
>>> パスが有ってない問題はASPのmakedepを入れると回避できる事は確認しました。しかし、次のmakeでAbortedになります。
>>>  ここでめげてしまいました。
>>> Abortが何処で出ているのか解析出来ずにいます。
>>> 時間が取れたら、しこしこやっています。utilsのスクリプトを適当に入れ替えればとも思いますが、適当には気が引けますね。
>>>
>>> ASPで同じ処理が出来ているので、ヒントが欲しいと思っています。気長に考えます。(少々恥ずかしいのですが、perlまで手が回っていません)
>>>
>>> windowsのサポートは困難な状況は理解しました。
>>>
>>>
>>>
>>> 2011年9月28日14:02 Masaki Muranaka <monamour @ monaka.org>:
>>>
>>>> こんにちは.
>>>>
>>>> ざっと状況を眺めてみると,
>>>> 「Windowsの時のサポート」ではなくて「MinGWベースのコンパイラとCygwinのツール群を使った時のサポート」というのが
>>>> 正しいそうですね.
>>>> Cygwin環境下のコンパイラでは類似の報告が出ていませんし,MinGW + MSYS がベースの PizzaFactory
>>>> でも問題なくビルドできています.
>>>>
>>>> 個人的にCygwinは(いわゆる"宗教上の理由"で好まないので)試しませんが,ASP の makedep を単にコピーしてきて,
>>>> rm Makefile.depend してから,再度 make depend するだけでも解決するような気もします.
>>>> Makefile.depend が壊れていると,make depend だけでなく make clean もできなくなるはずです.
>>>>
>>>> もしそれでもダメなら,ドキュメントが推奨する通りにCygwinの環境でビルドしたgccをお使いいただくか,
>>>> ASPのmakedepでの修正をバックポートしたパッチをどなたかがお作りになるのを待つ(か,ご自身でお作りになる)
>>>> ということになるのだろうと思います.
>>>>
>>>>
>>>> 2011年9月23日13:38 koizumi yoshiyuki <koizumiyoshiyuki @ gmail.com>:
>>>> >  こいさんです
>>>> >
>>>> >  JSPがWindowsでBuildできない件(make dependで失敗)の詳細情報です。(前回の説明が良くなかったと反省)
>>>> >
>>>> > 1) perl ../configure -C armv4 -S
>>>> > cq_frk_nxp_armを実行し、make depandを実行するとエラーが発生する。
>>>> >
>>>> > Makefile.depend:20: *** multiple target patterns.  Stop.
>>>> >
>>>> > 2) Makefile.dependの以下の記述が変だと思う
>>>> >
>>>> >  c:\\program\ files\\codesourcery\\sourcery g++
>>>> >
>>>> lite\\bin\\../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/include/_ansi.h
>>>> > \
>>>> >  ASPを見ると以下のようになっています。
>>>> >
>>>> >  /cygdrive/c\\program\ files\\codesourcery\\sourcery\ g++\
>>>> >
>>>> lite\\bin\\../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/include/machine/ieeefp.h
>>>> > \
>>>> >  c:とg++のブランクが違っている。
>>>> >
>>>> > 3) Makefile.dependをc:とg++を修正すると、今度は別なエラーが発生する
>>>> >
>>>> > Makefile.depend:20: *** multiple target patterns.  Stop.
>>>> >
>>>> >  ファイルパスの指定がWindowsの時のサポートが不完全だ思っています。ASPでは出来ているので、回避策をご存知の方はいませんでしょうか。
>>>> >
>>>> >  以上
>>>> >
>>>> > 2011年9月17日16:11 koizumi yoshiyuki <koizumiyoshiyuki @ gmail.com>:
>>>> >>
>>>> >>  こいさんです。
>>>> >>
>>>> >>  しばらく無沙汰(遠ざかって)をしていました。復活すべき努力を開始した処です。
>>>> >>  Cortex-M3関連でメールが出ていますが、応答せずにすみませんでした。
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>>  ARMv5の割り込みまわりを調べています。ASPのCotex-M3をやったことがあり、LPC2388のボードが有るので、jsp-1.4.4_full.zip
>>>> >> cq_frkで始めることにしました。
>>>> >>  が、素直には動作しませんでした。2件を残しBuildが出来ましたので、経緯を報告して於きます。
>>>> >> (なぜかASPでは無くJSPで始めました)
>>>> >>
>>>> >>  私がはまったところを連絡します。
>>>> >>
>>>> >> 1 CFGがBuildできない
>>>> >>
>>>> >>
>>>> >> ./base/parser.cpp:300: error: unknown escape sequence: '\220'
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>  が出ます。色々トライしましたが・・・なんとなく文字コード誤りらしいのでEUC版でBuildしたらOKです。
>>>> >>  小生、開発環境はWindowsです。shift-JIS版はCygwinではBuildeできないのでしょうか。
>>>> >>  開発環境の問題です。ここにはまったのは私だけですかね。何か、回避策を期待しています。
>>>> >>
>>>> >> 3 Configuerが通らない
>>>> >>
>>>> >>
>>>>  コンパイラの名前が違っている。オリジナルarm-elfで小生はarm-none-eabiです。CFGはnoneで出来たのに、なぜ、カーネルのBuildはCFGと同じでは無いのか?
>>>> EUCとSHift-JISの問題、違うよね
>>>> >>
>>>> >>  config\armv4\Makefile.configを修正して進む。
>>>> >>
>>>> >> 3 コンパイラのターゲットがarm9になっている
>>>> >>  IF誌の付録ボードなのでarm7ですね。
>>>> >>
>>>> >> config\armv4\cq_frk_nxp_arm\Makefile.configを修正。2箇所
>>>> >>
>>>> >> 4 make dependがおかしい?
>>>> >>  make dependの後makeを行なうとエラー
>>>> >>   エラーメッセージ
>>>> >>
>>>> >> $ make
>>>> >> Makefile.depend:20: *** multiple target patterns.  Stop.
>>>> >>
>>>> >>  原因はdependで作ったMakefile.dependのパス指定がおかしいようです。
>>>> >>
>>>> >>  c:\\program\ files\\codesourcery\\sourcery g++
>>>> >>
>>>> lite\\bin\\../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/include/_ansi.h
>>>> >> \
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>>  パスの区切り指定が\\になっているものを全て削除した処、取りあえずBuild出来た。ASPはできるので、depend関連の何かが悪さをしていると思う。
>>>> そこでutils\makedepをASP版からコピー。しかし、\\はなくなるが、makeはAbort(core
>>>> >> dumped)になってしまう。
>>>> >>
>>>> >>
>>>> >> 4 Buildの最後のchkでエラー
>>>> >>  エラーメッセージ
>>>> >>
>>>> >> ../cfg/chk -m jsp.syms,jsp.srec \
>>>> >>                         -obj -cs jsp.chk -cpu armv4 -system
>>>> cq_frk_nxp_arm
>>>> >> Program failed in its process by following reason.
>>>> >>   Internal error: Unknown symbol (Probably, Symbol table was
>>>> stripped)
>>>> >> make: *** [jsp.exe] Error 1
>>>> >> C:\TOPPERS_JSP\jsp-1.4.4-full\OBJ2>
>>>> >>
>>>> >>  以上で、取りあえずBuildは出来ているようになりました。
>>>> >>
>>>> >>  2)、3)の回避策があればお教え願います。
>>>> >>
>>>> >> 以上
>>>> >>
>>>> >
>>>>
>>>
>>>
>>
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://www.toppers.jp/pipermail/users/attachments/20111009/b4d6eeaa/attachment.html>