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

(toppers-users 2216) Re: SH4用のコンパイル結果について



いつもお世話になっています。
仙波@アルゴシステムです。

酒匂様ご指摘ありがとうございます。

現状、TOPPERSのデフォルトのMakefileをみると、
#
# スタートアップモジュールに関する定義
#
ifdef USE_CXX
START_OBJS = start.o $(shell $(CC) $(COPTS) -print-file-name=crti.o | sed -e 's/\\/\//g')
$(shell $(CC) $(COPTS) -print-file-name=crtbegin.o | sed -e 's/\\/\//g')
END_OBJS = $(shell $(CC) $(COPTS) -print-file-name=crtend.o | sed -e 's/\\/\//g')
$(shell $(CC) $(COPTS) -print-file-name=crtn.o | sed -e 's/\\/\//g')
else
START_OBJS = start.o ←現状はこちらのみリンクしています。
END_OBJS =
endif
となっており、crt1.oはリンクしていませんでした。


これは特別なスタートアップを使っていてしかも、start.oの中で
--fpscr_valuesの初期化をしていないと思ってよろしいでしょうか?
また、解決するためには、単純にcrt1.oをリンクすればよろしいでしょうか?

以上よろしくお願いします。
************************************************
株式会社アルゴシステム
  ソフト開発部 仙波 儀一郎

 E-mail: senba at algosystem co jp
URL: http://www.algosystem.co.jp
Address: 〒587-0021
大阪府堺市美原町小平尾656
Tel:072-362-5049 Fax:072-362-0926
*************************************************
----- Original Message ----- From: "nob_sakawa" <nob at sakawa ota tokyo jp>
To: <users at toppers jp>
Sent: Friday, November 18, 2005 6:01 PM
Subject: (toppers-users 2215) Re: SH4用のコンパイル結果について



酒匂です。
shのgccをメンテしている小島さんから、回答がありました。
3.4.3に限ったことではなさそうですね。

以下、小島さんからの回答です。
小島です。
はたと思いついたのですが、ひょっとして ___fpscr_values  がうまく
初期化されていないのではないでしょうか?  sh-linux だと違 うので
すっかり忘れていたのですが newlib ということは sh- elf ターゲット
で gcc を作っているのだとすると ___fpscr_values は  libgcc.a の
中で .common で定義されていてスタートアップの時に値を設 定しないと
FPU のモードがうまく初期化されない気がします。 sh-elf だ と普通は
crt1.o 中で設定するはずですが特別なスタートアップを使っている とか
リンク時に間違って sh3 用の crt1.o で link  していたりするとそう
なってしまいそうな気がします。 gcc -v でリンク時にどんな  crt1.o
をリンクしているか見てもらってその crt1.o の中でからちゃ んと
___set_fpscr が呼ばれているか check してもらうのがいいか もしれ
ません。
___fpscr_values を壊している可能性もありますが簡単なプログラム
でそうなるというなら crt1.o 自体の問題のような気がします。