I (or an Alpine linux user) got bitten by the issue below too. http://redmine.alpinelinux.org/issues/show/445
So I started to dig around a bit. Here is what i have come up with: * it happens with busybox ls and coreutils ls. * it works on 32bit (e)glibc systems. ie ubuntu. So I compared the straces and as expected, the difference is stat() and stat64(). >From uclibc: open("/mnt/iso/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3 fstat(3, 0xbffff148) = -1 EOVERFLOW (Value too large for defined data type) >From ubuntu/eglibc: open("/mnt/iso/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 3 fstat64(3, {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0 Then i thought that there are probably some flag that is supposed to do so fstat = fstat64 or something, and if i know those GNU people correctly, they check this in a configure script. this turned out to be correct. In the configure output I see this when compiling coreutils: checking for _LARGEFILE_SOURCE value needed for large files... no ... checking for _FILE_OFFSET_BITS value needed for large files... 64 ... So, I think uclibc is not doing what expected at some place. Where or how, I don't know. Any ideas? On Fri, Apr 30, 2010 at 12:22 PM, J. Schneider <yan...@cell.de> wrote: > Hi all, > > as Yegor wrote last month I go the same behavior on openwrt r21196 and > tested on mips (ar7161 routerboard 450G) with: > > kernel 2.6.3.32.12 and 2.6.33.3 > uclibc 0.9.30.x and 0.9.31 > > After mounting a w2k3 or w2k8 share with mount.cifs, ls -la breaks with: > ls: can't open '/mnt': Value too large for defined data type > r...@openwrt:/tmp# strace ls -al > ...... > stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=20708, ...}) = 0 > mprotect(0x2ab7b000, 4096, PROT_READ) = 0 > mprotect(0x2aabc000, 4096, PROT_READ) = 0 > ioctl(0, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0 > ioctl(1, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0 > getuid() = 0 > time([1272618468]) = 1272618468 > ioctl(0, 0x40087468, 0x7fe1d3f8) = 0 > ioctl(1, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0 > lstat64(0x7fe1deeb, 0x7fe1d2d8) = 0 > brk(0) = 0x47f000 > brk(0x480000) = 0x480000 > open("/mnt", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3 > fstat(3, 0x7fe1d250) = -1 EOVERFLOW (Value too large for > defined data type) > close(3) = 0 > brk(0x481000) = 0x481000 > ioctl(2147483647, TIOCNXCL, 0x7fe1d1d8) = -1 EBADF (Bad file descriptor) > brk(0x482000) = 0x482000 > write(2, "ls: can't open '/mnt': Value too"..., 61ls: can't open '/mnt': > Value too large for defined data type > ) = 61 > exit(1) = ? > > > A samba share from a centos5 machine works fine. > r...@openwrt:/tmp# strace ls -al /mnt > ...... > stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=20708, ...}) = 0 > mprotect(0x2ab7b000, 4096, PROT_READ) = 0 > mprotect(0x2aabc000, 4096, PROT_READ) = 0 > ioctl(0, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0 > ioctl(1, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0 > getuid() = 0 > time([1272621607]) = 1272621607 > ioctl(0, 0x40087468, 0x7f9c90c8) = 0 > ioctl(1, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0 > lstat64(0x463488, 0x7f9c8fa8) = 0 > brk(0) = 0x47f000 > brk(0x480000) = 0x480000 > open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3 > fstat(3, {st_mode=S_IFDIR|S_ISVTX|0777, st_size=340, ...}) = 0 > fcntl(3, F_SETFD, FD_CLOEXEC) = 0 > brk(0x481000) = 0x481000 > getdents64(3, /* 17 entries */, 4096) = 488 > brk(0x482000) = 0x482000 > > > I'm happy for any hints > > Many Thanks > Joerg > _______________________________________________ > uClibc mailing list > uClibc@uclibc.org > http://lists.busybox.net/mailman/listinfo/uclibc > -- Natanael Copa _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc