[SCore-users-jp] invoke()処理時のException Signalについて
青木
t-aoki @ pst.fujitsu.com
2004年 5月 17日 (月) 17:05:04 JST
富士通プライムソフトテクノロジの 青木 です。
亀山様、回答ありがとうございます。
> > 調べたところ、signal.cc 内の invoke() を呼び出した直後に
> > Exception Signal が発生しているようなのですが、
> > http://ilab.is.s.u-tokyo.ac.jp/~ishikawa/LinuxIA64/porting.html
> > によると、「setjmp/longjmpの実装は、glibc-2.2.4に依存してい
> > ることに注意」という記事があったため glibc が影響している可
> > 能性があるかもしれないと考えています。
>
> setjmp/longjmp の実装に bug がありました.
> uf[0].__jmpbuf[1] に入れる GP ですが, これは現在の GP ではなく,
> 呼び出し側の GP を入れる必要があります.
> (RHEL Workstation 2,1 だと static link していれば GR の値が同じなので
> 大丈夫だったのですが, dynamic link にしたら問題が発生しました.)
> score-src/SCore/mttl-ult/ult/stack.c
> の
> t->jmpbuf[0].__jmpbuf[1] = getGP(); /* global pointer save */
> の部分を
> t->jmpbuf[0].__jmpbuf[1] = ((long*)func)[1];
> に変更してみてください.
>
> もっとも RHEL3 ではテストしていないので, 別の理由かもしれません.
変更してみましたが、残念ながら改善されませんでした。
引き続きアドバイス等頂ければ幸いです。
よろしくお願い致します。
________________________________
(株)富士通プライムソフトテクノロジ 3開統)3開発部
青木 利宏 内線 7677-5214
E-Mail : t-aoki @ pst.fujitsu.com
SCore-users-jp メーリングリストの案内