ページへ戻る

+ Links

 印刷 

hideyosi​/OLD​/GOをLinuxに! のバックアップソース(No.5) :: OSASK計画

osaskwiki:hideyosi/OLD/GOをLinuxに! のバックアップソース(No.5)

« Prev  Next »
*GOをLinuxに!
*GOをFreeBSDにも!

//COLOR(#ff00ff){※現在、goset6のFreeBSD版が難航しています。旧バージョンをそのまま置いておきます}

*goset-006 (2003/12/18)

元祖goが0020に上がったようなので、新しい hideyosi版gosetを作りました。こいつは、

-go_0020相当

++gocc1     (cc1)
++gocpp0    (cpp0)
++gocc1plus (cc1plus)
++nask
++golib00
++naskcnv0
++gas2nask
++sjisconv

-ASKA Ver1.0 β20
-obj2bim3
-osalink1
-bim2bin3
-txt2bin

まで入っているお得なバリューセットです。(なんと、今なら平日、たったの 2.5MB!)
OSASKをLinux・FreeBSD上でビルドするのに必要なものは全て入っています。
また、さらに[[guigui00>GUIGUI00_man]]等のライブラリを追加すればアプリケーションの開発も行えます。

**バイナリ
-Linux用 http://www2.hideyosi.com/~hideyosi/age/goset/goset-006.tgz
-FreeBSD用 http://www2.hideyosi.com/~hideyosi/age/goset/goset-006freebsd.tgz
-解凍して頂くと、goset006 というディレクトリが出てきて、中に全部入っています。
//--以下は旧バージョンです。念のためおいておきます。
//---Linux用 http://www2.hideyosi.com/age/goset/goset-0.0.3.tar.gz
//---FreeBSD用 http://www2.hideyosi.com/age/goset/goset-0.0.3bsd.tar.gz


-VineLinux3.0用RPMパッケージ http://www2.hideyosi.com/~hideyosi/age/goset/goset-006-0hd1.i386.rpm


***上記バイナリの動作実績
-''Linux''
--RedHat9J
---OK!!
--VineLinux2.6
---OK!!
--Debian3.0
---OK!!
-''FreeBSD''
--4.9
---OK!!



**ソース
-http://www2.hideyosi.com/~hideyosi/age/goset/goset006_src.tar.gz
-make install はありませんが、ok というディレクトリに出来上がったバイナリをコピーしてきますので面倒くさくないと思います。


-VineLinux3.0用SRPMパッケージ http://www2.hideyosi.com/~hideyosi/age/goset/goset-006-0hd1.src.rpm



//--以下は旧バージョンです。念のため置いておきます。
//---http://hideyosi.zive.net/age/goset/gosetsrc-0.0.3.tar.gz

