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

Masaki Muranaka monamour @ monaka.org
2011年 10月 12日 (水) 10:45:57 JST


TOPPERS users MLのみなさま:
おはようございます.

>  GCC3では動作しています。CodeSourceryのGCCの場合に発生。ABIとEABIの差なのでしょうか。
> chkが何をどのようにチェックしているのから調査ですね。 何かヒントがあれば情報をお願いします。

エラーメッセージから連想した *あてずっぽう* なのですが….
CodeSourcery G++ の無償版では,ランタイムライブラリの一部でデバッグシンボルなど
シンボル情報の一部が故意に落ちているはずです.その辺りは関係無いでしょうか.


2011年10月9日12:13 koizumi yoshiyuki <koizumiyoshiyuki @ gmail.com>:
>  こいさんです
>
>  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の割り込みベクタコピーを必ず実行するように修正
>>  (条件を削除する)
>>
>>
>> 5 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)の回避策があればお教え願います。
>>>>> >>
>>>>> >> 以上
>>>>> >>
>>>>> >
>>>>
>>>
>>
>
>