(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の割り込みベクタコピーを必ず実行するように修正
> (条件を削除する)
>
> 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)の回避策があればお教え願います。
>>>> >>
>>>> >> 以上
>>>> >>
>>>> >
>>>>
>>>
>>>
>>
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://www.toppers.jp/pipermail/users/attachments/20111009/b4d6eeaa/attachment.html>