-COLOR(#ff0000){ソースからコンパイルする場合、以下にご注意を。}

***Linux
-RedHat9J
---メイク一発で全てコンパイルできます。
-VineLinux2.6・Debian3.0
---gccが3.2系ではないので、gocc1、gocpp0、gocc1plus、nask がコンパイルできません。ただし、 ''make 295'' とすることで、その他をコンパイルできます。


***FreeBSD
-4.9
---gmake、gcc-3.2.1 を導入すれば、コンパイルできます。ただし、aska でちょっと引っかかります。stringx.cpp と stringx.h にそれぞれ一箇所づつある ''tolower()''と''toupper()'' を、''tolower(int x)''と''toupper(int x)'' に書き換えてください。





*この goset-006 を使って、OSASKをLinux・FreeBSD上でビルドすることができます。[[LinuxでOSASKをビルド!]]をご覧ください。




*VineLinuxやFreeBSD等の gcc2.95系BSDでは・・・・

上記の通り、肝心のgocc1・gocpp0・gocc1plus・naskがコンパイルできません。これらをgcc2.95系に移植するのはかなり大変そうなので、予定はありません。(ゴメンチャイ!)

もちろん、「オレがやっちゃる!」と言う勇者の方大歓迎!

*cc1.exeパッチ
cc1.exeで-Iを複数回指定時にインクルードパスが無視されることがある問題の修正。
#ref(patch-goset006src-multiple-include-fix.txt)



















----
-エラーを見ていると2.95系で動くようにするのはいろいろ直さなきゃいけないっぽいので、とりあえず保留にして、Vineに3.2系のgccをインストールする方向で進めるのはどうでしょうか?・・・Vineユーザは面倒だろうとは思いますが、それならそうやって作ったVineで動くバイナリを誰かが公開すればいいわけですし・・・。 -- [[K]] SIZE(10){2003-08-20 (水) 13:17:04}
-バイナリ動かしてみたら, ちゃんと動くOSASK/TWができました。>RedHatで作った実行ファイル -- [[I.Tak.]] SIZE(10){2003-08-20 (水) 14:53:17}
-hideyosiさんに質問です。結局naskはSegV起こしましたか? -- [[(´_ゝ`)]] SIZE(10){2003-08-20 (水) 15:49:35}
-顔文字さんゴメン。まだやってないんだ。もちょっとまっててね?(^^;) >nask -- [[hideyosi]] SIZE(10){2003-08-20 (水) 16:29:50}
-あらためてnaskパッチを見てみると、なんかすごく変な移植をしている部分があるなあ・・・。ひょっとして、そのせいでRed Hatでうまくいかなくなったんじゃ・・・。時間ができたら(っていつだ?)、移植し直してみます。実はgas2naskも不満だったので移植のやり直しをやっています。もうすぐ終わりそうです。・・・ああでも、僕がnaskを移植し直しても、gcc側に問題がある場合は直りませんので、過剰な期待はしないでください。 -- [[K]] SIZE(10){2003-08-20 (水) 17:08:28}
-上記にも書いてますが、現時点では、RedHat9上でコンパイルしたnaskは正常に動かないことが確認されました。顔文字さんのレポートがなかったら、迷宮のラビリンスだったかも・・・。顔文字さん、感謝! -- [[hideyosi]] SIZE(10){2003-08-21 (木) 06:38:55}
-naskの移植完了したよん。[OSASK 6407]みてね。>hideyosiさん  -- [[K]] SIZE(10){2003-08-21 (木) 07:00:03}
-gcc-3.2のライブラリとリンカとmakeがあれば、たぶんosacc1とgas2naskとnaskでLinuxのアプリも作れます。golib00も使えます。ASKA系のツールも使えるけど、ASKAの文法が分かんないだろうから、駄目だなあ。 -- [[K]] SIZE(10){2003-08-21 (木) 07:12:49}
-osacc1でコンパイルしたものはtolset05のcc1と全く同じ (1バイトも違わない) 結果になることをOSASK/TWで確認しました。以下gosetの内容に関するつっこみ。cc1plusはOSASKのメイクには要りません。asksってなんですか? (^^; -- [[I.Tak.]] SIZE(10){2003-08-21 (木) 09:26:13}
-なにぃ!naskが移植?? ・・・・・ひーーー! 展開が速くて追いつけない!!  (^^;) -- [[hideyosi]] SIZE(10){2003-08-21 (木) 09:31:02}
-ぐはぁ!!!  助さんも角さんも、ひでぇやひでぇやぁ! <うっかり八兵衛調  >I.Tak -- [[hideyosi]] SIZE(10){2003-08-21 (木) 09:33:10}
-・・・いま、ふっと思ったんだけど、私みたいにパックにして配布する場合、ランセンスとかって問題になるのかなぁ。うーん・・・・どうなんだろう。分けたほうがいいのかなぁ・・・・ -- [[hideyosi]] SIZE(10){2003-08-21 (木) 09:36:49}
-・・・・新nask・・・あきまへん・・・(セグメンテーション違反ですぅ) (T▽T) -- [[hideyosi]] SIZE(10){2003-08-21 (木) 13:16:10}
-ちなみに、このnaskをメイクするとき、意外と警告が多かったような気が・・・・。ついでなんで、家の自鯖に上げときます。 http://hideyosi.zive.net/~hideyosi/eee.txt -- [[hideyosi]] SIZE(10){2003-08-21 (木) 13:19:21}
-あ、あと、Kタン、こっちはあんまり時間を割かなくても。とりあえず動いているし、まあ、エッチラオッチラ勉強してきますので。 (^^) -- [[hideyosi]] SIZE(10){2003-08-21 (木) 13:26:30}
-あっれぇ・・・新しいnaskは、Vineでコンパイルできないぞ?? -- [[hideyosi]] SIZE(10){2003-08-21 (木) 13:53:57}
-はい、警告多いです。全ての警告に目を通した上で、問題ない内容だったので、面倒だからそのままにしてあります。ダッセーと思う人は、適当に「正しく」キャストしたり書き足したりして、黙らせてください。>nask -- [[K]] SIZE(10){2003-08-21 (木) 14:12:18}
-結局stdc版naskはつかえねーってことですね。ひょっとしたらnask側に本質的なバグが残っているのかな? -- [[K]] SIZE(10){2003-08-21 (木) 14:18:07}
-展開早杉 お い つ け る か Y o ! ! (w これってgccの問題なんでしょうか?Vineのgccに素晴らしいパッチがあるのか、Red Hatのgccに変なパッチがあるのか、Red Hatのgccをコンパイルしたgccが変なのか、そのgccをコンパイルした(ry -- [[(´_ゝ`)]] SIZE(10){2003-08-21 (木) 14:24:26}
-展開早杉<ごもっとも! (^^;) でも、とりあえずこれで一段落でしょうか。 -- [[hideyosi]] SIZE(10){2003-08-22 (金) 12:47:47}
-休日は何MBくらいですか? -- [[nisi]] SIZE(10){2003-08-23 (土) 08:52:38}
-つーか、スラドに載った日はアクセス数がすごかったな・・・ -- [[nisi]] SIZE(10){2003-08-23 (土) 08:53:10}
-wqさんのnaskはgcc2.95でもコンパイルできたんですけど, 新しいnaskはできないんですねえ。新旧nask.cの違いは一行だけなんですけど……なぜこうなったんですか? -- [[I.Tak.]] SIZE(10){2003-08-24 (日) 23:20:40}
-コンパイルできないのは、nask.cなんですか?・・・そうだとしたら、<stdio.h>や<stdlib.h>をオリジナルのものに変えたせいだと思います。というかこれをgcc-2.95用に直せばいいわけです。 -- [[K]] SIZE(10){2003-08-24 (日) 23:24:23}
-っていうか、gc-2.95の場合__builtin_stdarg_start()とかって利用できるのかな?もし使えないなら、va_start()マクロはどういう風に記述するんだろうか?・・・もしgcc-3.2と違うコードに展開されるなら、あちこちいじらないとまずいかもしれません。 -- [[K]] SIZE(10){2003-08-24 (日) 23:29:19}
-naskは2.95でmakeできるように修正できるかも。naskのgcc版をmakeするとどんなエラーが出ますか? -- [[K]] SIZE(10){2003-10-17 (金) 11:31:52}
-naskのコンパイルエラーは go_lib で起きています。 drv_stdc はとりあえず通っているようです。エラーメッセージはこちら。 http://hideyosi.zive.net/wiki/pukiwiki14rc4/?nask_error -- [[hideyosi]] SIZE(10){2003-10-17 (金) 15:04:34}
-ははーん、なるほど、2.95ではcc1にプリプロセッサが入ってないわけか。じゃあMakefileをいじって、cpp0を経由するようにしてやれば解決かも。気が向いたらまたアドバイスします。 -- [[K]] SIZE(10){2003-10-17 (金) 15:56:04}
-bsd.tgzより、FreeBSD.tgzにしたほうが良いと思われ。(できればpackageで。 -- [[名無しさん]] SIZE(10){2003-10-17 (金) 16:48:01}
-FreeBSDのほうがいい < え?なんで?・・・あ!! そうかなるほど!!。たしかにそうですね。御指摘感謝。 -- [[hideyosi]] SIZE(10){2003-10-17 (金) 17:13:22}
-え~と・・・。ちなみに私はフリビあんまし使えません。せいぜいVine用の野良RPMが書ける程度・・・。だれかdebやpackageの作り方詳しく教えてくんないかなぁ・・・(実例付きだとなおよろし!) :) -- [[hideyosi]] SIZE(10){2003-10-17 (金) 17:16:17}
-http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/index.html多分、これ。あと、BSD信者(自分じゃないよ)なら、フリビという呼び方も気に入らない、かも。freeBSDやFreebsdじゃだめな人達ですから。:-) -- [[名無しさん]] SIZE(10){2003-10-17 (金) 19:39:33}
-http://www.FreeBSD.org/doc/ja_JP.eucJP/books/porters-handbook/こっちだ。スマソ -- [[名無しさん]] SIZE(10){2003-10-17 (金) 19:40:47}
-ところで、go_0019のOSASK版ってないんですかね?(早くOSASKでOSASKをコンパイルしたいなぁ。w -- [[名無しさん]] SIZE(10){2003-10-17 (金) 20:12:25}
-http://www.imasy.org/~kawai/osask/developers.htmlのgo_0019o.lzhはOSASK版と違うの? -- [[別の名無しさん]] SIZE(10){2003-10-18 (土) 04:27:53}
-ほんとだ。スマソ。 -- [[名無しさん]] SIZE(10){2003-10-18 (土) 11:29:38}
-うぬぬぬ? drv_stdcでエラーがでる・・・おっかしいなぁ。フリビではOKだったのに・・・ -- ''hideyosi'' SIZE(10){2003-11-14 (金) 09:17:02}
-そいえば、わざわざURL出してくれてたのね。感謝。(お礼遅くなってスマソ >名無しさん -- ''hideyosi'' SIZE(10){2003-11-14 (金) 09:19:25}
-子供って、覚えたばっかりの言葉とかやたらと使ったり「合ってるのまちがってるの」って言いたがりますよね。気にしないのが一番かと。どうせ縁もゆかりもないんだし。>信者はうるさい -- ''hideyosi'' SIZE(10){2003-11-14 (金) 09:24:48}
-goset-0.0.6では、installとuninstallターゲットを作っておくとよいかと。 -- [[名無しさん]] SIZE(10){2003-11-15 (土) 19:19:51}
-アンダースコアまわりで、Cygwin/MinGWなら逝けるのにそれ以外では逝けないと言う話が、dev-j:Sokratesとか、mona:HowTo/Makeにあったはず。 -- [[名無しさん]] SIZE(10){2003-11-17 (月) 16:00:49}
-Binaryにstripするとよいかと。 -- [[名無しさん]] SIZE(10){2003-11-20 (木) 16:18:12}
-このエラーはどちらかというと、GOの問題ではなくFreeBSD(もしくはgcc)側の問題のような気がします。例えば最初のほうの「関数exit内の_eixtへの参照は解決できない」というエラーについては、そのexitという関数はlibc.aというgcc付属ライブラリの中にあるもので、自分が持っているライブラリを自分では解決できないという、意味不明な状態になっています。 -- ''K'' SIZE(10){2003-11-21 (金) 13:00:22}
-それで可能性としては、gccに付けたオプションの解釈が、WinやLinuxとは違うのかもしれません。ということで、-Wl,-sというオプションを外したらどうなるでしょうか?名無しさんが言われていることもそういうことだと思います。 -- ''K'' SIZE(10){2003-11-21 (金) 13:02:32}
-libc.aはglibcに付属しているものじゃないかと。 -- [[名無しさん]] SIZE(10){2003-11-21 (金) 14:24:57}
-みなさん、お手数&アドバイスどうもありがとうございました。FreeBSDを4.9に上げてgccを3.2にしたら一発でした。とりあえずこれでOKっつーことにしまする。 -- ''hideyosi'' SIZE(10){2003-12-18 (木) 11:28:00}

#comment

*** GOそのものの話題
-[[Z:pcctol]]のコメントみてて思ったんですけど、GO/NASKでDOS|Extender用のバイナリは作れるんでしょうか?まあ単一ソースなら対応パッチ版NASM向けにすればいいだけかな?。既存ライブラリを使おうとか思うとやっぱりリンカの対応次第でしょうか?それにしても同じgcc(というかld)同士で互いのオブジェクトを認識してくれないとはなあ、それとも何かオプション指定が必須なのかな? -- [[名無しさん]] SIZE(10){2003-11-14 (金) 23:26:35}
-DOS|Extender用のXCOFF対応リンカを書けばそれでいいのではないかと思います。naskは素直にXCOFFを出しています。特にDOS|Extender用とかそうじゃないとか、そういうことはないと思っています。「同じgcc(というかld)同士で互いのオブジェクトを認識してくれないとはなあ」というのが、どの状況のことなのかよくわからないのでこれ以上のコメントはできません。 -- [[K]] SIZE(10){2003-11-15 (土) 20:31:30}
-XCOFFというのは、NASMでいうところの-fwin32です。gccではこれをXCOFFと呼んでいるようです。 -- ''K'' SIZE(10){2003-11-15 (土) 20:32:54}
-obj2bimを使って、さらにbim2expを作ればいいだけの気がしてきました。>DOS|Extender対応リンカ  既存のライブラリを使う必要があるなら、そのライブラリをXCOFF化するツールも書けばいいかと。・・・でも僕は忙しいので当分できそうにありません。すみません(bim2expまでなら1週間未満でできそうなんですが。そしたらCC1.EXPやNASK.EXPなんかができるわけか・・・)。 -- ''K'' SIZE(10){2003-11-21 (金) 13:14:20}
-ところでXCOFFってRS6000用の拡張COFFでは?AIXの。Win用だとpe-i386かpei-i386とか言うのかなあ。 -- ''ぼやき屋'' SIZE(10){2003-11-22 (土) 05:32:59}
-pe-i386とかって、win32の実行バイナリ形式のフォーマットだと思ったんですが、そうじゃなくてオブジェクトファイルのフォーマットの名前ですか?・・・いやその、win32の実行ファイルだと128バイト目にシグネチャ「PE」がありますが、XCOFFだとPEシグネチャはどこにもないもので・・・。 -- [[K]] SIZE(10){2003-11-22 (土) 11:03:29}
-ありゃ、どうだったかな。Win用の名前の方は以前自分も悩んだ記憶があって、取り敢えずXCOFFは違った気が。gccのソース中xcoff.hってのはconfigのi386でなくrs6000のフォルダにある筈です。 -- ''ぼやき屋'' SIZE(10){2003-11-22 (土) 14:51:49}
-今うっかり更新して二重投稿になっちまったい。 -- ''ぼやき屋'' SIZE(10){2003-11-22 (土) 15:00:20}
-Towns-gppの場合、ld の-Nオプションで作った中間ファイルを、genexpでEXP化してるみたいですね。この中間ファイル、オブジェクト(*.o)やライブラリ(*.a)の形式はどうなっているんだろうな? -- [[名無しさん]] SIZE(10){2003-11-24 (月) 00:37:38}
-脱線部分を分離しました。 -- ''K'' SIZE(10){2003-11-24 (月) 09:10:32}

#comment


« Prev  Next »