Hi,
Since your du uses lstat, not lstat64 (SYS_196), it becomes clear that you
haven't Large File Support compiled in. It is also possible, that you have
C library without it, don't you? If you can do that:
$ getconf LFS_CFLAGS
-D_FILE_OFFSET_BITS=64
$
that means, that only your progs needs to be recompiled with LFS (just use
-D_FILE_OFFSET_BITS=64 flag). If you don't see such an answer from getconf
- you have to install new (i.e. compiled with LFS) libc.
Regards
Grzegorz Wieczorek
On Mon, 19 Nov 2001, Vincent Bernat wrote:
> OoO Lors de la soirée naissante du lundi 19 novembre 2001, vers 18:18,
> Eric Sandeen <sandeen@xxxxxxx> disait:
>
> > Is this a >2GB file?
>
> Well, I don't know since I cannot get its size.
>
> > If it's not LFS problems you're seeing, doing an strace of the ls
> > command might give us a clue where things are falling apart.
>
> Here is the strace for "du emufs.s.out" :
>
> ,----[ strace for "du emufs.s.out" ]
> | execve("/usr/bin/du", ["du", "emufs.s.out"], [/* 69 vars */]) = 0
> | brk(0) = 0x804dcc0
> | open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
> directory)
> | open("/etc/ld.so.cache", O_RDONLY) = 3
> | fstat(3, {st_mode=S_IFREG|0644, st_size=47192, ...}) = 0
> | mmap(NULL, 47192, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
> | close(3) = 0
> | open("/lib/libc.so.6", O_RDONLY) = 3
> | fstat(3, {st_mode=S_IFREG|0755, st_size=4061504, ...}) = 0
> | read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\213"..., 4096)
> = 4096
> | mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> 0x40020000
> | mmap(NULL, 924892, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40021000
> | mprotect(0x400fb000, 31964, PROT_NONE) = 0
> | mmap(0x400fb000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
> 0xd9000) = 0x400fb000
> | mmap(0x40100000, 11484, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40100000
> | close(3) = 0
> | munmap(0x40014000, 47192) = 0
> | personality(PER_LINUX) = 0
> | getpid() = 3969
> | brk(0) = 0x804dcc0
> | brk(0x804dcf8) = 0x804dcf8
> | brk(0x804e000) = 0x804e000
> | brk(0x804f000) = 0x804f000
> | open(".", O_RDONLY|O_LARGEFILE) = 3
> | stat(".", {st_mode=S_IFDIR|0755, st_size=24, ...}) = 0
> | lstat("emufs.s.out", 0xbffff2dc) = -1 EOVERFLOW (Value too large for
> defined data type)
> | write(2, "du: ", 4du: ) = 4
> | write(2, "emufs.s.out", 11emufs.s.out) = 11
> | write(2, ": Value too large for defined da"..., 39: Value too large for
> defined data type) = 39
> | write(2, "\n", 1
> | ) = 1
> | stat(".", {st_mode=S_IFDIR|0755, st_size=24, ...}) = 0
> | close(3) = 0
> | close(1) = 0
> | _exit(1) = ?
> `----
>
> I would prefer to delete this file without rebooting. Will a static rm
> do the work ?
> --
> BOFH excuse #355:
> Boredom in the Kernel.
>
>
|