[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[pbsd-mg2] Re: MC-R700 status



鈴木(康)です。
<9907241157.AA10346@lachesis.sm.sony.co.jp>の記事において
shin@sm.sony.co.jpさんは書きました。

  | 
  | MC-R700での動作状況と私の作業状況について簡単に報告します。
  | 
  | [動作状況]
  | 
  | disklessでの動作ですが、今一つ不安定です。

そうなのですか、やはりなにか問題があると思っていたほうが良さそうですね。

  | [作業状況]

  | -msoft-floatに関する件ですが、libcのsoftfloatライブラリを呼ばないのは
  | egcs(gcc)のコンフィグファイルでそのように書いてあるのが原因であることが
  | わかりました。gcc/config/mips/elf.hで、
  | 
  | #include "gofast.h"
  | 
  | という行があるため、softfloatのライブラリ関数はdpadd等の"US Software
  | goFast"ライブラリの名前を呼び出すようになります。したがって、コンフィグ
  | ファイルを修正するか、別のコンフィグファイルを使うかしないとlibc.aの関数
  | は呼び出されません。

私も調べてみました。たしかにそのとおりになっていますね。
gofast.h を include すると、-msoft-float のときは、__adddf3 のかわりに
dpadd が呼ばれるようになるようです。

arm をみると、gofast.h を include していないので、あいかわらず
__adddf3 が呼ばれているので、libc.a が使われるみたいです。

ちなみに、gofast でのシンボルの変換は次のようなものみたいです。

	__addsf3	fpadd		
	__subsf3	fpsub		
	__mulsf3	fpmul		
	__divsf3	fpdiv		
	__cmpsf2	fpcmp		
	__floatsisf	sitofp		
	__fixsfsi	fptosi		
	__fixunssfsi	fptoui		
	__extendsfdf2	fptodp		
	__truncdfsf2	dptofp	
	
シンボルの変換だけなのかどうかという点がよく理解していません。
あと、この変更は、gcc-2.8.1 からで、egcs も同様ということになっている
ようです。

  | -msoft-floatをデフォルトにする方法ですが、CC1SPECを変更するよりも、
  | TARGET_DEFAULTを変更するほうが良いのではないでしょうか?こんな感じです。
  | 
  | #define TARGET_DEFAULT (MASK_GAS|MASK_DEBUG_A|MASK_SOFT_FLOAT)
  | 
  | デフォルトがどうなっていても、必要があれば-mhard-float/-msoft-floatをオ
  | プションで指定すれば望みの動作に変更できます。
  | 
  | CC1SPECを修正すると、デフォルト動作と異なる動作を指定したい場合に、たと
  | えば以下のように、相反する二つのオプションが同時に指定されてしまいます。
  | 
  | xxxx/cc1 -msoft-float -mhard-float .....
  | 
  | こういうのを見ると、果たしてどのように動作するのか不安になるので、
  | TARGET_DEFAULTを変えるほうがわかりやすいと思うのですが、いかがでしょうか。

そうですね。同意します。
こちらの方が良いと思います。

ところで、いづれにしても、src/gnu/dist/gcc 以下を変更しないといけない
んですが、ここのディレクトリは配布ファイルをそのまま使うという意味です
よね。この部分を修正しないで済む よい方法がありますでしょうか?

mips/netbsd.h を見ると

#undef XXX
#define XXX ..

となっているので、難しいように思っているのですが...

  | * * * * *
  | 
  | NetBSD/hpcmipsの(将来の)配布形態と利用形態について少し考えてみました。
  | 
  | ということで、配布形態としては、フルセットのバイナリ(とソース)を作り、そ
  | の中から利用者の必要とするサブセットが容易に取り出せるようにするのがいい
  | のではないかと思います。
  ( 中略 )
  | PocketBSDについては実は内容をほとんど把握していないので、すでにこういう
  | ことがなされているようでしたら失礼。
  | 

この ML では、どのように user-land を小さくまとめていくかという
点に関して殆んど議論されていません。
これを機会に、議論できたらと思います。

http://www.at.sakura.ne.jp/~suz/mg2/rm-list.txt

は、篠原 さんとほぼ同じような考え方で、作ってみたものです。

ただ、このリストを curent に合わせてメンテしていくのは
大変だなぁと感じています。

# それもあって、必要なものだけ make したらどうかという案も出した
# んですが。

今の私の考えは、コマンド1つ1つの依存関係をちゃんと定義するのは
たいへんなので、
source tree 上で、必要なものの全体を定義さえすれば、
それに係わるバイナリ一式が リストアップできるツールがあれば良いの
かなぁという感じです。


--
					鈴木 康司 @NEC
					suz@hpc.bs1.fc.nec.co.jp
					TEL 0423-33-5381