Philip Guenther wrote:
On Feb 5, 2008 6:27 PM, Glenn Mulvaney <[EMAIL PROTECTED]> wrote:
I'm running a linux binary via compat_linux(8) built from
ports/emulators/fedora in 4.2-stable. Emulated binaries can't create or
read files > 2GB regardless of limits or login class. Does anyone have
advice on how to remove this limit?
Can that Linux binary create and read files larger than 2GB on a
*Linux* system? If it doesn't use 64bit capable syscalls, then
there's nothing the BSD compat layer can do about it. As a
counter-example, a quick check shows that a 'cat' binary from RHEL AS
4 has no problems with a file over 4GB in size, but strace/ktrace show
that it uses the Linux fstat64() call, etc.
(Hmm, do the compat_linux versions of the 32bit-only syscalls return
EOVERFLOW like the Linux ones would on files >2GB? I don't _see_ code
to check that...)
The binary definitely can create & read files larger than 2GB on a linux
system. It's the "p4d" binary from Perforce under emulation that I'm
having a problem with.
The 64bit calls are in the compat layer
(/usr/src/sys/compat/linux/linux_file64.c) ktrace shows calls to
fstat64(), but pread() segvs on p4d reading files larger than 2GB, and
pwrite() segvs on p4d writing files larger than 2GB.
-Glenn