[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00202] Re: 巨大ファイルの扱い



潮田です。


>  しらいです。
> 
>  ということは、EXTENDEDCCOPT に然るべき記述をすれば、HP-UX
> や Solaris 環境でも 64bit 環境を用意出来るということでしょう
> か?
>  もし可能なら、上記の検証を HP-UX や Solaris に対しても実行
> してみて貰えないでしょうか。本当に _FILE_OFFSET_BITS が無害
> か否かは全然検証出来ていませんので。
HP-UX は前にも述べましたように、 2G 超のファイルを作成できる
環境に無いため、 64bit 版の fd が出来上がるかというところまで
の調査しかできません。
SUN の方は空きがあるので、週末にでも試してみます。
AIX は、 kernel の差し替えになりますのでちょっと試せません。
(64 -> 32 へ戻すときの reboot がおもな問題なのですが)

取り急ぎ 64bit 版の fd が出来上がるかだけ、 HP-UX と solaris で
試してみました。

HP-UX)
  machine.h の EXTENDCCOPT に +DD64 を追加。
  リンク時に怒られたので、Makefile.tmp の LDFLAGS にも
  +DD64 を追加。

$ file fd
fd:             ELF-64 executable object file - PA-RISC 2.0 (LP64)
とできました。
別のスレッドの差分とあわせて週末にでも、ためさせていただきます。

solaris)
  machine.h の sun の定義中どこを通るか調べるのが面倒だったので
  Makefile.tmp の CFLAGS と LDFLAGS に -xarch=v9 を追加。

リンカーが

未定義の                    最初に参照している
シンボル                          ファイル
sys_errlist                         term.o
ld: 重大なエラー: シンボル参照エラー。fd に書き込まれる出力はありません。

とエラーと出力しました。

/usr/include/errno.h に

#if defined(_LP64)
/*
 * The symbols _sys_errlist and _sys_nerr are not visible in the
 * LP64 libc.  Use strerror(3C) instead.
 */
#endif /* _LP64 */

とあるので、そうしないといけないようです。
書き換える場所が何箇所もあるので、やはり週末かな。