[Gauche-devel-jp] Re: Debian serge/kernel 2.6でgoshが「不正な命令です」

アーカイブの一覧に戻る

えんどう yasuy****@javao*****
2004年 12月 17日 (金) 20:22:41 JST


 えんどうです。

>これはknown problemです。gccのバージョンと最適化オプションによって発生します。
>http://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Gauche%3aBugs
>
>make checkの失敗はここでuvectorができてないからですね。

あとでやってみます。

>> sha1.c: 関数 `sha1__25sha1_update' 内:
>> sha1.c:63: 警告: 互換性のないポインタ型からの引数 1 個の `Scm_GetStringConst' を渡しますです
>
>あれ、ひょっとしてえんどうさん、CVS版使ってます?
>このwarningはCVS版で出るやつのような気が。

はい。一般公開版でビルドできなかったのでCVSからチェックアウトして試しました。

>"OPTFLAGS= " で正常にビルドできるということは、-fomit-frame-pointerが
>何かのわるさをしている可能性がありますね。
>gccのバージョンはいくつでしょうか。

$ gcc --version
gcc (GCC) 3.3.4 (Debian 1:3.3.4-13)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

>また、-fomit-frame-pointerを付けた状態 (OPTFLAGSを上書きしない状態) で
>makeして失敗する場合の、test-vmstackのスタックトレースはとれますか。

yasuyuki @ jonathan:~/src/Gauche-0.8.3$ cd src

yasuyuki @ jonathan:~/src/Gauche-0.8.3/src$ make test-vmstack
gcc -DHAVE_CONFIG_H -I. -I./../gc/include   -g -O2 -fPIC -fomit-frame-pointer -march=i686 -DUSE_I686_PREFETCH -c test-vmstack.c
TARGETLIB=`pwd`  gcc -g -O2 -fPIC -Wl,--rpath "-Wl,`pwd`" -L.   -o test-vmstack test-vmstack.o -lgauche -ldl -lcrypt -lutil -lm

yasuyuki @ jonathan:~/src/Gauche-0.8.3/src$ gdb test-vmstack
GNU gdb 6.1-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-linux"...Using host libthread_db library "/lib/tls/libthread_db.so.1".

(gdb) run
Starting program: /home/yasuyuki/src/Gauche-0.8.3/src/test-vmstack
Testing VM stack sanity...                                       Testing VM stack sanity... ====================================================

Program received signal SIGILL, Illegal instruction.
0x4006358e in read_list_int (port=0x8081e00, closer=41, ctx=0xbffffb50, has_ref=0x1) at read.c:615
615                 if (SCM_READ_REFERENCE_P(item)) ref_seen = TRUE;
(gdb) 

気になるのは、このハードウエアが特殊だということです。

VIA EPIA PD000E という Mini-ITX マザーを使っています。

http://www.viaembedded.com/product/epia_PD_spec.jsp?motherboardId=241

-- 
ENDO Yasuyuki <yasuy****@javao*****>
http://www.javaopen.org/~yasuyuki/ (Personal/Japanese Only)
http://www.javaopen.org/jfriends/ (Japanese Only)




Gauche-devel-jp メーリングリストの案内
アーカイブの一覧に戻る