雑記帳
ここはhideyosiの雑記帳です。テケトーに書き散らしてるだけなので間違っていたりとは普通にしてます。信用度は相当低いことをあらかじめご了承を。またご覧のようにWikiを使ってますが、hideyosi意外は書き込めません。
11: 2007-02-11 (日) 14:54:36 ソース バックアップ No.11 を復元して編集 現: 2024-01-06 (土) 22:39:09 ソース 編集
Line 1: Line 1:
-ちょっと脱線の企画・・・(^^;+COLOR(red){''※'' ここは移植の検証やレポートを書いている場所です。LinuxやFreeBSD上ではりぼてOSのコンパイルを行いたい方は、[[こちらのページ:http://thebbl.hideyosi.com/modules/bwiki/index.php?ltmake]]に移動してください。現時点で行える手順やパッチをまとめてあります。} 
 +
 +
 +
 +
 +----
 +
 +
 +ちょっと脱線の企画・・・(^^;
 +----
*バージョン [#n4af26bb] *バージョン [#n4af26bb]
-せっかくなので、安定版の最新版5.5をまっさらにで導入してみよー! -せっかくなので、安定版の最新版5.5をまっさらにで導入してみよー!
Line 8: Line 17:
ちょっと思ったこと。FreeBSDはかつて、Linuxに比べてドキュメントが豊富でまとまっているというのがウリだったと思う。しかし、ひさしぶりにインストールした5.5にはそれはもはや当てはまらないと思う。ports等の使い方や規格が沢山あり、かつ、それらがまったく順を追っていないのだ。つまりシロウトが検索を頼りに文章を読んでいくと、余計な混乱や致命的な失敗を犯すおそれがあると感じた。(もちろん、たまたまここ一年くらいが過渡期なのかもしれないが) ちょっと思ったこと。FreeBSDはかつて、Linuxに比べてドキュメントが豊富でまとまっているというのがウリだったと思う。しかし、ひさしぶりにインストールした5.5にはそれはもはや当てはまらないと思う。ports等の使い方や規格が沢山あり、かつ、それらがまったく順を追っていないのだ。つまりシロウトが検索を頼りに文章を読んでいくと、余計な混乱や致命的な失敗を犯すおそれがあると感じた。(もちろん、たまたまここ一年くらいが過渡期なのかもしれないが)
--さて、qemuを導入できた。ちゃんと動くかどうか、とにもかくにもはりぼての最終版を当てて起動してみよう!+-さて、qemuを導入できた。ちゃんと動くかどうか、とにもかくにもはりぼての最終版を当$てて起動してみよう!
-あっさりOK。つまり、qemuはOKというわけだ! -あっさりOK。つまり、qemuはOKというわけだ!
-*tolset [#ucfdd0dd] 
-さて、それではtolset。こいつらがちゃんと動いてくれるか? ダメなら移植作業がいるよね? 
-~ 
-・・・ま、どっちみちメイクが通らないことにはどうしようもないわけで、とにもかくにもまず、メイクを全ツールで通そうじゃないか。 
-たぶん完了〜。 +COLOR(red){ちと仕切りなおし!古いのは[[FreeBSDではりぼて!/OLD]]に移動〜}
-#ls2(FreeBSDではりぼて!/,)+
-まだまだ!+---- 
 +*tolset移植 [#f7945ca6] 
 +-まずははりぼてCDに入っているtolset(Win版)をBSDに移植。 
 +-[[FreeBSDではりぼて!/tolset移植]] 
 +-移植状況 
 +|Winコマンド|状況|備考|実行実績|h 
 +|aksa.exe|たぶんOK||| 
 +|aska.exe|たぶんOK||| 
 +|bim2bin.exe|たぶんOK||| 
 +|bim2hrb.exe|たぶんOK||OK| 
 +|bin2obj.exe|たぶんOK||OK| 
 +|cc1.exe|たぶんOK||OK| 
 +|cpp0.exe|たぶんOK||| 
 +|edimg.exe|たぶんOK||OK| 
 +|gas2nask.exe|たぶんOK||OK| 
 +|golib00.exe|たぶんOK||| 
 +|makefont.exe|たぶんOK||OK| 
 +|nask.exe|たぶんOK||OK| 
 +|naskcnv0.exe|たぶんOK||| 
 +|nothing.com|OK|つか、作った|| 
 +|obj2bim.exe|たぶんOK||OK| 
 +|osalink1.exe|たぶんOK||| 
 +|sjisconv.exe|たぶんOK||| 
 +|make.exe|×|純正がある|| 
 +|ld.exe|×|gccで代用|| 
 +|imgtol.com|×|ddで代用可能らしい|OK(ddで)| 
 +|comcom.exe|×|ソース失念?|| 
 +|doscmd.exe|×|つか、いらないようだ|| 
 +|sartol.exe|×||| 
 +|t5lzma.exe|×||| 
 +|upx.exe|×||| 
 +|wce.exe|×|||
-**aska [#d44c8c2d] 
--うーん・・・BSDの文句ばっかりになっちゃうけど、(これはオイラがLinuxばっかのため。お許しを)どこになにが入っているのかを把握するのが本当に困難だなぁ。 
-たとえばgccコマンド。whichすれば位置がわかるんだけど、このコマンドがどのカテゴリのなんていうパッケージor portsの中のものなのかが皆目わからない。(なんかコマンドがあるんだろうけど・・・) 
-コンパイル失敗。こんなエラー。 +*1日目 [#gdbea45f] 
-~ +-これだけコマンドが揃ったし、そろそろ実際に実験してみようかな・・・ 
-なつかしいなぁ。以前にもこれで悩まされた。型キャストの指定方法がまーた変化したようですね。ええと。正しい指定方法は・・・と。+-まずは1日目。P18の作業だね。01_day/helloos0 実際にできるかな。 
 +--たはは・・・あっさりうまくいってしまった。(まあこれは当然かな??)
-                                     : +-ほい次。P24。01_day/helloos1 。いよいよnaskの登場だ・・・ 
- #else +--うほぉ! なんかうまく起動したみたいだぞ! 
-         void    Release(void){ DELETEPTR_SAFE((unsigned char*)lpMdlAdr); dwMdlS\ +--つーことはさ。まだ「たぶん」だけどさ。nask、OKっぽいよね??(^^
- ize=0; lpMdlPos=NULL; } +
- #endif +
-                                     :+
- module.h:39: error: ISO C++ forbids cast to non-reference type used as lvalue+-気をよくしてP26。01_day/helloos2 もやっちゃえ!。さて・・・ 
 +--わーっはっは!いけたいけた! 
 +--nask、だいじょうぶみたいじゃん!!
--確か前回は、この「chre*」の指定方法が変わってしまったのでエラーになったんだよね。ええと・・・? +-・・・そうなると課題は、バッチファイルだよね。あと、今回はnaskのパスを作業場所から直接もってきたけど、どっかにまとめておいたほうがいいよなぁ。
--・・・んんん? 「gcc-3.4系では左辺をキャストして代入するのはISO C++で禁止されているとしてエラーになる。なので右辺側をキャストすべし」とな??? えー! どゆこと???+
-**doscmd01 [#nfdc42e4+-おっと!いけない!うっかりしてた。 
-こいつはいろいろとtolsetがいる。他のヤツが完成してからでないとなぁ・・・+-シバシバっと実験してたので、今回はFDにインスコしてないんだよなぁ。これじゃimgtolの実験ができない。(まあ実際はimgtolは移植不可なんだけどね) 
 +-ええと、imgtolの代用品は・・・[[わこうさんの、わこうメモ:http://hrb.osask.jp/wiki/index.php?Linux%2Fwako_memo]]によると、ddが使えるらしい。 
 +-どれどれっと・・・ 
 +--うほ〜!いけた! やった!! OK!
-**edimg [#g8f43e14+*2日目 [#o23ed8f8
-むむ? ライブラリがあるぞ???+-さて2日目。P30の 02_day/hallool3 。 
 +--とんとーんとOK。
 +-P43。 02_day/hallool4。 お? edimg か。さてさて・・・
 +--あー。fdimg-at.tekがいるのか!もってこないと・・・
 +--おぉ!これもいけた! えっと。つーことは、edimg も「たぶんOK」でいいのかな??
-**go_0023 [#n44af228] +-P45。 02_day/hallool5。 こらもう、言わんでも解るやろ!
--ふむふむ〜。まずはrules.makの調整からだね。ええと、FreeBSDでうまくいくかな??? +
--まず、include内のrules.makをrules.mak.orgに変名してとっておく。 +
--おなじinclude内のrules.gccをrules.makにコピー。こっちを雛形にしていこう。 +
--・・・おぉっとぉ! 待った待った! golibやらnaskやら、細かいのを先に作っておかないといけないみたいだなぁ。これ。 +
-***toolstdc [#uc16ed9c] +
--stdcは多分、できるだけWin32の機能に依存しないようにつくられたバージョン。なので、コイツから作る。+
--toolstdcに降りてメイク。当然エラーがでる。(^^  さーて・・・ +-そんなわけで2日目完了〜。
--くっそぉ! なんでだろう? nasklibがコンパイルできない。 +
- ../toolstdc/golib00 out:nasklib.lib ll.o ll_lib.o nask.o +
- unknown file type: ll.o +
--なんだろう。これ? もしかして、ll.oの形式が問題なのかな??? +
--たしか、.oって「オブジェクトファイル」と言われ、最終コンパイルの前の中間ファイルだったよなぁ。 +
--外で宣言されている関数とかそういうのを後回し(未コンパイル?)にし、また、他のobj等のファイルとくっつけるための「のりしろ」を持っている中間ファイル。 +
--これをライブラリアンであるgolib00でまとめているはずなんだけど、そのgolib00がunknounを吐く。 +
- gcc -c -Os -DIN_GCC -DHAVE_CONFIG_H -I../include -o ll.o ll.c +
- gcc -c -Os -DIN_GCC -DHAVE_CONFIG_H -I../include -o ll_lib.o ll_lib.c +
- gcc -c -Os -DIN_GCC -DHAVE_CONFIG_H -I../include -o nask.o nask.c +
--FreeBSD上では、各.cファイルはこんなオプションで.o形式にされている。これらのオプションに問題があるのかな??? +
--・・・おそらくnaskが「BINとCOFF(実際はwin32-COFF)」しか吐けないことを考えると、golib00もこれらしか扱えないのではないかと予測。さらに、普通のGCCはたぶんELFとかa.out形式が標準のはず。たぶんこれのズレではないだろうか? +
--まいったなぁ。.oファイルの形式を調査したりする方法やGCCで他の形式のオブジェクトファイルを吐き出す方法がわからない・・・どうすれがえぇんだろ?? +
--おぉぉ! 形式を判定できるぞ! UNIX系では、 「file」というコマンドでできるのか!よし!!さっそく!+
- $> file ./ll.o 
- ./ll.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (FreeBSD), not stripped 
--おぉ!出た!ふむふむ! 間違いなくELF形式だということは解ったぞ! +*3日目 [#aed96907] 
--まてよぉ??。gccって、コンパイルする段階でCOFFとかのサポートを持たせたりはずしたりできるのか?もしかして?。 +-・・・悪いけど、ここはFreeBSD版tolsetの実験場所なので、harib00a〜harib00d までは飛ばすよ〜ん。(やってること同じだもんね)
--しかも、なんだかFreeBSDのパッケージで用意されているgcc3.4は、そのスイッチがはずされている(つまりCOFFとかをサポートしていない)ってことなのか?? +
--もしそうなら、gccを自分で再コンパイルすればWinCOFF形式の.oを作れるってことかな???+
 +-P58。03_day/harib00e。いよいよ複数ソースのリンクだね。
 +--ふむ・・・。ipl.binとharibote.sysをDOSのコピーコマンドで連結?してるのか。同じことをするには・・・・
 +--おぉ!またしても[[わこうメモ:http://hrb.osask.jp/wiki/index.php?Linux%2Fwako_memo]]にヒントが! なになに? catと使うって???
 +--んんん?ちょっとちがうぞ? イメージ内にコピーするのか!?
 +--あー。完全に勘違いしてた。この場合のcopyはあくまでもedimg内の命令なのか!なので、Makefileそのままの命令で出来上がった!(ちゃんとバイナリエディタで確認したよ。(^^
 +--まあ一応、qemuでも実験・・・(なんも変化がないのでちょっとさみしいね。)
--ちょっと実験。とりあえず現在の状態でもライブラリアンそのものはあり、動く。arコマンドがそうだ。ちょっと試しにarを使ってnasklib.libを作ってみよう。+-harib00f〜harib00h は飛ばして・・・
- gcc -c -o ll.o ll.c +-P66。03_day/harib00j。さーて。いよいよ他のツールが必要になってきた。いけるかな?? 
- gcc -c -o ll_lib.o ll_lib.c +--さてMakefileを追いかけてみる。 
- gcc -c -o nask.o nask.c +---ipl.nasはnaskで.binに。 
- ar rcs nasklib.lib ll.o ll_lib.o nask.o+---asmhead.nasもnaskで.binに。 
 +---naskfunc.nasのnaskで.binに。 
 +---bootpack.cは cc1 -I../haribote/ -Os -Wall -quiet -o bootpack.gas で.gasに。 
 +---bootpack.gasはgas2nask -aで.nasに。 
 +---bootpack.nasはnaskで.objに。 
 +---bootpack.objはobj2bim @Rulefile out:bootpack.bimなんちゃらで、.bimに。 
 +---bootpack.bimは、bim2hrbで.hrbに 
 +---asmhead.binとbootpack.hrbをcopyコマンドで連結してharibote.sysに。 
 +---ipl.binとharibote.sysをedimgで書き込み、haribote.imgに 
 +--うひゃ〜。こりゃ大変だ。(^^; 
 +--そろそろ手動でやるのもつらくなってきたので環境を少し整理。 
 +--まず、現時点で出来上がっている各コマンドを、~/z_toolsにコピー。 
 +--z_toolsにはhariboteディレクトリとその内容物が必要らしいので、CDから持ってくる。 
 +--で、Makefileを書き直してと。よーし! gmake! 
 +--何点か問題が出たけど、とりあえず本の通り、「真っ黒クロスケ」の画面になった!成功くさい!(一瞬だけ、boot from・・なんて文字が出たあと、パっと真っ黒になったのだ)
--これで、とにもかくにもnasklib.libは出来上がった。・・・たぶんこれじゃダメだろうけどね。 +--さてとりあえずは成功。でもけっこうハマッたんだよね。つまらないことだけど。 
--さて問題。で、出来上がったnasklib.libがなぜダメで、どうなっていればいいのか?。さっそく調査・・・+---まず、Makefile内のディレクトリの指定。オイラは最初、自分のホームをあらわす~を使っていた。(~/z_tools とか)これがどうも全滅なんだよね。なので、元のように../でOKになるようにz_toolsの位置を配置しないといけない。もしくは絶対パス。いろいろ実験したけど、とにかく~だけはダメってことみたい。 
 +---同じ原因で、haribote.rul内のディレクトリ指定も、../とか絶対パスじゃないといけないみたい。(おのおの調整してチョンマゲ) 
 +---そんなわけで、この「とりあえずのMakefile」の内容を公開。(qemuのrunとか弄ってないので。あくまでもmakeでharibote.imgを作るとこまで。) 
 + TOOLPATH = ../z_tools/ 
 + INCPATH  = ../z_tools/haribote/ 
 +  
 + MAKE    = gmake 
 + NASK    = $(TOOLPATH)nask 
 + CC1      = $(TOOLPATH)cc1 -I$(INCPATH) -Os -Wall -quiet 
 + GAS2NASK = $(TOOLPATH)gas2nask -a 
 + OBJ2BIM  = $(TOOLPATH)obj2bim 
 + BIM2HRB  = $(TOOLPATH)bim2hrb 
 + RULEFILE = $(TOOLPATH)haribote/haribote.rul 
 + EDIMG    = $(TOOLPATH)edimg 
 + IMGTOL  = dd 
 + COPY    = cp 
 + DEL      = rm -f 
 +  
 + # デフォルト動作 
 +  
 + default : 
 +         $(MAKE) img 
 +  
 + # ファイル生成規則 
 +  
 + ipl10.bin : ipl10.nas Makefile 
 +         $(NASK) ipl10.nas ipl10.bin ipl10.lst 
 +  
 + asmhead.bin : asmhead.nas Makefile 
 +         $(NASK) asmhead.nas asmhead.bin asmhead.lst 
 +  
 + bootpack.gas : bootpack.c Makefile 
 +         $(CC1) -o bootpack.gas bootpack.c 
 +  
 + bootpack.nas : bootpack.gas Makefile 
 +         $(GAS2NASK) bootpack.gas bootpack.nas 
 +  
 + bootpack.obj : bootpack.nas Makefile 
 +         $(NASK) bootpack.nas bootpack.obj bootpack.lst 
 +  
 + naskfunc.obj : naskfunc.nas Makefile 
 +         $(NASK) naskfunc.nas naskfunc.obj naskfunc.lst 
 +  
 + bootpack.bim : bootpack.obj naskfunc.obj Makefile 
 +         $(OBJ2BIM) @$(RULEFILE) out:bootpack.bim stack:3136k map:bootpack.map \ 
 +                 bootpack.obj naskfunc.obj 
 + # 3MB+64KB=3136KB 
 +  
 + bootpack.hrb : bootpack.bim Makefile 
 +         $(BIM2HRB) bootpack.bim bootpack.hrb 0 
 +  
 + haribote.sys : asmhead.bin bootpack.hrb Makefile 
 +         cat asmhead.bin bootpack.hrb >haribote.sys 
 +  
 + haribote.img : ipl10.bin haribote.sys Makefile 
 +         $(EDIMG)  imgin:$(TOOLPATH)fdimg0at.tek \ 
 +                 wbinimg src:ipl10.bin len:512 from:0 to:0 \ 
 +                 copy from:haribote.sys to:@: \ 
 +                 imgout:haribote.img 
 +  
 + # コマンド 
 +  
 + img : 
 +         $(MAKE) haribote.img 
 +  
 + run : 
 +         $(MAKE) img 
 +         $(COPY) haribote.img ..\z_tools\qemu\fdimage0.bin 
 +         $(MAKE) -C ../z_tools/qemu 
 +  
 + install : 
 +         $(MAKE) img 
 +         $(IMGTOL) if=/dev/fd0 of=haribote.img bs=512 count=2880 
 +  
 + clean : 
 +         -$(DEL) *.bin 
 +         -$(DEL) *.lst 
 +         -$(DEL) *.gas 
 +         -$(DEL) *.obj 
 +         -$(DEL) bootpack.nas 
 +         -$(DEL) bootpack.map 
 +         -$(DEL) bootpack.bim 
 +         -$(DEL) bootpack.hrb 
 +         -$(DEL) haribote.sys 
 +  
 + src_only : 
 +         $(MAKE) clean 
 +         -$(DEL) haribote.img
--・・・っていうか、もしかして勘違いかな???。だって、ここの処理はそもそも、nask.exeを作るためのもの。今回はFreeBSD上で動作する実行ファイルを作りたいわけでしょ?。そのためにnasklib.libやgo_lib.libを作るわけでしょ? だとすると、そもそもこれらlibがCOFFである必要性ってあるのかな??? +-さーて。これがうまくいっているってことは以下のコマンド郡は「たぶんOK」に昇格だぜ! 
--そんなわけで、いずれにしてもnask.exeの作成には nasklib.lig と go_lib.lib 、stiin.libが必要だよね。まずはそっちから手をつけてみよう。 +--cc1 
-***go_lib [#xee770c1] +--gas2nask 
--ふむ・・・ここにはズラーっと.cファイルがあるな。よし。とりあえず、ぜーんぶ  gcc -c xxx.o xxx.c  のパターンでコンパイル・・・ +--obj2bim 
--あっちゃぁ〜。またエラーが! +--bim2hrb
- abort.c: In function `GO_abort': +
- abort.c:7: error: `GO_TERM_ABORT' undeclared (first use in this function) +
- abort.c:7: error: (Each undeclared identifier is reported only once +
- abort.c:7: error: for each function it appears in.) +
--やっと突き止めた。なぜかabort.c内ではまったく宣言されていない定数 GO_TERM_ABORT が使われている。 +
--じゃあどこかっていうと、 ../include/go_lib.h内じゃん。じゃあ、#include "../include/go_lib.h"を追加と・・・ +
--できたー! +
--別件が発生。 +
- gcc -c -o vfprintf.o vfprintf.c +
- vfprintf.c:9: error: syntax error before '*' token +
- vfprintf.c: In function `GO_vfprintf': +
- vfprintf.c:14: error: `format' undeclared (first use in this function) +
- vfprintf.c:14: error: (Each undeclared identifier is reported only once +
- vfprintf.c:14: error: for each function it appears in.) +
- vfprintf.c:14: error: `arg' undeclared (first use in this function) +
- vfprintf.c:15: error: `stream' undeclared (first use in this function)+
--むむむむ・・・どこが間違いなんだろう? まさか、askaの時に出る型キャストの関係か!? +*ちょっと一息・・・ [#ec5030c4] 
- vfprintf.cの9行目 +-さて、この一連の作業はなにをしているかっていうと、tolsetがFreeBSDで使えるか。FreeBSDで「30日で出来る!OS自作入門」を進めていけるか。ということの検証。 
- int GO_vfprintf(GO_FILE *stream, const char *format, va_list arg)+-そう考えると、現時点ではまだいくつかのtolsetのコマンドの移植が未完だけど、実はhariboteでは使われていないものも結構あるよね。 
 +-なので、そいつらをちょっと洗い直し。(初出順に並べ替え)
 +|Winコマンド|移植状況|Makefile内初出|実行実績|h
 +|imgtol.com|×|1日目|OK(ddで)|
 +|nask.exe|ほぼOK|1日目|OK|
 +|bim2hrb.exe|ほぼOK|3日目|OK|
 +|edimg.exe|ほぼOK|3日目|OK|
 +|gas2nask.exe|たぶんOK|3日目|28日で問題発生?|
 +|obj2bim.exe|ほぼOK|3日目|OK|
 +|cc1.exe|ほぼOK|3日目|OK|
 +|bin2obj.exe|ほぼOK|5日目|OK|
 +|makefont.exe|ほぼOK|5日目|OK|
 +|golib00.exe|ほぼOK|27日目|OK|
 +|bim2bin.exe|たぶんOK|29日||
 +|aksa.exe|たぶんOK|×||
 +|aska.exe|たぶんOK|×||
 +|cpp0.exe|たぶんOK|×||
 +|naskcnv0.exe|たぶんOK|×||
 +|nothing.com|OK|×||
 +|osalink1.exe|たぶんOK|×||
 +|sjisconv.exe|たぶんOK|×||
 +|comcom.exe|×|×||
 +|doscmd.exe|×|×||
 +|sartol.exe|×|×||
 +|t5lzma.exe|×|×||
 +|upx.exe|×|×||
 +|wce.exe|×|×||
 +-そんなわけで、これを参考にあとはかいつまんでチェックしていこうっと。
 +-(あれでも、他のツール。make以外でもし使用されてたら誰か教えてチョンマゲ。もういっかいぜーんぶ読むのはキツイです〜)
 +*5日目 [#aba1a18a]
 +-さてそんなわけで、大変申し訳ありまへんがすっ飛ばして5日目〜。
 +-P110。 05_day/harib02i。
 +--わはは! あっさりOKじゃん!!(^^
 +--そんなわけでbin2objとmakefontはOK〜。
 +--せっかくなのでスクリーンショット掲載〜
 +#ref(bsd_s.jpg)
 +--デカイのは[[ここ:http://thebbl.hideyosi.com/modules/bwiki/index.php?plugin=attach&pcmd=open&file=bsd1.jpg&refer=FreeBSD%A4%C7%A4%CF%A4%EA%A4%DC%A4%C6%A1%AA]]クリック〜
 +-ついで〜。Linuxでもできました〜。
 +#ref(lin_s.jpg)
 +--デカイのは[[ここ:http://thebbl.hideyosi.com/modules/bwiki/index.php?plugin=attach&pcmd=open&file=lin1.jpg&refer=FreeBSD%A4%C7%A4%CF%A4%EA%A4%DC%A4%C6%A1%AA]]クリック〜
 +*10日目 [#n1bf6d7f]
 +-さて〜。なんとな〜く10日目もやりますか。
 +-P210。10_day/harib07d。(マウスが動いてるので楽しみ)
 +--うほほ〜い! これも問題なーし!(マウス動く〜(^^ )
-*imgtol0d [#a8a019ec+ 
-*osalink1 [#y9c62766+*15日目 [#d4742b59] 
-*sartol0j [#k7fd4342+-どーんとすっとばして15日目〜。 
--???。それに、sargow32.libって・・・・ +-P307。15_day/harib12g。(いよいよマルチタスク!) 
-*hrblib0a [#pffff331+--いけたいけた〜。よーし!どんどんいくぞ〜! 
--??? + 
-*obj2bi4c [#g0283147+*20日目 [#g10d6361] 
--これはaskaがいるらしい。後で・・・ +-さらにすっとばして20日目〜。 
-*tk5lgpl1 [#h56285e8+-P415。20_day/harib17h。 
--あれれ〜? これ、ソースってどれなのかな???+--これまた問題な〜し 
 + 
 +*25日目 [#v20669aa
 +-ラストスパート。25日目〜。 
 +-P536。25_day/harib22j。そうだ!そのとおり!もっとOSらしく! 
 +--問題な〜し。アプリも動くぞ〜! 
 + 
 +*28日目 [#n8b2d3d7
 +-P622。28_day/harib25g。 
 +--ありゃりゃ? ちょっとおかしいぞ?これ? 
 +--あーー! そうか!Makefileで下の階層に行くようになったのか!だからうまくいかなかったのだ! 
 +--シコシコと各Makefileを直してと・・・ 
 +--いけたーーー!-------------(゚∀゚)------------- 
 + 
 +*29日目 [#kb429271
 +-P644。29_day/harib16e。 
 +--エラーーーーーー!!!! 
 +--ちょっとどうしてもアカンエラーが出たのでMakefile細工して無理やり通したけど、コンソールで文字がまったく表示されないって状態になっちゃった・・・・ 
 +--なんじゃろう??。これ? gas2naskの問題?それとも?? 
 + ../../../z_tools/gas2nask -a tek.gas tek.nas 
 + skip:shrdl      $16, %edx, %eax 
 + gmake[1]: *** [tek.nas] Error 1 
 + 
 + 
 + 
 +-えーーっと。tek.cは29日から導入された圧縮の関数だよね。で、これは 
 +--cc1 を使い、.gasに変換 
 +--gas2naskを使い、.nas に変換。 
 +-で、このときにエラーが出ていると・・・ 
 +-どれどれ・・・.gasって、テキストで覗けるんだっけ?? 
 +-おお!覗ける。で、あったあった・・・。出来上がっている.gasの925行目。 
 +                 : 
 +       movl    -16(%ebp), %eax 
 +       mull    %ecx 
 +       shrdl  $16, %edx, %eax   <-これだ! 
 +       shrl    $16, %edx 
 +       movl    %eax, -32(%ebp) 
 +       movl    %edx, -28(%ebp) 
 +                 : 
 + 
 +-さて、ここでしばし考察。 
 +--これ、Windows版だとエラーにならないんだよね?(当たり前だけど) 
 +--Windows版のほうだと、このtek.gasはどうなっているんだろう。 
 +--もし同じなら、cc1は問題なし。gas2naskに問題があるといえる。違っていたらcc1に問題があるということかな??? 
 +--どれどれっと・・・ 
 +--がーーん! ''まったく同じ''じゃないか! そうすると、移植版のgas2naskに問題があるのか! 
 + 
 +-・・・おんやあぁぁぁ????  同じパッチで作ったLinux版だと、このエラーは出てこないぞ??? 
 +--Linux版。これはVineLinux4.0。gccは 
 + $ gcc -v 
 + /usr/lib/gcc-lib/i386-vine-linux/3.3.6/specs から spec を読み込み中 
 + コンフィグオプション: ../configure --prefix=/usr --mandir=/usr/share/man 
 + --infodir=/usr/share/info --enable-shared --enable-threads=posix 
 + --disable-checking --with-system-zlib --enable-__cxa_atexit 
 + --host=i386-vine-linux 
 + スレッドモデル: posix 
 + gcc バージョン 3.3.6 release (Vine Linux 3.3.6-0vl7) 
 +--FreeBSD版は5.5で 
 + $ gcc -v 
 + Using built-in specs. 
 + Configured with: FreeBSD/i386 system compiler 
 + Thread model: posix 
 + gcc version 3.4.2 [FreeBSD] 20040728 
 + 
 +-ふーむ・・・gccのバージョンの問題だろうか???Linuxのほうを3.4にして実験してみるかな?? 
 +-いやぁ!待った待った!! Linux版でも、エラーこそ出ないでコンパイルできたけど、やっぱりコンソールがなにも表示されない状態になっている!!!やっぱりこれはgas2naskで問題が起こっているのか!? 
 + 
 +-むむむーー! gas2naskの問題、解決かな??? (^^ 
 +-コンパイルもエラーがなくなった!。これまでにあった、コンソールの文字が表示されない問題もクリアした。これでいけたーーーー! 
 +-・・・っとどっこい! (世の中そんなに甘くない!) 
 +-5lzmaがないってエラーが出てる・・・。このエラーを履きながらも、コンパイルは無事に進んでくれるんだけど、今度はすべての.hrbが「.hrb file format error.」と言われ、実行できない。 
 +-5lzmaを移植せにゃならんか!!。たしかこれ、すんげーエラー吐いて手が付けられなかったんじゃなかったっけ・・・(汗 
 + 
 + 
 +-ぐはぁ! キターーー! 
 +-なんとあっきぃさんが見事5lzmaの移植を完了! 
 +-あわせてあっきぃさんによるbim2binの修正がうまくいき、なんとこの問題は解決!!!! 
 +-うほ! 29_day/harib26b から止まっていた移植がすすむ!動作確認!!! 
 +-どすこーーーい!! 29日目、完了!!! 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +*30日目 [#n28c4f03
 +-いよいよラスト〜! はたして!!! 
 +-P678。30_day/harib27f。ラストーー! 
 +-キター!問題ねーー! 
 +---- 
 +
 +
 + 
 +CENTER:SIZE(25){--- はりぼてOS。移植、全て完了! ---} 
 +
 +
 +~