vine-users ML アーカイブ



[vine-users:068443] Re: illegal instruction in portmap

  • From: Fujita Yoshihiko <starfish@xxxxxxxxxxxxxxxx>
  • Subject: [vine-users:068443] Re: illegal instruction in portmap
  • Date: Fri, 5 Nov 2004 02:28:37 +0900
藤田です。

その後です。

 Date: Fri, Oct 22, 2004 at 03:27:15AM +0900
 Subject: [vine-users:068340] illegal instruction in portmap
 Message-Id: <20041021182715.GA13501@xxxxxxxxxxxxxxxx>

  (略)
> の結果から portmap が出しているエラーではなさそうな
> 気がするんですが、glibc なのか、bash なのかどこに
> 問題があるのかは分かりません。

デバッガを走らせてみました。
glibc の内部で落ちていると推定しました。

% gdb /sbin/portmap
GNU gdb 5.2.1
Copyright 2002 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-vine-linux"...(no debugging symbols found)...
(gdb) set args -dv
(gdb) show args
Argument list to give program being debugged when it is started is "-dv".
(gdb) r
Starting program: /sbin/portmap -dv
server: about do a switch

Program received signal SIGILL, Illegal instruction.
0x0804b782 in strcpy () at ../sysdeps/i386/i586/strcpy.S:41
41	../sysdeps/i386/i586/strcpy.S: No such file or directory.
	in ../sysdeps/i386/i586/strcpy.S
(gdb) where
36	in ../sysdeps/i386/i586/strcpy.S
(gdb) where
#0  0x0804b782 in strcpy () at ../sysdeps/i386/i586/strcpy.S:41
#1  0xbfffe3c8 in ?? ()
#2  0x0804b677 in strcpy () at ../sysdeps/i386/i586/strcpy.S:41
#3  0x0804b2e1 in strcpy () at ../sysdeps/i386/i586/strcpy.S:41
#4  0x0804a907 in strcpy () at ../sysdeps/i386/i586/strcpy.S:41
#5  0x0804abfb in strcpy () at ../sysdeps/i386/i586/strcpy.S:41
#6  0x0804a410 in strcpy () at ../sysdeps/i386/i586/strcpy.S:41
#7  0x4012ba39 in svc_getreq_common (fd=32896) at svc.c:465
#8  0x4012b7f6 in svc_getreq_poll (pfdp=0x8053c28, pollretval=1) at svc.c:398
#9  0x4012c3eb in svc_run () at svc_run.c:82
#10 0x08049ff6 in strcpy () at ../sysdeps/i386/i586/strcpy.S:41
#11 0x40049c23 in __libc_start_main (main=0x8049d00 <strcpy+220>, argc=2, 
    ubp_av=0x2, init=0x804dedc <strcpy+17080>, fini=0x804df28 <strcpy+17156>, 
    rtld_fini=0xbffff660, stack_end=0x80800000)
    at ../sysdeps/generic/libc-start.c:225
(gdb) quit
The program is running.  Exit anyway? (y or n) 

そこで、ソースを取ってきまして、k6 用にコンパイルしてみました。
(狙いどころ間違っている?)
% rpmbuild --rebuild --target k6 glibc*.src.rpm

なぜか、~/.rpmrc で
optflags: k6 -O2 -march=k6-2 -m3dnow
を指定しているのに、-march=k6-2 が -march=k6 になります。
glibc の configure に問題があるみたいな気がします。
が、気にせずにコンパイルします。

作った rpm ファイルを
% sudo rpm -ihv --replacepkgs --replacefiles --ignorearch glibc*.k6.rpm
でインストールしました。...が、やはり illegal instruction で落ちます。

手が無くなってきました。
現在コンパイラ gcc を疑い始めています。疑心暗鬼です。