Re: 64 bit chip, os, and application
持田@NETside です。
>> NetBSD 1.0_BETAでlseek(2)の引数が64ビットになったと言う記述を見つけ
>
>> http://ukai.jp/Articles/1995/uu-netbsd.txt
>> バイナリ互換性はこの時点で失われたのかな?
>
> src/sys/kern/syscalls.master には
>
> 19 COMPAT_43 { long sys_lseek(int fd, long offset, int whence); } \
> olseek
手許に
# ls -l /usr/local/Wnn4/bin/jserver
-rwsr-xr-x 1 root wheel 147456 Sep 19 1994 /usr/local/Wnn4/bin/jserver
というのがありました。置いていたディレクトリーと日付から、NetBSD 0.9 で
コンパイルしたものだと思います。
# uname -rsm
NetBSD 2.0_RC4 i386
# ktrace -i /usr/local/Wnn4/bin/jserver
# kdump
:
2755 jserver RET read 0
2755 jserver CALL compat_43_olseek(0x3,0,0x1)
2755 jserver RET compat_43_olseek 3737/0xe99
2755 jserver CALL compat_43_olseek(0x3,0,0)
2755 jserver RET compat_43_olseek 0
2755 jserver CALL break(0x89ffc)
:
てな感じで、このバイナリーで compat_43_olseek() が呼ばれるのは
確認できました。
# ps ax | grep jser
3473 ?? S 0:01.43 /usr/local/Wnn4/bin/jserver
% file /usr/local/Wnn4/bin/jserver
/usr/local/Wnn4/bin/jserver: setuid NetBSD/i386 demand paged executable
% ldd /usr/local/Wnn4/bin/jserver
ldd: /usr/local/Wnn4/bin/jserver: unrecognized file format
% gunzip < /archive/NetBSD-1.4.3/i386/binary/sets/base.tgz |\
pax -vr ./usr/bin/ldd
% ./usr/bin/ldd /usr/local/Wnn4/bin/jserver # ← a.out 用の ldd
ldd: /usr/local/Wnn4/bin/jserver: not a dynamic executable
--
持田 修司 NETside Technologies Inc.
-- Equal Opportunity for All Good Architectures, NetBSD. --
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735