(toppers-users 2710) Re: UbuntuでJSPシミュレーション環境のインストールについての質問
moneyqb
moneyqb @ gmail.com
2008年 1月 14日 (月) 19:08:33 JST
こんにちは、センヒョウです。
> だが、jspを実行してみると、下記のメッセージが出てきました:
> moneyqb @ moneyqb:~/work/jsp$ ./jsp
> --------------------------------------------------------------
> Segmentation fault (core dumped)
> --------------------------------------------------------------
上記のエラーにたいして、GDBを使って追ってみました。
そして、下記のファイルでの下記の関数の70行目までに止まっていたとわかりま
した。
------------------------------------------------
ファイル名:config/linux/cpu_config.c
59 void
60 dispatch()
61 {
62 sigset_t waitmask;
63 sigemptyset(&waitmask);
64 sigaddset(&waitmask,SIGUSR1);
65 if (enadsp && (!runtsk || (runtsk != schedtsk
66 && _setjmp(runtsk->tskctxb.env) == 0))){
67 while (!(runtsk = schedtsk)) {
68 sigsuspend(&waitmask);
69 }
70 _longjmp(runtsk->tskctxb.env, 1);
71 }else{
72 calltex();
73 }
74 }
------------------------------------------------
_longjmpまで止まりましたので、
おそらく下記の修正と繋がりがあるようです。
> 自分のマシンのUbuntuシステムにsetjmp.hには
> > JB_PCとJB_SPの定義はないですので、
> > cpu_context.hにJB_PCとJB_SPの定義を追加しました:
> > ------------------------------
> > #define JB_SP 4
> > #define JB_PC 5
> > ------------------------------
それは酔漢さんの言ったように、再移植が必要ということですか?
setjmpを理解した上で、ここから先に追ってみようと思っていますが、
なかなか難しいと思います。
以上、よろしくお願いいたします。
2008-01-14 (月) の 17:41 +0900 に moneyqb さんは書きました:
> こんにちは、センヒョウです。
わたしの問題を解決するのは簡単で
>
> > 自分のマシンのUbuntuシステムにsetjmp.hには
> > JB_PCとJB_SPの定義はないですので、
> > cpu_context.hにJB_PCとJB_SPの定義を追加しました:
> > ------------------------------
> > #define JB_SP 4
> > #define JB_PC 5
> > ------------------------------
> > そして、makeをかけると、また別のエラーが起きました:
> にもかかわらず、マクロの定義をcpu_context.hに追加しました。
> そしてmakeをかけると、予想のとおり、
> software_term_hook未定義というエラーが起きました。
>
> JSPプロジェクトにsoftware_term_hookをグレープしてみると、
> software_term_hookはsystask下のnewlibrt.cに定義されてある、
> と見れています。
>
> そして、メインフォルダ下のMakefileを修正します。
> STASK_COBJS := $(STASK_COBJS) timer.o linux_serial.o linux_sigio.o
> logtask.o \
> log_output.o vasyslog.o t_perror.o strerror.oの後ろに、
> newlibrt.oを追加しました。
>
> newlibrt.cの中に、C++とmain関数にかかわるものは全てコメントアウトしまし
> た。
>
> そしてmakeをかけると、無事に終わりました。
>
> だが、jspを実行してみると、下記のメッセージが出てきました:
> moneyqb @ moneyqb:~/work/jsp$ ./jsp
> --------------------------------------------------------------
> Segmentation fault (core dumped)
> --------------------------------------------------------------
>
> 何かヒントなどをいただければと思いますが...
>
> 以上、よろしくお願いいたします。
>
> > 自分のマシンのUbuntuシステムにsetjmp.hには
> > JB_PCとJB_SPの定義はないですので、
> > cpu_context.hにJB_PCとJB_SPの定義を追加しました:
> > ------------------------------
> > #define JB_SP 4
> > #define JB_PC 5
> > ------------------------------
> > そして、makeをかけると、また別のエラーが起きました:
> > --------------------------------
> > gcc -S -g -O2 -DGDB_STUB -I. -I../include -I../config/linux
> > -I../kernel kernel_chk.c
> > In file included from ../include/kernel.h:83,
> > from ../kernel/jsp_kernel.h:61,
> > from kernel_chk.c:1:
> > ../config/linux/cpu_defs.h: In function ‘kernel_abort’:
> > ../config/linux/cpu_defs.h:88: 警告: incompatible implicit declaration
> > of built-in function ‘exit’
> > ../utils/gencheck kernel_chk.s > tmpfile2
> > mv tmpfile2 jsp.chk
> > gcc -g -O2 -DGDB_STUB -I. -I../include -I../config/linux -o jsp \
> > sample1.o timer.o linux_serial.o
> > linux_sigio.o logtask.o log_output.o vasyslog.o t_perror.o strerror.o
> > kernel_cfg.o libkernel.a -lgcc
> > libkernel.a(startup.o): In function `call_atexit':
> > /home/moneyqb/work/jsp/poi/../config/linux/tool_config.h:70: undefined
> > reference to `software_term_hook'
> > collect2: ld はステータス 1 で終了しました
> > make: *** [jsp] エラー 1
> > ---------------------------------
>
> 2008-01-11 (金) の 22:06 +0900 に 酔漢 さんは書きました:
> > こんにちは、酔漢と申します
> >
> >
> > moneyqb さんは書きました:
> > > TOPPERSの皆様
> > >
> > > センヒョウです。
> > > はじめましてどうもよろしくお願いします。
> > >
> > > jsp-1.4.3をUbuntu7.04にインストールするときに、
> > > コンパイルでさえできませんでした。
> > > 助けていただけませんか。
> > >
> > > 手順は下記の通りです:
> > > 1.configure -C linux
> > > 2.make depend
> > > 3.make
> > >
> > > 上記の3で、下記のエラーがでました:
> > >
> > Ubuntu 7.10とOpenSUSE 10.1で試してみたところ、まったく同じ問題がおきました。
> > doc/linux.txtが2003年となっています。検索してみたところ、ある時期から
> > linuxのsetjump.hからJB_PCの定義が消えているようです。再移植が必要だと思
> > われます。
> >